如何使用 IBO 绘制不同的瓷砖?

How to draw different tiles using an IBO?

我的目标是在 OpenGL 中使用网格绘制一堆 "blocks"。我可以用 VBO 和 IBO 绘制网格。但我不知道如何处理纹理坐标,因为在我的 "concept" 中,并非每个相邻块都共享相同的纹理坐标。但是通过使用 IBO,每个顶点只有一个纹理坐标?

那么有什么方法可以使用 IBO 来实现我的目标,还是我必须独立绘制每个块?后者是我想避免的,因为它需要更多的内存 space.

是的,您仍然可以从 IBO 中受益。

不是在块面之间共享顶点,而是在每个块角为每个面创建新顶点,并为它们分配不同的纹理坐标。这将允许您在每个块上有不同的纹理。您仍然可以与同一块面中的三角形共享顶点,因此 IBO 将为您带来一些好处。