当我从事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..

最佳答案

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

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

07-27 23:10