减少3D网格中的透视度(减少收敛)

时间:2013-08-23 12:27:06

标签: opengl graphics 3d perspective convergence

请参阅以下图片:

enter image description here

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

仍然需要透视,但收敛应该以较慢的速度发生,就像距离较短或使用长焦镜头一样。

虽然这张图片来自Blender,但正在使用的方法是OpenGL和POV-Ray,因此可以理解这两种方法的解决方案。

我在OpenGL和POV-Ray中建模了一些线。

我已尝试位置 - 角度正确 up ,包括 rotate scale translate 矩阵等相机转换

在OpenGL中,我尝试过 gluPerspective glFrustum glDepthRange

有没有人能解决这个问题?

(另外,在这种情况下,向下看网格不是一种选择)

1 个答案:

答案 0 :(得分:0)

你正在进行正投影......

glOrtho()

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(left, right, bottom, top, near, far);
glMatrixMode(GL_MODELVIEW);

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

这里有一张图片...... https://blender.stackexchange.com/questions/648/what-are-the-differences-between-orthographic-and-perspective-views

修改

要继续使用透视,但透视效果较小,可以减小视野参数。不幸的是,这会使投影看起来放大。要撤消缩放,请将相机移回。然后,如果需要,您可以相应地更新near / far。

enter image description here