陳超
摘 要:隨著計算機軟、硬件突飛猛進的發展,計算機圖形學在各個行業的應用也得到迅速普及和深入,目前,計算機圖形學己進入三維時代。本文以三維圖形為研究對象,對用OpenGL創建三維圖形進行研究。
關鍵詞:計算機圖形學;三維投影;OpenGL
1、引言
科學計算可視化、計算機動畫和虛擬現實已經成為近年來計算機圖形學的三大熱門話題,而這三大熱門話題的技術核心均為三維圖形。
三維圖形廣泛地應用于科學計算的可視化(運動仿真、有限元分析、流體計算、醫學成像、分子化學、汽車等曲面造型、地理信息、石油勘探和氣候模擬)、游戲開發、虛擬現實技術、影視廣告中及CAI等領域。
2、視平面和投影中心的一般化過程
OpenGL中的三維投影坐標系
在三維空間中的觀察過程根本就比在二維空間中的觀察過程復雜得多。三維觀察的額外的復雜性一部分是由被添加的維引起的,還有一部分是由顯示設備僅是二維的這一事實引起的。三維物體和二維顯示之間的不匹配問題是通過引入投影來解決的,而投影就是把三維物體變換到二維的投影平面上去。
OpenGL物體坐標系采用左手坐標系。投影三維物體的二維平面稱為投影平面,視平面坐標系附在投影平面上。物體坐標系描述物體的模型。取景參考點為物體建模參考點,一般將物體坐標系原點取為建模參考點。視平面坐標系原點為取景參考點在投影平面上的投影點,即平行于投影平面法線且通過取景參考點的直線與投影平面的交點。確定視平面坐標系向上方向的向量稱為取景上方向量。取景上方向量確定視平面坐標系繞取景參考點與視平面坐標系原點連線旋轉的角度。觀察點或視點是觀察者眼睛所在的位置,如圖1所示:
在三維觀察過程中,需要在世界坐標系中設定一個視見體(view volume),在投影平面上給出一個投影,并在觀察表面上給定一個視口。三維世界坐標系中的物體被三維視見體裁減,之后進行投影。視見體落在投影平面上的投影的內容(成為窗口)再被變換(映射)到視口進行顯示。
3、透視投影變換及視區變換
繪圖流程中最終的三維空間稱為三維平面空間。在這個空間中,進行視見體的裁剪,使用三維屏幕空間是因為它簡化了裁剪和隱藏面消除的操作。另外,這個空間中的物體最終都要經過一個向二維觀察平面坐標變換的過程。嚴格地將,屏幕坐標系是從視平面坐標系通過基本的變換導出的。圖2顯示了三維觀察過程的概念模型:
一般來說,投影是把n維空間坐標系中的點變換成小于n維的坐標系中的點。一個三維物體的投影是用從投影中西發射出來的許多直的投影射線來定義的,這些投影線通過物體的每一點和投影平面相交,形成該物體的投影。透視投影的視覺效果類似于照相系統和人的視覺系統,稱為透視縮小效應(perspective foreshortening):一個物體的透視投影的大小與物體到投影中心的距離成反比。因此,透視投影傾向于看起來真實。
4、OpenGL的透視投影變換
OpenGL透視投影利用去角錐的截頭體作為取景體積。取景體積決定物體投影的可視部分,而且滿足透視投影的遠大近小規則。OpenGL用gluPerspective命令指定的透視取景體積如圖3所示:
視點放置在角錐的頂點。其參數fovy為y—z平面上取景域的角度,aspect為截頭體x(寬度)與y(高度)的比值,zNear與zFar分別為視點與前后剪切面的距離,二者總為正值。進行透視投影變換前,必須用glMatrixMode將參數設置為投影模式GL_PROJECT,用glLoadIdentity置恒等矩陣命令清除過去矩陣的影響,同時用gluPerspective命令指定取景體積進行透視投影。
5、結束語
OpenGL三維圖形標準這一開放式圖形庫使得在微機上實現三維真實感圖形的生成與顯示成為可能。開發者可以有效地利用OpenGL提供的豐富的三維變換、光照、紋理、動畫及特殊效果函數等來建立三維模型和進行三維實時交互,從而開發出效果理想的視景系統,并進一步為虛擬現實的研究與開發打下堅實的基礎。
參考文獻:
[1] Richard S.Wright,Jr. Benjamin Lipchak.OpenGL 超級寶典(徐波 譯). 人民郵電出版社
[2] OpenGL體系結構審核委員會. OpenGL編程指南(第四版). 人民郵電出版社
[3] Alan Watt.3D計算機圖形學(包宏 譯). 機械工業出版社
[4] James D.Foley,Andries van Dam,Steven K.Feiner,John F.Hughes.計算機圖形學原理及實踐(唐澤圣,懂士海,李華,吳恩華,汪國平等譯). 機械工業出版社. 2004.3
[5] Donald Hearn,M.Pauline Baker.計算機圖形學. 北京:電子工業出版社.
[6] 周培德. 《計算幾何——算法分析與設計》 北京:清華大學出版社
[7] 周新倫,柳健,劉華志. 《數字圖像處理》 北京:國防工業出版社
[8] Poter,T.,and T.Duff 《Compositing Digital Images》