【问题标题】:Why use an index Buffer in Android's OpenGL to draw a Cube为什么在Android的OpenGL中使用索引Buffer来绘制Cube
【发布时间】:2013-07-17 07:53:15
【问题描述】:

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

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

OpenGL ES - texture map all faces of an 8 vertex cube?

【问题讨论】:

    标签: android opengl-es


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2013-12-03
      • 1970-01-01
      相关资源
      最近更新 更多