2

我不知道“凸起”是否是正确的术语,但这是我现在能想到的。我正在尝试沿着三角形条带映射一个 1 像素宽的图像(尽管从技术上讲,每个纹理都会有这个问题)以模拟激光。当它完全均匀且呈方形时,它的外观是这样的:

在此处输入图像描述

还有一个线框:

在此处输入图像描述

但是当您将点向内滑动时,就会出现问题。UV 现在是错误的,因为它试图映射它,就好像那个三角形是完全水平的。

在此处输入图像描述

以及它的线框:

在此处输入图像描述

现在,我什至想不出要搜索的术语来弄清楚我将如何映射它。我想对其进行映射,以便条纹与条纹本身一起缩小,而不仅仅是正面映射。有小费吗?我敢肯定,这是我现在想不出的非常简单的事情。

4

1 回答 1

3

你想要一个透视正确的纹理映射。您看到的是仿射变换,它没有考虑深度。

此链接解释了问题并建议了如何解决它:

http://www.reedbeta.com/blog/2012/05/26/quadrilateral-interpolation-part-1/

我自己做了这个,但据我回忆,除了 UV 坐标之外,你还会传递第三个属性,这样你就会有一个均匀的纹理向量从顶点着色器传递到片段着色器。在片段着色器中,您可以将 UV 除以第三个参数并使用它来对纹理进行采样。

可悲的是,我面前没有那个代码,所以这是我能做的最好的。但是我链接的页面应该会引导您找到解决方案。

于 2013-10-06T17:18:05.570 回答