透视摄像机视图的

时间:2016-04-06 21:13:30

标签: opengl graphics 3d linear-algebra

我正在使用OpenGL中的透视投影相机,以gluLookAt()

的方式采用目标向上的方式

我想将整个3d视图移动到2d窗口内的其他位置,如下图所示:

enter image description here

我知道这可以用glViewport()完成,但我最终希望能够旋转3d视图以及翻译它,我理解这不适用于glViewport方法。

我也明白采用非glViewport方法需要额外的模板步骤。我稍后会离开那一步。

目前,我希望简单地翻译上图中显示的三维视图(忽略模板问题)。

似乎翻译投影矩阵是正确的方法,但翻译范围并不是我所期望的。也许我需要缩放我正在使用的参数?无论如何,我希望有人可以解释如何(或多或少)模拟可翻译/可旋转的glViewport以获得3D透视图。

谢谢!

1 个答案:

答案 0 :(得分:0)

您使用glViewport()。对于每个视口,您可以设置视口,设置模型视图矩阵和绘制场景。

对于第一个视口

glViewport (0, 0, window_width/2, window_height/2);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();

//do something with projection matrix

drawScene();

对于第二个视口

glViewport (window_width/2, 0, window_width/2, window_height/2);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();

//do something different with projection matrix

drawScene();