gpt4 book ai didi

c++ - 计算 GLSL 的逐顶点切线

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:37 27 4
gpt4 key购买 nike

我在网上看到的类似问题的许多答案都提供了切线空间矩阵的计算,但我想知道如何计算每个顶点的切线以作为顶点属性发送到着色器。我知道每个顶点的切线必须与相邻顶点相似,以避免视觉照明伪影,因此不能针对法线选择任意垂直 vector 。

额外信息 - 我有通过为 .obj(波前)模型文件编写的解析器获得的法线、顶点位置和纹理坐标等数据。

我可以想象这将是一个相对简单的问题,但不是数学家,甚至不是该领域的专家,答案不会突然出现在我身上。

最佳答案

只需采用 UV(纹理坐标)的导数来对齐切线空间。 IE。切线空间的一个 vector 是法线,您可以自由选择其他两个。通过旋转它们使它们与 UV 坐标导数重合,您可以获得平滑的切线场。然而,这只是故事的一半,因为这确实是一件非常棘手的事情。这是一些额外的阅读 Material :

在不同的应用中也有多个切线空间,所以你也必须考虑你想要哪个。如需全面覆盖,请搜索 mikktspace 库(mikktspace.hmikktspace.c。)

关于c++ - 计算 GLSL 的逐顶点切线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349350/

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