我有一组 6 图像立方体贴图(前、后、左、右、上、下)的坐标,如下所示:
[ [160, 314], Front; [253, 231], Front; [345, 273], Left; [347, 92], Bottom; ... ]
每张图像的尺寸为 500x500p,左上角为 [0, 0]。 我想将这些坐标转换为 2500x1250p 图像的等距矩形坐标。布局是这样的:
我不需要转换整个图像,只需转换一组坐标。是否有特定像素的直接转换?
最佳答案
将图像+2D 坐标转换为 3D 标准化矢量
点
(0,0,0)
是立方体贴图的中心,以使其按预期工作。因此,基本上您需要将缩放到坐标的U,V
方向向量添加到纹理点(0,0)
的 3D 位置。方向向量只是单位向量,其中每个轴有 3 个选项{-1, 0 , +1}
并且每个向量只有一个轴坐标非零。立方体贴图的每一面都有一种组合...哪一种取决于您的约定,我们不知道,因为您没有分享任何细节。使用Cartesian to spherical坐标系变换
你不需要半径,只需要两个角度......
将球面角度转换为 2D 纹理坐标
此步骤取决于您的 2D 纹理几何形状。最简单的是矩形纹理(我认为这就是等距矩形的意思),但还有其他具有特定功能的映射,并且每种映射都需要不同的转换。这里有几个例子:
对于矩形纹理,您只需将球面角度缩放为纹理分辨率大小...
U = lon * Usize/(2*Pi) V = (lat+(Pi/2)) * Vsize/Pi
加/减一些方向标志以匹配您的坐标系。
关于image - 将立方体贴图坐标转换为等距矩形中的等效坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47819607/