0

我在使用索引缓冲区对立方体进行纹理处理时遇到问题。我看到一篇文章说你需要在你的立方体中定义 24 个顶点,而不是只有 8 个顶点(其中 1 个顶点是 3 个浮点数)。

如果您必须传输如此多的重复数据,那么使用索引缓冲区有什么意义呢?

OpenGL ES - 纹理贴图 8 个顶点立方体的所有面?

4

1 回答 1

1

一个顶点不是3 个浮点数;这就是为什么答案这么说的原因。顶点是输出图元的单个顶点所需的所有数据。这包括位置(3 个浮点数),但它还包括任何纹理坐标、法线、每个顶点颜色或您感兴趣的其他顶点属性。

索引缓冲区的目的是不必重复尽可能多的数据。每个面有 4 个独立的顶点,但每个面也是 2个共享 2 个顶点的三角形。如果您不使用索引渲染,那么您需要将每个面表示为单独的 GL_TRIANGLE_STRIP 绘制调用(因此绘制一个完整的立方体需要 6 个单独的绘制调用),或者您必须为每个面提供 6 个顶点,其中 2顶点是再次复制的完全相同的顶点数据。

于 2013-07-16T23:53:15.190 回答