gpt4 book ai didi

opengl - 计算法线并将其应用到三角形网格

转载 作者:行者123 更新时间:2023-12-03 05:07:22 27 4
gpt4 key购买 nike

我有一个三角形网格,我正在尝试计算法线,以便在绘制网格时应用它们。我正在使用即时模式(当我有时间了解它们如何工作时,可能会更改为顶点数组)并使用 GL_TRIANGLE_STRIP 绘制网格。

我在计算顶点法线时遇到问题。更准确地说,决定在计算中使用哪些相邻顶点,然后决定何时设置这些法线。考虑一下:

 1_2
|/| Supposedly a square where the numbers represent the vertex number in a
3 4 triangle strip.

我知道你必须计算属于一个平面的 2 个向量的叉积才能获得平面法线。因此,在该示例中,顶部三角形的法线可以通过执行 (2-1)x(3-1) 来计算,第二个三角形的法线可以通过执行 (2-4)x(3-4) 来计算。在立即模式下绘制三角形带时如何应用法线?

我所做的是在设置 vtx 1 时设置第一个法线,在设置 vtx 4 时设置第二个法线,在设置 vtx 5 时设置第三个法线,等等。然而,这会带来问题,因为您显然最终会获得不同的法线三角形的每个顶点(当它们都应该相同时)。例如,三角形|2,3,4|只会有具有正确法线的顶点 4(因为对于顶点 2 和 3,法线将是第一个三角形的法线)。

那么应该怎么做呢?有没有办法,或者我需要更改为GL_TRIANGLES? (我暂时不想停止使用立即模式,因为我没有时间)。

最佳答案

如果我是对的,你仍然只计算每个三角形的法线?这是正确的,但之后您应该计算每个顶点的法线。这只是特定顶点所附加的所有三角形法线的归一化总和。完成后,您可以继续进行即时模式绘制,指定每个顶点的法线。

关于opengl - 计算法线并将其应用到三角形网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317388/

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