我们人类是低级的三维生物,无法看到物体背后的东西,但我们却老老实实地渲染了背后的三角形然后在深度测试中丢弃掉.这难道不是一种算力浪费吗?

这就是剔除技术的用武之处了,我们可以通过剔除掉那些看不见的三角形来节省渲染时间和算力.理论上可以节省50%以上的时间.

开启面剔除

在OpenGL中,使用以下代码开启面剔除:

glEnable(GL_CULL_FACE);

我们可以设置剔除的面(可能有的外星人只能看到背面而看不到正面)

glCullFace(GL_FRONT); //剔除正面
glCullFace(GL_BACK); //剔除背面
glCullFace(GL_FRONT_AND_BACK); //剔除正背面