本文主要是介绍OpenGL 延迟渲染 正面、背面剔除,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在学习延迟渲染光照处理的过程中,突然发觉对OpenGL的正面、背面剔除的理解是错误的。一张纸(一个平面)有两个面(正面,背面),当开启剔除的时候,把这个面绕某一轴旋转,这个面会呈现一隐一现的间隔,好像是把一个面(一个平面的正面或背面)剔除了没有进行渲染,这种理解是错误的,其实是把这整个平面进行了剔除。
以画线的形式渲染一个立方体进行验证:
1 禁用剔除:
glDisable(GL_CULL_FACE);glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
2 剔除正面
glEnable(GL_CULL_FACE);glCullFace(GL_FRONT);glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
因为视角的关系,只剔除了两个面。
3 背面剔除
glEnable(GL_CULL_FACE);glCullFace(GL_BACK);glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
只把正面剔除时,剔除掉的两个面渲染了出来。
这篇关于OpenGL 延迟渲染 正面、背面剔除的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!