OpenGL学习脚印:背面剔除(Face Culling)

本文介绍了OpenGL中的背面剔除技术,用于提高渲染性能。通过顶点绕序判断正面和背面,利用glCullFace和glFrontFace函数控制剔除方向。开启背面剔除可以避免在立方体内部看到背面,但是否启用应视应用场景而定。
摘要由CSDN通过智能技术生成

写在前面
在绘制封闭类型的几何对象时,开启背面剔除功能能够提高渲染性能。本节简要介绍下背面剔除,示例程序可以在我的github下载

什么是背面剔除

当我们观察场景中对象时,一般只能以一定角度来观察,那么对象的某些面我们是看不到的,例如你观察一个立方体,最多只能同时看到3个面,有时只能看到1个面,而我们绘制时如果不采取剔除背面的措施,则要绘制6个面,其中包括一些,我们根本看不到的面。对于立方体这个面较少的几何对象,性能开销不明显,但是对于复杂的模型,开启背面剔除则能明显改善渲染性能。 背面剔除,就是早点丢弃对观察者来说是背面的片元的一种方法。

背面剔除的使用

上面提到,要早点丢弃对观察者来说是背面的片元,那么现在的问题是如何确定哪个面是背面的问题? OpenGL中使用顶点绕序(winding order)来确定。所谓绕序就是当几何对象细分为三角形时,三角形顶点相对于中心的定义顺序,具体如下图所示(来自opengl wiki):

顶点绕序

左边的图中指定顶点的顺序是顺时针的,右边是逆时针的。

以三角面指向观察者的方向为大拇指指向,其余手指逆时针绕着大拇指,如果手指的绕向和三角面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值