正如我注意到的那样,许多3D游戏(我认为几乎都是3D游戏)使用简单的算法来计算视角。它的工作原理几乎是理想的,但是所有对象在FOV的边缘都会明显变形。这种效果最简单的例子是FOV边缘的所有球看起来都不像圆形。
OpenGl函数gluPerspective()
创建具有相同缺陷的透视图。
我对更好的算法有一个粗略的想法,如我所愿,它将解决此问题。
因此,问题是:
是否有没有这种缺陷的算法,我在哪里可以读到它们?
有没有没有这个缺陷的算法,我在哪里可以读到它们?
有几种:球形投影,立体投影。圆柱投影。平铺的全景投影,依此类推,就为它命名。
但是,基于三角形的栅格系统对投影正常工作有非常重要的要求:直线必须投影到直线上(仿射投影)。这是导致您看到不愉快的变形的原因。我上面提到的任何投影(以及更多投影)都可以使用适当的顶点着色器使用OpenGL进行近似。但是,为使外观好看,必须对几何进行足够的细化,因为需要将笔直的边缘分解为足够多的段以允许映射到曲线。镶嵌着色器可用于此目的。另一种方法是将广角视图渲染到立方体贴图中(立方体贴图需要使用仿射投影进行创建)。然后,您可以在立方体贴图上应用其他映射,从而获得更可靠的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句