Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 更真实的透视算法_Algorithm_Opengl_3d - Fatal编程技术网

Algorithm 更真实的透视算法

Algorithm 更真实的透视算法,algorithm,opengl,3d,Algorithm,Opengl,3d,正如我注意到的,很多3D游戏几乎都使用简单的算法来计算透视图。它的工作原理几乎很理想,但所有对象都会在FOV的边缘显著变形。这种效果最明显的例子是FOV边缘的所有球体看起来都不像圆。 OpenGl函数gluPerspective创建具有相同缺陷的透视图 我有一个更好的算法,我认为,将解决这个问题的粗略想法 所以,问题是: 有没有任何算法没有这个缺陷,我可以在哪里读到它们 有没有任何算法没有这个缺陷,我可以在哪里读到它们 有几种:球面投影,赤平投影。圆柱投影。平铺全景投影等等,你可以说 然而,基于

正如我注意到的,很多3D游戏几乎都使用简单的算法来计算透视图。它的工作原理几乎很理想,但所有对象都会在FOV的边缘显著变形。这种效果最明显的例子是FOV边缘的所有球体看起来都不像圆。 OpenGl函数gluPerspective创建具有相同缺陷的透视图

我有一个更好的算法,我认为,将解决这个问题的粗略想法

所以,问题是: 有没有任何算法没有这个缺陷,我可以在哪里读到它们

有没有任何算法没有这个缺陷,我可以在哪里读到它们

有几种:球面投影,赤平投影。圆柱投影。平铺全景投影等等,你可以说

然而,基于三角形的光栅系统对投影有一个非常重要的要求:直线必须投影为直线仿射投影。这就是你看到的令人不快的扭曲的原因。我上面提到的任何投影以及更多投影都可以使用OpenGL使用适当的顶点着色器进行近似。但是,为了看起来很好,几何体必须进行足够精细的镶嵌,因为直边需要分解为足够多的段,以允许映射到曲线。可以为此使用细分着色器。另一种方法是将广域视图渲染为立方体贴图立方体贴图需要仿射投影才能创建。然后,您可以在立方体贴图上应用和其他映射,从而得到更可靠的结果

有没有任何算法没有这个缺陷,我可以在哪里读到它们

有几种:球面投影,赤平投影。圆柱投影。平铺全景投影等等,你可以说

然而,基于三角形的光栅系统对投影有一个非常重要的要求:直线必须投影为直线仿射投影。这就是你看到的令人不快的扭曲的原因。我上面提到的任何投影以及更多投影都可以使用OpenGL使用适当的顶点着色器进行近似。但是,为了看起来很好,几何体必须进行足够精细的镶嵌,因为直边需要分解为足够多的段,以允许映射到曲线。可以为此使用细分着色器。另一种方法是将广域视图渲染为立方体贴图立方体贴图需要仿射投影才能创建。然后,您可以在立方体贴图上应用和其他映射,从而得到更可靠的结果