背面剔除+ GL_TRIANGLE_STRIP?

时间:2012-02-05 23:32:17

标签: opengl

如果我有4个顶点,我按此顺序渲染:

2-3
|\|
0-1

使用GL_TRIANGLE_STRIP然后我启用背面剔除,正面定义为CCW,然后左下角三角形面向我而另一面不是?如果是这样,那么渲染正方形以使两个面都可见的最有效方法是什么?我是否必须使用GL_TRIANGLES并传递6个顶点而不是4?

2 个答案:

答案 0 :(得分:4)

三角形条带中的所有三角形都保持相同的方向/缠绕顺序。 他们不会一个接一个地翻转。因此,要么两个三角形都朝向你或远离你(假设你的图元是扁平方形(即凸面并且不相交),其中所有顶点都属于同一平面)。

P.S。你知道,你可以在OpenGL应用程序中渲染triangletrip原语并启用剔除并自己查看。

答案 1 :(得分:4)

条纹基元对背面剔除做了正确的事情。您可以将tris的缠绕顺序视为受管理,以使条带中的每个三角形的顺序一致 - 例如你可以想到GPU渲染(0,1,2),(2,1,3)......