OpenGL函數思考-glOrtho

OpenGL函數思考-glOrtho ide

函數原型: 函數

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

參數說明: 設計

函數說明: 對象

        glOrtho()這個函數設置正攝投影矩陣,通常在執行命令glMatrixMode(GL_PROJECTION)和glLoadidentity()以後使用;使用glOrtho函數能夠將當前的可視空間設置爲正投影空間。基參數的意義如圖,若是繪製的圖空間自己就是二維的,可使gluOrtho2D.他的使用相似於glOrtho.這個函數描述了一個平行修剪空間。這種投影意味着離觀察者較遠的對象看上去不會變小(與透視投影相反)。在3D笛卡爾座標中想象這個修剪空間,左邊和右邊是最小和最大的X值,上邊和下邊是最小和最大的Y值,近處和遠處是最小和最大的Z值。 原型

正射投影: it

      正射投影,又叫平行投影。這種投影的視景體是一個矩形的平行管道,也就是一個長方體。正射投影的最大一個特色是不管物體距離相機多遠,投影后的物體大小尺寸不變。這種投影一般用在建築藍圖繪製和計算機輔助設計等方面,這些行業要求投影后的物體尺寸及相互間的角度不變,以便施工或製造時物體比例大小正確。 rust

  glOrtho就是一個正射投影函數。它建立一個平行視景體。實際上這個函數的操做是建立一個正射投影矩陣,而且用這個矩陣乘以當前矩陣。其中近裁剪平面是一個矩形,矩形左下角點三維空間座標是(left,bottom,-near),右上角點是(right,top,-near);遠裁剪平面也是一個矩形,左下角點空間座標是(left,bottom,-far),右上角點是(right,top,-far)。全部的near和far值同時爲正或同時爲負。若是沒有其餘變換,正射投影的方向平行於Z軸,且視點朝向Z負軸。這意味着物體在視點前面時far和near都爲負值,物體在視點後面時far和near都爲正值。 im

glOrtho是創建一個正交平行的視景體。 通常用於物體不會由於離屏幕的遠近而產生大小的變換的狀況。好比,經常使用的工程中的製圖等。須要比較精確的顯示。 而做爲它的對立狀況, glFrustum則產生一個透視投影。這是一種模擬真是生活中,人們視野觀測物體的真實狀況。例如:觀察兩條平行的火車到,在過了很遠以後,這兩條鐵軌是會相交於一處的。還有,離眼睛近的物體看起來大一些,遠的物體看起來小一些。 top

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的框框把球體的右上角裝了進來。上述三種狀況能夠見圖:

 

         從上述三種狀況,咱們能夠大體瞭解glOrtho函數的用法。glOrtho函數只是負責使用什麼樣的視景體來截取圖像,並不負責使用某種規則把圖像呈如今屏幕上
相關文章
相關標籤/搜索