Opengl 减少三维网格中的透视度(减少收敛)

Opengl 减少三维网格中的透视度(减少收敛),opengl,graphics,3d,perspective,convergence,Opengl,Graphics,3d,Perspective,Convergence,请参见下图: 哪种数学方法或POV-Ray/OpenGL命令会减少网格的收敛性?(栅格收敛太快;为此,θ应为90度,与中心线匹配。) 透视仍然是需要的,但是会聚应该以较慢的速度发生,就像距离更短或者你使用的是长焦镜头一样 虽然这张图片来自Blender,但所使用的方法是OpenGL和POV-Ray,因此最好使用这两种方法中的任何一种 我用OpenGL和POV-Ray建模了一些线条 我尝试过POV光线中的定位、观察、角度、向右和向上,包括摄影机变换,如旋转、缩放、平移和矩阵 在OpenGL中,我

请参见下图:

哪种数学方法或POV-Ray/OpenGL命令会减少网格的收敛性?(栅格收敛太快;为此,θ应为90度,与中心线匹配。)

透视仍然是需要的,但是会聚应该以较慢的速度发生,就像距离更短或者你使用的是长焦镜头一样

虽然这张图片来自Blender,但所使用的方法是OpenGL和POV-Ray,因此最好使用这两种方法中的任何一种

我用OpenGL和POV-Ray建模了一些线条

我尝试过POV光线中的定位、观察、角度、向右和向上,包括摄影机变换,如旋转、缩放、平移和矩阵

在OpenGL中,我尝试了透视图、glFrustum和GLDEPTRANGE

有人能解决这个问题吗


(同样,在这种情况下,向下看网格不是一个选项)

您正在寻找正交投影

能够在正交和透视之间切换总是很好的,因为在正交中移动场景可能需要一段时间才能习惯

这里有一个图像

编辑

若要继续使用透视,但透视效果较低,可以减小“视野”参数。不幸的是,这将使投影显示为放大。要撤消缩放,请将相机向后移动。然后,如果需要,您可以相应地更新近/远


你在
glupperspective
中到底“尝试”了什么?glupperspective(45,w/h,0.5,8);具有不同的视场和剪裁平面值。感谢您的帮助和代码。我想要一些真实感的透视图,但不像透视相机那样强烈。是否有介于强透视摄影机和无透视正交摄影机之间的摄影机?感谢您提供的其他帮助。我试过你的建议,虽然它看起来像一个长焦镜头一样“放大”,但角度θ保持在60。有没有办法将角度θ设置为85-90度,以便它与网格图中中心线的角度相匹配?@user2689489同样的方法也可以,但您可能需要增加值(希望这不会引入数值不稳定性。如果有,可能会研究平截头体?)。可能需要计算向后移动摄影机的位置和隐式的近/远值。假设你想要一个单角度的透视图,并且近平面高度为1个单位,你必须将相机向后移动1.0/sin(1.0*toradians)大约50个单位,然后将“近”设置为50,“远”设置为1000。
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(left, right, bottom, top, near, far);
glMatrixMode(GL_MODELVIEW);