OpenGL的glViewport()函数和glOrtho()函数用法

来源:互联网 发布:js打印九九乘法表 编辑:程序博客网 时间:2024/05/13 22:09
OpenGL的glViewport()函数和glOrtho()函数用法
2008-11-27 20:13

glViewport()函数

OpenGL初始化完成之后,我们应该进行一些视图设置。首先是设定视见区域,即告诉OpenGL应把渲染之后的图形绘制在窗体的哪个部位。当视见区域是整个窗体时,OpenGL将把渲染结果绘制到整个窗口。我们调用glViewPort函数来决定视见区域:

    procedure glViewPort(x:GLInt;y:GLInt;Width:GLSizei;Height:GLSizei);

    其中,参数XY指定了视见区域的左下角在窗口中的位置,一般情况下为(00),WidthHeight指定了视见区域的宽度和高度。注意OpenGL使用的窗口坐标和WindowsGDI使用的窗口坐标是不一样的。图3.1-1表示了在WindowsGDI中的窗口坐标,而图3.1-2则是OpenGL所定义的窗口坐标。

  

例如,要设置如图3.1-3中的视见区域,我们应该调用函数:

      glViewPort(100,100,Width,Height);

 

glOrtho()函数

 

void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,
      GLdouble near,GLdouble far)

正射投影,又叫平行投影。这种投影的视景体是一个矩形的平行管道,也就是一个长方体,如图所示。正射投影的最大一个特点是无论物体距离相机多远,投影后的物体大小尺寸不变。这种投影通常用在建筑蓝图绘制和计算机辅助设计等方面,这些行业要求投影后的物体尺寸及相互间的角度不变,以便施工或制造时物体比例大小正确。glOrtho就是一个正射投影函数。它创建一个平行视景体。实际上这个函数的操作是创建一个正射投影矩阵,并且用这个矩阵乘以当前矩阵。其中近裁剪平面是一个矩形,矩形左下角点三维空间坐标是(leftbottom-near),右上角点是(righttop-near);远裁剪平面也是一个矩形,左下角点空间坐标是(leftbottom-far),右上角点是(righttop-far)。所有的nearfar值同时为正或同时为负。如果没有其他变换,正射投影的方向平行于Z轴,且视点朝向Z负轴。这意味着物体在视点前面时farnear都为负值,物体在视点后面时farnear都为正值。

原创粉丝点击