gpt4 book ai didi

Opengl透视变形

转载 作者:行者123 更新时间:2023-12-02 04:04:02 29 4
gpt4 key购买 nike

我遇到了这个奇怪的问题,我希望有人能为我解决这个问题,以便我能够了解问题所在并采取相应的行动。在 OpenGL(固定功能)中,我在正交投影中渲染具有内表面的 pipe 。

下图显示了结果。它由 4 个顶点环组成,这些环使用左侧所示的索引模式形成三角形。为了您的方便,我对 pipe 上的顶点进行了编号。右侧是正在使用的纹理:

enter image description here

正如您所看到的,纹理严重扭曲。当我最初创建只有 2 个顶点环的 pipe 时,我认为增加环的数量可以修复扭曲,但没有什么乐趣。而且 glHint 似乎不会影响这个特定问题。

纹理坐标似乎没问题。另外,棋盘格图案似乎渲染正确,但我猜扭曲在该非常特定的图案中是不可见的。

请忽略交叉线,因为其中一条是不存在的边缘;我通过 GL_LINE_LOOP 渲染线框。

最佳答案

这种特殊效果是由纹理坐标在三角形中插值的方式引起的。发生的情况是,一个方向成为主要组成部分,而另一个方向则倾斜。你的标本恰好很容易出现这种情况。这也恰好是地板或墙壁上的透视投影和纹理的问题。您需要的是所谓的“透视正确纹理”PCT。有一个 glHint 可以实现这一点,但我想,您已经尝试过。

坦率地说,避免这种情况的唯一方法是分割应用透视校正。但幸运的是,这对于基于四边形的几何图形(如您的几何图形)来说很容易。分割边缘时,沿所有 4 条边缘在分割中心处插值纹理坐标,并使用其中 4 条边缘的平均值。仅沿着一个边缘插值纹理坐标正是您想要避免的。

如果您想保持几何数据不变,您可以在片段着色器中实现 PCT。

关于Opengl透视变形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010405/

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