我看到过很多在空间中声明立方体顶点的方法。一些代码声明了36个顶点,而其他一些只声明了8个,就像这样:
private float vertices[] = {
-1.0f, -1.0f, -1.0f, //p1 lower left far plane (0)
1.0f, -1.0f, -1.0f, //p2 lower right far plane (1)
1.0f, 1.0f, -1.0f, //p3 top right far plane (2)
-1.0f, 1.0f, -1.0f, //p4 top left far plane (3)
-1.0f, -1.0f, 1.0f, //p5 lower left near plane (4)
1.0f, -1.0f, 1.0f, //p6 lower right near plane (5)
1.0f, 1.0f, 1.0f, //p7 top right near plane (6)
-1.0f, 1.0f, 1.0f //p8 top left near plane (7)
};
看起来你只画了两个面然后填补了空洞。 这似乎更好,因为可以节省宝贵的字节。 这是正确的吗?我应该在索引数组中指定什么顺序?
---编辑 好的,我明白了。这应该是声明顶点的顺序,对吗?但是我的立方体某些面上的三角形有问题。
private short order[] = {
0, 4, 5, 0, 5, 1, //bottom face
1, 5, 6, 1, 6, 2, //right face
2, 6, 7, 2, 7, 3, // top face
3, 7, 4, 3, 4, 0, // left face
4, 7, 6, 4, 6, 5, // front face
3, 0, 1, 3, 1, 2 // back face
};