OpenGL能够检查所有面向观察者的面,并渲染它们,而丢弃那些背向的面,以节省片段着色器调用。我们要做的就是告诉OpenGL哪些是正向面哪些是背向面。
环绕顺序
当我们定义一组三角形顶点时,我们需要以特定的环绕顺序来定义它们,可能是顺时针
或者逆时针
。OpenGL在渲染图元的时候将使用这个信息来决定一个三角形是一个正向三角形还是背向三角形。默认情况下,逆时针顶点所定义的三角形将会被处理为正向三角形。
开启面剔除
glEnable(GL_CULL_FACE);
面剔除类型
glCullFace(GL_FRONT);
-
GL_BACK
:只剔除背向面。 -
GL_FRONT
:只剔除正向面。 -
GL_FRONT_AND_BACK
:剔除正向面和背向面。
设置正向面
glFrontFace(GL_CCW);
GL_CCW
默认值 逆时针环绕顺序为正向面
GL_CW
顺时针环绕顺序为正向面
网友评论