如何在OpenGL ES 2.0中创建五彩平方网格?

时间:2010-11-08 13:17:16

标签: opengl-es grid opengl-es-2.0

使用Open GL ES 2.0,我想创建一个大的正方形网格,其中每个正方形可以采用定义文件指定的特定颜色。所以这不是一个只有黑白方块的简单棋盘...
为避免伪影,最好的方法是什么?

提前致谢

1 个答案:

答案 0 :(得分:2)

在绘制正方形网格时,没有什么会隐含地导致伪影。如本问题所述,绘图没有固有的z-fighting,深度或透明度问题。

在应用程序中,为每个顶点创建一个具有两个属性(位置,颜色)的顶点数组。对于网格中的每个方块,您需要4个顶点。这将描述构成每个网格方块的2个独立三角形。避免使用三角形条,因为您不希望在相邻的网格方块之间共享或插入颜色属性。

所以你的内存中的顶点数组将是:

square0Pos0
color0
square0Pos1
color0
square0Pos2
color0
square0Pos3
color0
square1Pos0
color1
...

创建一个简单的传递着色器对,它将顶点颜色作为变化发送到片段着色器。片段颜色只是将输出颜色设置为变化的值。

如果将网格位置从-1.0布置到1.0,则甚至不需要添加查看变换制服或相应的着色器逻辑。

进行单次绘制调用以使用glDrawArrays(GL_TRIANGLES, ...)绘制顶点数组。