DirectX球体纹理坐标

时间:2009-12-20 13:55:04

标签: geometry directx textures coordinates hlsl

我有一个具有每顶点法线的球体,我正在尝试使用该算法导出对象的纹理坐标:

U = Asin(Norm.X) / PI + 0.5
V = Asin(Norm.Y) / PI + 0.5

使用波尔卡圆点纹理,我得到:

Misaligned textures

这是没有应用纹理的相同对象:

No textures

我特别关注的问题(我知道有一些)是纹理的错位。

我倾向于相信这个问题存在于我对这些算法的使用中,因为镜面突出显示(它不使用任何纹理但依赖法线正确)似乎没有伪影。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

你不能在建造球体时设置你的紫外线吗?

然后:

 u = theta / (2 * PI);
 v = phi / PI;

编辑:我也可能会指出,如果顶部有黑点,法线可能有问题......沿着多边形边缘也会出现突出显示的线条。这又指出了可能的狡猾的法线......