立方到equirectangular投影算法

Sam*_*yon 4 algorithm graphics geometry image image-processing

我有一个定义周围的立方体贴图纹理,但是我需要将它传递给只适用于纬度/经度贴图的程序.我真的迷失在这里如何翻译.这里有什么帮助?

换句话说,我需要从这里来:

在此输入图像描述

对此(我认为图像在x轴上具有-90°旋转):

在此输入图像描述

更新:我得到了预测的正式名称.顺便说一下,我在这里找到了相反的投影

The*_*ran 5

像这样投影光栅图像的一般过程是:

for each pixel of the destination image:
    calculate the corresponding unit vector in 3-dimensional space
    calculate the x,y coordinate for that vector in the source image
    sample the source image at that coordinate and assign the value to the destination pixel
Run Code Online (Sandbox Code Playgroud)

最后一步是插值.我们将重点关注其他两个步骤.

给定纬度和经度的单位矢量是(+ z朝向北极,+ x朝向本初子午线):

x = cos(lat)*cos(lon)
y = cos(lat)*sin(lon)
z = sin(lat)
Run Code Online (Sandbox Code Playgroud)

假设立方体在原点周围为+/- 1单位(即2x2x2整体尺寸).一旦我们得到单位向量,我们就可以通过查看具有最大绝对值的元素来找到它所在的立方体的面.例如,如果我们的单位向量<0.2099,-0.7289,0.6516>,则y元素具有最大的绝对值.它是负面的,所以这一点将在立方体的-y面上找到.通过除以y幅度来标准化其他两个坐标以获得该面部内的位置.因此,该点将在-y面上的x = 0.2879,z = 0.8939.