Geometry DirectX球体纹理坐标

Geometry DirectX球体纹理坐标,geometry,directx,textures,coordinates,hlsl,Geometry,Directx,Textures,Coordinates,Hlsl,我有一个带有逐顶点法线的球体,我正在尝试使用以下算法导出对象的纹理坐标: U = Asin(Norm.X) / PI + 0.5 V = Asin(Norm.Y) / PI + 0.5 使用波尔卡圆点纹理,我得到: 以下是未应用纹理的同一对象: 我特别关注的问题(我知道有一些)是纹理的错位 我倾向于认为问题在于我对这些算法的使用,因为镜面反射高亮显示(不使用任何纹理,但依赖于法线是否正确)似乎没有瑕疵 有什么想法吗?你不能在构建球体时设置UV吗 然后: 编辑:我还可能指出,鉴于顶部的黑点,

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

U = Asin(Norm.X) / PI + 0.5
V = Asin(Norm.Y) / PI + 0.5
使用波尔卡圆点纹理,我得到:

以下是未应用纹理的同一对象:

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

我倾向于认为问题在于我对这些算法的使用,因为镜面反射高亮显示(不使用任何纹理,但依赖于法线是否正确)似乎没有瑕疵


有什么想法吗?

你不能在构建球体时设置UV吗

然后:


编辑:我还可能指出,鉴于顶部的黑点,你的法线可能有问题。。。沿多边形边也似乎有高亮显示的线。这再次指向了可能存在的不可靠的常态…

正如我所说,我知道其他问题。。。在构建球体时设置UV不会覆盖以后的变形。我从零开始构建球体,而不是使用预先构建的网格。如果你打算在变形时重新纹理,也许你想要的是投影纹理……可能很值得研究,但我没有任何资源,也不是购买参考手册的季节。
 u = theta / (2 * PI);
 v = phi / PI;