我在球体上有一个 3d 点,并希望将其转换为球体纹理上的 UV 点。
有人可以指出正确的方向吗?我可以采用纯数学解决方案。
编辑:
我目前有这个,它不会返回正确的 UV 坐标。p 是球体网格上的 3d 点。position 是球体的位置
var x = (p.x-mesh.position.x)/500;
var y = (p.y-mesh.position.y)/500;
var z = (p.z-mesh.position.z)/500;
var u = Math.atan2(x, z) / (2 * Math.PI) + 0.5;
var v = Math.asin(y) / Math.PI + .5;