将 Cubemap 坐标转换为 Equirectangular 中的等价物

Convert Cubemap coordinates to equivalents in Equirectangular

我有一组 6 图像立方体贴图(前、后、左、右、上、下)的坐标如下:

[ [160, 314], Front; [253, 231], Front; [345, 273], Left; [347, 92], Bottom; ... ] 

每张图片都是500x500p,在[0, 0]左上角。 对于 2500x1250p 图像,我想将这些坐标转换为等效的等距柱状坐标。布局是这样的:

我不需要转换整个图像,只需转换一组坐标。是否有针对特定像素的直接转换?

  1. 将您的图像+2D 坐标转换为 3D 归一化矢量

    (0,0,0) 是您的立方体贴图的中心,可以使它按预期工作。所以基本上你需要添加 U,V 缩放到你的坐标的方向向量到纹理点的 3D 位置 (0,0)。方向向量只是单位向量,其中每个轴有 3 个选项 {-1, 0 , +1},每个向量只有一个轴坐标不为零。立方体贴图的每一面都有一个组合......哪一个取决于你的约定,我们不知道你没有分享任何细节。

  2. 使用Cartesian to spherical坐标系变换

    你不需要半径只需要两个角...

  3. 将球面角度转换为 2D 纹理坐标

    此步骤取决于您的 2D 纹理几何体。最简单的是矩形纹理(我认为这就是你所说的等距矩形纹理),但还有其他具有特定功能的映射,每个都需要不同的转换。这里有几个例子:

    对于矩形纹理,您只需将球面角缩放为纹理分辨率大小...

    U = lon * Usize/(2*Pi)
    V = (lat+(Pi/2)) * Vsize/Pi
    

    plus/minus 一些方向标志以匹配您的坐标系。

顺便说一句。刚找到这个(可能重复 QA):