OpenGL 360度视角

时间:2012-12-30 14:16:55

标签: opengl panoramas

我正在寻找一个360度球形的全景图 - 我的场景照片。我怎么能做到最好?如果我说得对,我不能用普通的方式将透视设置为360。

如果我需要顶点着色器,是否有可用的?

1 个答案:

答案 0 :(得分:6)

这实际上是一项非常重要的事情。

在天真的方法中,顶点着色器不是通过矩阵乘法转换顶点位置,而是通过三角函数馈送它们似乎可以解决问题。问题是,这不会使直线“弯曲”。您可以使用tesselation着色器添加足够的几何图形来补偿这一点。

最直接的方法是双重的。首先,将场景渲染为立方体贴图,即以90°×90°FOV渲染到构成立方体的6个方向。这允许您使用渲染场景的常规仿射投影。

在第二步中,您使用生成的立方体贴图来设置屏幕填充网格,其中每个顶点的纹理坐标是方位角和高程。

另一种方法是使用具有非常小的FOV的平铺渲染并旋转“相机”,有点像在不使用广角镜头的情况下拍摄全景照片。事实上,基于立方体贴图的方法是平铺渲染,但它比直接使用更改的摄像机方向和视口位置更容易实现。