Android图形---OpenGL(五)
上一篇:http://www.zzzyk.com/kf/201206/137160.html
形状的外观和折点
在OpenGL中,形状的外观是由三个或三维空间中更多的点来定义的一个表面。一个三个或更多的三维点(在OpenGL中叫做顶点)的集合有前面和后面之分。如何知道哪个面是前,哪个面是后呢?就要用折点或定义形状中的点的方向来回答这个问题。
图1.图示显示了变换成逆时针绘图顺序的坐标列表。
在这个例子中,三角形的点是按照它们被逆时针方向绘制的顺序来定义的。这些绘图用坐标的顺序给图形定义了折点的方向。默认情况下,在OpenGL中被逆时针绘制的那个面就是前面。图1.所示的三角形定义,现在看到的是该图形的正面(就像OpenGL所解释的那样),而其他的边都是背面。
为什么了解图形的那个面是正面是重要的呢?这与OpenGL中被叫做面选取(Face Culling)的功能有关。面选取(Face Culling)是OpenGL环境的一个可选功能,它允许呈现管道在保存、内存和处理周期中忽略(不计算或绘制)对图形背面的处理:
// enable face culling feature
gl.glEnable(GL10.GL_CULL_FACE);
// specify which faces to not draw
gl.glCullFace(GL10.GL_BACK);
如果试图使用面选取(Face Culling)功能,但却不知道那些边是形状的正面和反面,那么OpenGL图形看起来会有点薄,或者图形根本就不会显示。因此,要始终用逆时针的顺序定义OpenGL图形的坐标。
注意:也可以使用顺时针的顺序作为正面来设置OpenGL的环境,但是这需要更多的代码,并且会给OpenGL开发者照成混乱,因此不要这么做。
补充:移动开发 , Android ,