原创文章,转载请注明链接 http://blog.csdn.net/hoytgm/article/details/34464751
这次简单的讲一下OpenGLES中的Cull Face,也就是面剔除。这一步通常发生在Fragment shader 之前,将我们不需要的面或看不见的面(比如背面)给剔除掉,这样可以很大程度上减轻fragment shader的压力,提高渲染的性能。
首先,我们需要启用Cull face的功能。
glEnable(GL_CULL_FACE);
刚才说到我们要剔除不需要的面,比如背面。那怎么区分一个面是正面还是背面呢?GLES,其实也是图形学中,我们用顺时针和逆时针来区分。但是不是说顺时针就是正面,逆时针就是反面,反过来也不成立。究竟一个面是正面还是反面,是由开发者自己来决定的。例如,我们这里将顺时针设置为需要剔除,那其实言外之意就是我们认为逆时针为正面。
glCullFace(GL_CW);
CW的意思是clockwise,也就是顺时针。如果需要逆时针的话,则是CCW,也就是counter-clockwise.
然后,我们建立顶点的时候,如果是逆时针建立的话,那我们就能画出来三角形,例如这样的顺序
float vertices[] =
{
-0.5f, -0.5f, 0.5f, 1.0f,
0.5