位置: 编程技术 - 正文

OpenGL三角形的双面不同颜色的绘制(opengl 三角形)

编辑:rootadmin

推荐整理分享OpenGL三角形的双面不同颜色的绘制(opengl 三角形),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl绘制三角形函数,opengl绘制三角形函数,opengl三角形绘制实验报告,opengl画三角形代码,opengl 三角形,opengl绘制三角形函数,opengl三角形网格,opengl 三角形,内容如对您有帮助,希望把文章链接给更多的朋友!

对于一个三角形,我要给它正反面不同的颜色。然后通过旋转,看出它的效果。

我只想到了2种方法,下面我来写一下这两种方法。

第一种方法,通过角度的判断重设glColor3f的参数(这种方法局限性很大,不推荐,不喜欢的可以直接跳过看第二种)。

对于一个平面,我们知道,当它旋转到一定角度的时候,它就变成了一条线,那么,我们只要对这个角度进行一下判断就可以了。

下面是我的测试代码:

第二种方法,在同一个地方绘制两个三角形(不同颜色的),然后通过剔除多边形背面的方式实现。

先来介绍一下绘制方式,在默认情况下,逆时针绘制的是正面,顺时针绘制的是背面,当然,可以通过glFrontFace(GL_CCW)是它相反。

既然如此,那么就可以绘制两个正好相反的三角形,一个正面(红色)一个背面(蓝色)。

然后对其剔除背面就可以了。

如何剔除?

void glCullFace(GLenum mode); 通过这个函数

看一下它的参数:

GL_FRONT: 剔除正面多边形

OpenGL三角形的双面不同颜色的绘制(opengl 三角形)

GL_BACK:剔除背面多边形

GL_FRONT_AND_BACK:剔除所有多边形

那么这里,就使用GL_BACK这个参数。

然后要使用剔除功能的时候,启用一下glEnable(GL_CULL_FACE);即可。

接下来我来说一下实现的原理:

在绘制的时候是一个正面(红色)一个背面(蓝色)。

在启用glEnable(GL_CULL_FACE);剔除的功能后,我们告诉OpenGL说:“我看不见的你给我剔除了把!”。

一开始,我们看到的是红色三角形,因为它是正面。OpenGL认为,看得见的是正面,看不见的是背面。

其实,我们可以这么想,对于这两个三角形,一个红色三角形,一个蓝色三角形,因为被剔除了背面,所以,它们始终只有一个面,即正面。

当这两个三角形,不断旋转,旋转到红色三角形即将没有了的时候,这个时候,是不是原本是正面的红色三角形要变成了背面(因为看不见了嘛~)?结果就要被剔除了,然后此时,原本是背面的蓝色三角形,变成了正面,因为我们可以看到正面,所以接下来看到的就是蓝色三角形了。

下面,我贴一下这种方法的源码:

To be continued~

&#;&#;

5.2光源 在OpenGL中,仅仅支持有限数量的光源。使用GL_LIGHT0表示第0号光源,GL_LIGHT1表示第1号光源,依次类推.OpenGL至少会支持8个光源,即GL_LIGHT0到GL_LIGHT7。使用g

OpenGL二十面体及多次细分成球体 绘制一个规则的二十面体,通过多边形近模拟法来构建表面。在绘制前,我们需要初始化一些数据:#defineX.//使原点到每个顶点的距离均为

opengl光照 Blinn-Phone模型与实现 这里介绍的方法,考察从光源发出的光线,这些光线与物体表面相互作用进行建模,这个方法和光线追踪类似,但是只考虑光源与表面之间的一次相互

标签: opengl 三角形

本文链接地址:https://www.jiuchutong.com/biancheng/369454.html 转载请保留说明!

上一篇:shader之旅-7-平面阴影(planar shadow)(shader cull)

下一篇:5.2光源

  • 印花税的征税范围
  • 应纳税所得额是利润总额吗
  • 用友t3凭证日期怎么自动排序
  • 出口报关单怎么做会计凭证
  • 长期待摊费用摊销年限规定
  • 销项税额转出减去还是加上
  • 年度财务报表和季度财务报表一样吗
  • 以库存现金付讫
  • 已投入使用的机器设备才能计提折旧对吗
  • 境外机构可以开通b股账户
  • 外企农业公司
  • 本月完工入库会计分录
  • 企业会计制准下增值税科目的核算
  • 公司过账什么意思
  • 支付各种办公费用
  • 工会劳动保护费不能列支劳保用品
  • 纳税人是非开业户是什么意思
  • 增值税专用发票几个点
  • 高速公路抵税
  • 卷烟批发企业批发卷烟是否缴纳消费税
  • 清理费用影响当期损益吗
  • 进口增值税可以抵扣销项税额吗
  • 营改增后定额材料单价的组成包括
  • mac上锁
  • .exe文件病毒
  • 手机压缩包损坏怎么修复
  • 潜在表决权如何影响表决权
  • php数组函数大全
  • wordpress邮箱怎么配置
  • 什么是会计分录其一般表达形式是怎样的
  • wordpress用什么语言开发
  • 收回前欠货款会导致资产总额增加吗
  • mac 查看当前用户
  • Netlib.exe - Netlib是什么进程 有什么用
  • 员工离职后公司还用照片
  • 企业缴纳职工社保政策
  • php开发实战权威指南
  • 如何收取会员会费才合法
  • 企业所得税计提会计分录怎么做
  • php 集成环境
  • php处理excel
  • php重定向伪造referer
  • 贪吃蛇python小白
  • 增票的纳税人识别号是啥
  • 个体户转账到法人账户要交税吗
  • mongodb认证
  • 一般纳税人申请条件
  • 公司购买食品如何入账科目
  • 现金账怎么登记
  • 财务报表里的现金流量表括号是什么意思
  • 处置废品收入税率
  • 收到以前年度银行手续费发票分录
  • 小规模纳税人开专票需要交税吗
  • 接受土地使用权的会计分录
  • 哪些支出可以在出国公杂费中扣除
  • 发票开的是推广服务费计入什么费用?
  • 备用金账目处理
  • 从农民手里租用土地用于科研要开发票吗
  • 个体工商户如何给员工交五险一金
  • 总分类账建账顺序
  • mysql数据库文件存放在哪里
  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
  • win10 impact
  • 如何在windows沙盒中导入文件
  • windows 8.1 build 9600
  • Facebook Open Platform编译FAQ
  • 如何在linux shell关闭443端口
  • unity3d怎么删除模型
  • z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
  • nodejs初始化
  • opengl入门教程
  • shell脚本实现同时多台远程主机执行命令的代码分享
  • ie6怎么设置兼容性
  • js中颜色对应代码
  • 10分钟掌握心理学
  • unity安卓手机游戏官网
  • Unity3D游戏开发毕业论文
  • 电子税务局怎么删除办税员
  • 深圳买新房契税一般什么时候交比较好
  • 银川到大武口的汽车站时刻表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设