Cubemap problem http://i46.tinypic.com/59wsic.jpg
我正在尝试编写一个算法,从像上面那样的可激励的全景图像中生成“天花板”。图像1到4是立方体的墙壁的直切口,但是天花板将更复杂,因为我认为它需要从部分5a到5d合成。有人知道伪代码的解决方案吗?
我的猜测是我们需要迭代天花板瓷砖的坐标 即。
for y=0 to height
for x=0 to width
colorofsomecoordinateonoriginalimage = some function (poloar coords?)
set pixel(x,y) = colorofsomecoordinateonoriginalimage
next
next
答案 0 :(得分:2)
仅通过从单个位置拍摄照片并缝合它们,您无法生成全景照片。好吧,你可以使用一个水平套装,但它看起来很丑陋(通常,你缝合超过4张照片以避免边缘扭曲)。 在这里,你在y方向上有更多的数据,这意味着更多的图片,以及一些奇特的投影来生成最终的图像。
如果你仔细观察全景,你会注意到该区域在阳光下的边界不是直的。这是因为您的全景图投影在圆柱体上,而不是立方体上。所以我不认为1/2/3/4看起来会直接映射到立方体。
最重要的是,你真的不能把那些8块作为固定点拍摄的8张照片(如果你需要说服力,试着自己拍8张这样的照片并尝试将它们拼接在一起。你会看到它们有多么有趣它适用于上排,即使底行很容易,但它在缝合区域看起来有多难看。)
现在,为什么你需要立方体贴图大大改变你的选择。如果您只是在寻找一个立方体贴图来进行廉价的环境贴图效果,那么最简单的方法就是找到一个任意函数来映射您想要它们的边缘,并简单地在它们之间进行线性插值。这完全是错误的预测,但应该给出一个看起来足够实现预期目标的图片。
如果您正在寻找更准确的内容,那么您需要知道投影的生成方式,以便在重新投影到多维数据集之前可以取消投影。
所有这一切,只是拍摄立方体贴图而不是处理全景图来生成它们也容易得多,但这对你来说可能是不可能的。
答案 1 :(得分:2)