4

我正在做一些 OpenGL (2.1) 测试,在尝试制作一个简单的立方体时,我想知道如何制作复杂的网格。对于我的立方体,我只是手动设置每个顶点GL_TRIANGLES。但我不知道如何在循环中做同样的事情。因为顶点的顺序,因为重复的顶点太多了!

我真的必须通过设置3个顶点“一次”(对于两个三角形)来做脸吗?这似乎太慢了。如何优化?

在此处输入图像描述

制作/加载网格的技术是什么?

哦,我会很感激一些例子。

4

1 回答 1

5

Jason Gregory 的《游戏引擎架构》一书为您的问题提供了答案。这是它所说的:

定义网格的最简单方法是复制三个一组的 vectices [...] 这种数据结构称为三角形列表。[...]您可能注意到许多顶点被重复,通常是多次重复[...]因此,大多数引擎使用称为索引三角形列表的更有效的数据结构

索引三角形列表背后的想法是将顶点存储在单独的顶点缓冲区中,并将索引存储在单独的索引缓冲区中。

同一章还建议使用三角条(GL_TRIANGLE_STRIP)和风扇(GL_TRIANGLE_FAN

可以在此处找到有关顶点缓冲区对象索引的教程

于 2012-11-10T00:22:29.473 回答