所以我们可以接受这样的image from wikipedia
试着把它映射到未来的立方体或类似立方体的东西上
而不是像
有些人可能认为,只做一半的距离,而不是三脚猫填补它将工作。
它不会=(而且内容感知填充也无助于填充那个正方形=(
但如果你想渲染这样的立体全景图,那就太糟糕了。
我能想象的另一种方法是将三维全景图渲染到球体上,而不是以某种方式将其快照/投影到立方体上…但我不知道如何用简单的数学运算写下来(这里的想法不是使用渲染引擎,而是尽可能地用数学方法来做)
最佳答案
有一个叫做Quadrilateralized Spherical Cube的地图投影,在天体物理学中用来表示所有的天空地图。它有一个很好的特性,即像素在整个天空面积相等的几%以内,这样就减少了几何扭曲。
基本上,天体被投影到一个立方体上,每个立方体面被划分成像素;但是行和列的边界不是一个直线网格,而是稍微弯曲的,这样每个像素映射到球体上大致相同大小的区域。
像素寻址有点有趣假设你有一个带坐标的像素
其中一个立方体面上的X,Y如果X有二进制表示,而Y是,
然后,该面上的像素地址将x和y交错:aabbccdd。所以要重播
图像到更大的像素,你需要做的就是右移2位,以获得较低分辨率的像素地址。
对于32位像素地址,可以使用3位表示立方体面,使用28位表示该面内的交错x和y坐标。在这个分辨率下,每个像素覆盖大约20x20弧度的区域,或者大约三分之一平方英里(ish)--因此人们可以很好地利用这个作为地理或天体坐标散列技术。
要使用它,必须实现对像素数的正向变换(long,lat)或(ra,dec),以及从像素数到(long,lat)或(ra,dec)的反向变换。当然,从图像坐标到(long,lat)和back都有大量著名的地图投影。
我在几分钟的谷歌搜索中找不到任何代码——也许我可以找到一些20年前我在尤夫天体物理任务中写的代码,该任务使用这个投影绘制他们的全天空测量地图。
关于algorithm - 将360度Sphere全景图转换为Cube全景图的转换算法(伪代码或至少需要完整逻辑),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4676493/