2

我想通过从 VRML 文件中读取几何图形来渲染 3D 盒子。VRML 文件中的索引为:

coordIndex
    [
        0, 1, 2, -1,
        2, 3, 0, -1,
        3, 2, 4, -1,
        4, 5, 3, -1,
        5, 4, 7, -1,
        7, 6, 5, -1,
        6, 7, 1, -1,
        1, 0, 6, -1,
        6, 0, 3, -1,
        3, 5, 6, -1,
        1, 7, 2, -1,
        7, 4, 2, -1,
    ]

我想调用 glDrawElements 函数来渲染框,但我不确定“count”和“indices”参数。count 应该是 12 表示面的数量还是 36 表示顶点的总索引?另外,请告诉我有关索引数组的信息。应该是这样的:

GLint indices[] = {0,1,2,2,3,0,3,2,4,.....,7,4,2};
                        OR
GLint indices[] = {0,1,2,-1,2,3,0,-1,....,7,4,2};
4

2 回答 2

1

根据DrawElements的手册页

调用 glDrawElements 时,它使用启用数组中的计数顺序元素

因此,索引缓冲区中的总索引为 36。

对于索引数组,您必须选择第一个版本。索引必须 >= 0,并且对于 3 个连续索引,将绘制一个三角形。

于 2013-06-21T06:36:33.947 回答
0

索引数组应该是您的第一个示例(始终为正数,引用顶点索引)。

绘制元素计数应该是索引数组的长度。这通常类似于indices.length.

于 2022-02-24T04:42:40.773 回答