Java OpenGL es 2.0带三角带的绘图阵列

Java OpenGL es 2.0带三角带的绘图阵列,java,android,opengl-es,Java,Android,Opengl Es,根据许多示例和教程,您可以在Opengles 2.0中绘制立方体,方法是在空间中指定顶点,如果它们共享相同的颜色,则指定其中的8个顶点,如果不共享,则指定24个顶点 然后按逆时针顺序声明索引,以用面填充顶点 但我看过这个说明 gl.glDrawElements(GL10.GL_TRIANGLES, 36, GL10.GL_UNSIGNED_BYTE, mIndexBuffer); 在我的例子中,它绘制立方体,但有些顶点连接错误 相信顶点

根据许多示例和教程,您可以在Opengles 2.0中绘制立方体,方法是在空间中指定顶点,如果它们共享相同的颜色,则指定其中的8个顶点,如果不共享,则指定24个顶点

然后按逆时针顺序声明索引,以用面填充顶点

但我看过这个说明

gl.glDrawElements(GL10.GL_TRIANGLES, 36, GL10.GL_UNSIGNED_BYTE, 
                            mIndexBuffer);
在我的例子中,它绘制立方体,但有些顶点连接错误

相信顶点或索引的顺序是错误的,我尝试了很多不同的组合,导致所有的结果都是错误的实体

然后我改变了这个

GLES20.glDrawElements(GLES20.GL_TRIANGLE_STRIP, ordine.length, GLES20.GL_UNSIGNED_SHORT, ordMem);

基本上说是用条带代替三角形,这很有效。那么,我是不是错过了一些重要的事情?还是OpenGles 2.0以不同的方式绘制?或者什么?

我倒了矩阵。截锥体参数将1-1作为最小值最大值。倒过来-1最小值和1最大值,就成功了。

如果你是按条形顺序绘制三角形,那么这意味着每个奇数三角形都是反向缠绕的。这可以解释为什么一些三角形被剔除。如果不启用镶嵌面剔除或任何其他行为因着色的一侧而异的情况,则顶点的缠绕方式实际上并不重要。