gpt4 book ai didi

OpenGL:3d 网格和法线的三角形条问题

转载 作者:行者123 更新时间:2023-12-04 07:44:00 27 4
gpt4 key购买 nike

我是 opengl 编程的新手。我目前正在制作洞穴竖井形成的动画。我有一组沿 z 轴的轴轮廓坐标。我的计划是根据这些数据制作 3d 网格
为此,我决定使用 TRIANGLE_STRIPS。我这样做的方式是我创建了多个像这样的 strip :

11----12 5------6
|/| |/|
|/| |/|
9----10 3------4
|/| |/|
|/| |/|
7------8 1------2

我的问题是:

  • 这是正确的方法吗?因为现在我有法线问题。我想使用 GL_SMOOTH 着色,据我所知,我需要计算顶点的法线?但是在我的 cas 顶点 10 和 3 中是相同的所以会有两个法线???那是问题吗?还有其他方法可以创建多个 strip 吗?
  • 还有其他方法可以创建多个 strip 吗?或者带条的解决方案可能不是最好的解决方案?
  • 另一个问题是,这些 strip 的长度不同。有些比其他的短。
    感谢您的帮助:)
  • 最佳答案

    首先,不要使用三角带。这是旧硬件的旧概念。使用简单的索引三角形列表。它更容易(起初)和更快。
    对于您的问题:

    1)每个顶点都有一个法线。它与职位一样独特和重要。如果两个顶点的位置不同,它们将是不同的顶点。这同样适用于法线:存在具有相同位置但法线不同的顶点。但它们是不同的顶点。想一想球体的顶点与立方体的顶点有何不同。

    2)使用列表(glDrawElements)。不要使用 strip 。有一些最佳方法可以对这些列表进行缓存排序,nvidia 和 ati 在其开发人员部分有大量示例代码。

    3)不要担心那个。一个好的网格将具有近似相等面积的三角形。大多数情况下,索引被排序以命中顶点缓存(通常至少 16 个条目)。 strip 是一种优化 2 条目顶点缓存的方法。

    关于OpenGL:3d 网格和法线的三角形条问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188116/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com