在opengl中为同一网格索引非连续纹理坐标

时间:2012-12-02 16:31:28

标签: opengl graphics

  

可能重复:
  Rendering meshes with multiple indices

在我的应用程序中,我有很多使用相同顶点缓冲区渲染的四边形,我通过擦除重复顶点和使用索引来优化它,就像正常一样。问题是这些四边形的纹理坐标不是连续的,它们都使用相同的纹理坐标实际上只是(0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0)一遍又一遍(多么浪费)。渲染时,第一个四边形就可以了,但是下面的四个使用了错误的纹理坐标,因为它们重用了重用顶点中的一个,而第二个四边形与第一个四边形相邻,使用了这个坐标(1.0,1.0,0.0) ,1.0,1.0,1.0,0.0,1.0)而不是前者显然不好。

我想要的是这样的:

(两个四边形和纹理坐标)
| 0,0 0,1 | 0,0 0,1 |
| 1,0 1,1 | 1,0 1,1 |

但我得到了这个:

| 0,0 0,1 | 0,1 0,1 |
| 1,0 1,1 | 1,1 1,1 |

这是正常的,只是我没想到它,因为我在顶点和索引之后做了纹理,我更习惯于普通模型..

我想知道是否有办法有效地做到这一点,因为我开始认为唯一的方法是避免使用索引和重复所有这些顶点或使用实例化(我不想使用)。这些只是两个四边形但我的应用程序在任何给定时间都有很多它们并且使用索引在内存使用方面产生巨大差异。此外,我想知道是否有一些方法可以摆脱所有重复的纹理坐标,只使用它们一次,而不是10000次,因为它看起来像是一个很大的内存浪费。它只是使用相同的缓冲区使用相同的纹理坐标有效地渲染一堆单独的四边形,谢谢!

0 个答案:

没有答案