将Cubemap坐标转换为Equirectangular中的等效坐标

问题描述 投票:1回答:1

我有一组6图像立方体贴图(正面,背面,左边,右边,顶部,底部)的坐标,如下所示:

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

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

cubemap

我不需要转换整个图像,只需要转换坐标集。特定像素是否有任何直接转换?

image image-processing geometry projection panoramas
1个回答
1
投票
  1. 将图像+ 2D坐标转换为3D标准化矢量 点(0,0,0)是您的立方体贴图的中心,使其按预期工作。所以基本上你需要将缩放到坐标的U,V方向向量添加到纹理点(0,0)的3D位置。方向矢量只是单位矢量,其中每个轴有3个选项{-1, 0 , +1},每个矢量只有一个轴坐标非零。立方体贴图的每一面都有一个组合......哪一个取决于我们不知道的惯例,因为你没有分享任何细节。
  2. 使用Cartesian to spherical坐标系变换 你不需要半径只是两个角度......
  3. 将球面角度转换为2D纹理坐标 此步骤取决于您的2D纹理几何。最简单的是矩形纹理(我认为这就是equirectangular的意思)但是还有其他具有特定功能的映射,每个映射都需要不同的转换。这里有几个例子: Bump-map a sphere with a texture map How to do a shader to convert to azimuthal_equidistant 对于矩形纹理,您只需将球面角度缩放为纹理分辨率大小...... U = lon * Usize/(2*Pi) V = (lat+(Pi/2)) * Vsize/Pi 加/减某些方位符号以匹配您的坐标系。

顺便说一句。刚发现这个(可能是重复的QA):

© www.soinside.com 2019 - 2024. All rights reserved.