gpt4 book ai didi

opengl - 四 strip 纹理失真

转载 作者:行者123 更新时间:2023-12-01 12:53:36 25 4
gpt4 key购买 nike

我有一个 GL_QUAD_STRIP 纹理贴图。四边形带自身向后折叠以形成 UV 球体。从本质上讲,四边形通常不是由矩形构成的,而是由梯形构成的。

我遇到了纹理失真问题。纹理坐标是正确的(例如,它们在应有的位置排列得很好)。问题在于梯形面本身。

我希望朝向梯形面较大端的纹素对向较大的区域,但该面似乎分成两个三角形。它看起来类似于仿射纹理映射(但我不认为它是;它看起来仍然是正确的透视图,我不希望它被使用)。

我知道显卡通常会在内部将四边形缩小为三角形,但我不认为这会影响纹理。 . .

所以,我不知道这里发生了什么。有什么想法吗?

这是一个不良行为的例子。低分辨率地球纹理,最近的过滤,无 mipmaps 或各向异性: enter image description here

最佳答案

这是对简单四边形进行纹理处理时的经典问题。这是因为(就像你猜对的那样)四边形被分解成单独的三角形。这些三角形依次独立纹理化。

问题是,三角形内的纹理坐标是从顶点线性插值的(虽然透视正确,但这在这里无济于事)。你可以把它想象成光栅化器不知道这个梯形的第四个顶点,它只能看到单个三角形。因此它假设三角形到纹理空间的变换是完全仿射的,因此三角形是平行四边形的一部分。

要解决这个问题,您需要做的是从简单的 2D 仿射纹理空间转移到投影纹理空间,方法是使用完整的 4 维纹理坐标而不是简单的 2D 纹理坐标,如解释的那样 here .您基本上做的是 GL 已经使用透视校正插值所做的事情,但是使用您自己的纹理坐标透视投影(除了已经为顶点位置完成的透视投影之外)。

关于opengl - 四 strip 纹理失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832909/

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