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

glViewport()函数

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

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

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

OpenGL的glViewport()函数和glOrtho()函数用法_第1张图片   

OpenGL的glViewport()函数和glOrtho()函数用法_第2张图片

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

      glViewPort(100,100,Width,Height);

OpenGL的glViewport()函数和glOrtho()函数用法_第3张图片



 glOrtho是创建一个正交平行的视景体。 一般用于物体不会因为离屏幕的远近而产生大小的变换的情况。比如,常用的工程中的制图等。需要比较精确的显示。 而作为它的对立情况, glFrustum则产生一个透视投影。这是一种模拟真实生活中,人们视野观测物体的真实情况。例如:观察两条平行的火车到,在过了很远之后,这两条铁轨是会相交于一处的。还有,离眼睛近的物体看起来大一些,远的物体看起来小一些。

OpenGL的glViewport()函数和glOrtho()函数用法_第4张图片

glOrtho(left, right, bottom, top, near, far), left表示视景体左面的坐标,right表示右面的坐标,bottom表示下面的,top表示上面的。这个函数简单理解起来,就是一个物体摆在那里,你怎么去截取他。这里,我们先抛开glViewport函数不看。先单独理解glOrtho的功能。 假设有一个球体,半径为1,圆心在(0, 0, 0),那么,我们设定glOrtho(-1.5, 1.5, -1.5, 1.5, -10, 10);就表示用一个宽高都是3的框框把这个球体整个都装了进来。  如果设定glOrtho(0.0, 1.5, -1.5, 1.5, -10, 10);就表示用一个宽是1.5, 高是3的框框把整个球体的右面装进来;如果设定glOrtho(0.0, 1.5, 0.0, 1.5, -10, 10);就表示用一个宽和高都是1.5的框框把球体的右上角装了进来。上述三种情况可以见图:

OpenGL的glViewport()函数和glOrtho()函数用法_第5张图片

OpenGL的glViewport()函数和glOrtho()函数用法_第6张图片OpenGL的glViewport()函数和glOrtho()函数用法_第7张图片

原文地址:http://www.cnblogs.com/yxnchinahlj/archive/2010/10/30/1865298.html

 


你可能感兴趣的:(OpenGL的glViewport()函数和glOrtho()函数用法)