首页 > 解决方案 > 如何从等角投影坐标转换​​为 3D 坐标

问题描述

我使用以下代码根据对象在世界中的位置获取 equirectangular 纹理坐标:

            Equirec(positionX, positionY, positionZ) {
                radius = sqrt(positionX^2 + positionZ^2);
                a = atan2(-positionX, positionZ);
                b = atan2(positionY, radius);

                uv.x = (a - pi) / -2pi;
                uv.y = (b + pi/2) / pi;

                return uv;
            }

是否可以反转此功能?

我想要做的是,给定从这个函数返回的 uv 坐标,找出世界中的相应位置。

标签: mathglslshadertrigonometryhlsl

解决方案


不可能。你已经丢弃了信息。UV 坐标在一个平面内。如果你知道那架飞机在 3D 空间中的位置,你就可以做到。


推荐阅读