正如我注意到的,许多3D游戏(我认为几乎所有的游戏)都使用简单的算法来进行计算。它的工作几乎是理想的,但所有的物体明显变形在边缘的视场。这一效应的最有力的例子是,在FOV边缘的所有球体看起来都不像圆圈。
OpenGl函数gluPerspective()创建具有相同缺陷的透视图。
我对更好的算法有一个粗略的想法,就像我想的那样,它将解决这个问题。
因此,问题是:
有没有任何算法没有这个缺陷,我可以在哪里读到它们呢?
发布于 2014-04-13 00:29:56
有没有任何算法没有这个缺陷,我可以在哪里读到它们呢?
有几个:球面投影,立体投影。圆柱形投影。平铺的全景投影,等等,你可以说出来。
然而,基于三角形的光栅系统对投影的正确工作有一个非常重要的要求:直线必须投影到直线(仿射投影)。这就是你所看到的令人不快的扭曲的原因。上面提到的任何投影(还有更多的)都可以使用适当的顶点着色器用OpenGL近似。然而,为了好看,几何学必须足够精细的镶嵌,因为直线的边缘需要分解成足够多的段,以允许映射到曲线。一个镶嵌着色器可以用于这一点。另一种方法是将一个宽的字段视图呈现为一个立方体映射(多维数据集映射需要仿射投影来创建它们)。然后可以在cubemap上应用和其他映射,从而获得更健壮的结果。
https://stackoverflow.com/questions/23037637
复制相似问题