2

当我处理 3D 图形项目时,我经常偶然发现必须绘制立方体的问题。问题是,到目前为止,除了指定每个顶点、法线和偶尔的纹理坐标之外,我还没有找到更好的方法来绘制一个。鉴于立方体的规律性,我无法摆脱必须有更好方法的感觉。

那么,有没有比这样更简单的方法:

    putNormal(geometryBuffer, 0, 0, 1);
    putVertex(geometryBuffer, x, y, 1);
    putNormal(geometryBuffer, 0, 0, 1);
    putVertex(geometryBuffer, x + 1, y, 1);
    putNormal(geometryBuffer, 0, 0, 1);
    putVertex(geometryBuffer, x + 1, y + 1, 1);
    putNormal(geometryBuffer, 0, 0, 1);
    putVertex(geometryBuffer, x, y + 1, 1);

    putNormal(geometryBuffer, -1, 0, 0);
    putVertex(geometryBuffer, x, y, 0);
    putNormal(geometryBuffer, -1, 0, 0);
    putVertex(geometryBuffer, x + 1, y, 0);
    putNormal(geometryBuffer, -1, 0, 0);
    putVertex(geometryBuffer, x + 1, y, 1);
    putNormal(geometryBuffer, -1, 0, 0);
    putVertex(geometryBuffer, x, y, 1);

    //and so on..
4

2 回答 2

2

openGL 实用程序库 (GLU) 为更复杂的形状提供了一些实用程序,例如球体、nurbs、二次曲面(那些不是立方体)等等,但是尽管立方体很快,程序员往往会以不同的方式布置面并有不同的想法关于每个顶点绑定多少东西,所以它并不像人们想象的那么明显

更多信息请访问:http ://www.glprogramming.com/red/chapter11.html

于 2013-05-18T11:52:03.253 回答
0

使用包glutSolidCube中类中的方法,如下所示:GLUTcom.jogamp.opengl.util.gl2

 GLUT glut = new GLUT();
 glut.glutSolidCube(size);
于 2013-05-18T13:21:02.920 回答