Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在做一些 OpenGL (2.1) 测试,在尝试制作一个简单的立方体时,我想知道如何制作复杂的网格。对于我的立方体,我只是手动设置每个顶点GL_TRIANGLES。但我不知道如何在循环中做同样的事情。因为顶点的顺序,因为重复的顶点太多了!
GL_TRIANGLES
我真的必须通过设置3个顶点“一次”(对于两个三角形)来做脸吗?这似乎太慢了。如何优化?
制作/加载网格的技术是什么?
哦,我会很感激一些例子。
Jason Gregory 的《游戏引擎架构》一书为您的问题提供了答案。这是它所说的:
定义网格的最简单方法是复制三个一组的 vectices [...] 这种数据结构称为三角形列表。[...]您可能注意到许多顶点被重复,通常是多次重复[...]因此,大多数引擎使用称为索引三角形列表的更有效的数据结构
索引三角形列表背后的想法是将顶点存储在单独的顶点缓冲区中,并将索引存储在单独的索引缓冲区中。
同一章还建议使用三角条(GL_TRIANGLE_STRIP)和风扇(GL_TRIANGLE_FAN)
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
可以在此处找到有关顶点缓冲区对象索引的教程