2013-10-06 67 views
2

我不知道“凸起”是否是正确的术语,但现在我只能想到它。我试图将一个1像素宽的图像(尽管技术上每个纹理都会产生这个问题)沿着一个三角形条形成一个模拟激光的图像。当它的完全统一和广场,这是它的外观:将UV映射到凸起的三角形条

enter image description here

和一个线框:

enter image description here

但是,当你向内滑动点问题就出现了。紫外线现在是错误的,因为它试图将它映射为三角形完全水平。

enter image description here

的,这个线框:

enter image description here

现在我想不出这个词,甚至寻找工作,如何我会映射它。我想映射它,使条纹与条本身一起收缩,因此不仅仅是正面映射。有小费吗?我敢肯定这件事很容易,我现在无法想到。

回答

3

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

此链接说明问题,并提出如何解决这个问题:

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

我这样做是自己,但据我记得你会传递一个第三属性除了UV坐标,所以你将有从顶点着色器传递到片段着色器的齐次纹理向量。 在片段着色器中,您将通过此第三个参数划分UV并使用它来对纹理进行采样。

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