Opengl 如何将鱼眼图像转换为5或6立方图像

Opengl 如何将鱼眼图像转换为5或6立方图像,opengl,cube,fisheye,Opengl,Cube,Fisheye,我想将二维鱼眼图像取消到三维立方体。因此我认为有必要将鱼眼图像取消到6个立方体图像,并将6个立方体图像重新映射到三维立方体。现在我对第一步感到困惑,在互联网上找不到关于这方面的具体文件和代码,希望有人能给我一些想法。 我能得到的结果如下: 立方像 鱼眼图像 无法将任意鱼眼图像展开到立方体贴图。但是,如果您谈论的是球形环境贴图(SEM),而不是鱼眼图像,那么它可以有一些限制 不久前,我成功地编写了一个软件,可以将SEM映射转换为cubemap,反之亦然。所以我可以证明这是可能的。 您应该知道,靠

我想将二维鱼眼图像取消到三维立方体。因此我认为有必要将鱼眼图像取消到6个立方体图像,并将6个立方体图像重新映射到三维立方体。现在我对第一步感到困惑,在互联网上找不到关于这方面的具体文件和代码,希望有人能给我一些想法。 我能得到的结果如下:

立方像

鱼眼图像

无法将任意鱼眼图像展开到立方体贴图。但是,如果您谈论的是球形环境贴图(SEM),而不是鱼眼图像,那么它可以有一些限制

不久前,我成功地编写了一个软件,可以将SEM映射转换为cubemap,反之亦然。所以我可以证明这是可能的。 您应该知道,靠近SEM边缘的区域会出现较大的扭曲,该区域映射到立方体贴图背面的中心。 读了这篇文章,你会发现这里有实现你想要的一切所需的信息

有一个函数将方向向量映射到第9页SEM的uv坐标。在第21页,您会发现类似的函数,但用于立方体贴图。 因此,您的策略是为立方体贴图的每个纹理找到一个方向向量,然后为该方向向量计算SEM坐标,并从SEM贴图中采样一个纹理


另外,从你在评论中添加的链接中,我注意到你提到的是一个半球环境地图。除了从3d方向向量到SEM坐标的映射之外,所有逻辑都是相同的。为了处理半球,不难改变第9页的方程式。你应该知道,对于半球面扫描电镜,你会得到半立方贴图。我的意思是,没有背面和裁剪的侧面

你不能从一张图片中得到整个立方体。看看左边的立方体贴图部分。你看到鱼眼图像中90度的楼梯转弯了吗?buics通常是从多个角度拍摄镜像球体时提取的。但我用这两张图片只是为了展示一个例子。[链接]这个链接展示了基本理论,但我不知道如何实现它。谢谢,兄弟。事实上,我想从2d鱼眼图像创建一个半立方体,[link]在这个链接中,它以半立方体模式实现