【问题标题】:Building meshes in OpenGL在 OpenGL 中构建网格
【发布时间】:2012-10-30 08:23:27
【问题描述】:

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

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

制作/加载网格的技术有哪些?

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

【问题讨论】:

    标签: c++ c algorithm opengl mesh


    【解决方案1】:

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

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

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

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

    顶点缓冲区对象索引的教程可以找到here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2020-08-17
      相关资源
      最近更新 更多