我遇到了问题。我想创建一个应用程序,允许人们在天空盒视图中观看他们用手机拍摄的全景照片。
为此,我需要将照片切片到cubeMap中。我在互联网上搜索了一个算法,但我找不到任何东西(我能理解)。
有些程序正在从全景图片中做天空盒,但我不知道他们的算法:/
答案 0 :(得分:0)
简单的方法是将图像保持原始格式并使用天空柱体而不是天空盒。然后,您可以根据顶点的高度和角度应用纹理坐标,并完成。
如果要使用天空盒,可以使用以下方法计算像素着色器中的正确纹理坐标:
u = atan(fragWorldPosX - cameraWorldPosX, fragWorldPosZ - cameraWorldPosZ) * scale1;
v = 0.5 + (fragWorldPosY - cameraWorldPosY) * scale2;
其中scale1
和scale2
是指定图片水平和垂直视野的参数。
在圆柱体和盒子中都不需要顶部或底部表面。