1. 程式人生 > >OpenGL基礎圖形程式設計(一)OpenGL與3D圖形世界

OpenGL基礎圖形程式設計(一)OpenGL與3D圖形世界

一、OpenGL與3D圖形世界

1.1、OpenGL使人們進入三維圖形世界
  我們生活在一個充滿三維物體的三維世界中,為了使計算機能精確地再現這些物體,我們必須能在三維空間描繪這些物體。我們又生活在一個充滿資訊的世界中,能否儘快地理解並運用這些資訊將直接影響事業的成敗,所以我們需要用一種最直接的形式來表示這些資訊。
  最近幾年計算機圖形學的發展使得三維表現技術得以形成,這些三維表現技術使我們能夠再現三維世界中的物體,能夠用三維形體來表示複雜的資訊,這種技術就是視覺化(Visualization)技術。視覺化技術使人能夠在三維圖形世界中直接對具有形體的資訊進行操作,和計算機直接交流。這種技術已經把人和機器的力量以一種直覺而自然的方式加以統一,這種革命性的變化無疑將極大地提高人們的工作效率。視覺化技術賦予人們一種模擬的、三維的並且具有實時互動的能力,這樣人們可以在三維圖形世界中用以前不可想象的手段來獲取資訊或發揮自己創造性的思維。機械工程師可以從二維平面圖中得以解放直接進入三維世界,從而很快得到自己設計的三維機械零件模型。醫生可以從病人的三維掃描圖象分析病人的病灶。軍事指揮員可以面對用三維圖形技術生成的戰場地形,指揮具有真實感的三維飛機、軍艦、坦克向目標開進並分析戰鬥方案的效果。


  更令人驚奇的是目前正在發展的虛擬現實技術,它能使人們進入一個三維的、多媒體的虛擬世界,人們可以遊歷遠古時代的城堡,也可以遨遊浩翰的太空。所有這些都依賴於計算機圖形學、計算機視覺化技術的發展。人們對計算機視覺化技術的研究已經歷了一個很長的歷程,而且形成了許多視覺化工具,其中SGI公司推出的GL三維圖形庫表現突出,易於使用而且功能強大。利用GL開發出來的三維應用軟體頗受許多專業技術人員的喜愛,這些三維應用軟體已涉及建築、產品設計、醫學、地球科學、流體力學等領域。隨著計算機技術的繼續發展,GL已經進一步發展成為OpenGL,OpenGL已被認為是高效能圖形和互動式視景處理的標準,目前包括ATT公司UNIX軟體實驗室、IBM公司、DEC公司、SUN公司、HP公司、Microsoft公司和 SGI公司在內的幾家在計算機市場佔領導地位的大公司都採用了OpenGL圖形標準。

  值得一提的是,由於Microsoft公司在 Windows NT中提供OpenGL圖形標準,OpenGL將在微機中廣泛應用,尤其是OpenGL三維圖形加速卡和微機圖形工作站的推出,人們可以在微機上實現三維圖形應用,如CAD設計、模擬模擬、三維遊戲等,從而更有機會、更方便地使用OpenGL及其應用軟體來建立自己的三維圖形世界。

1.2、OpenGL提供直觀的三維圖形開發環境
  OpenGL實際上是一種圖形與硬體的介面。它包括了120個圖形函式,開發者可以用這些函式來建立三維模型和進行三維實時互動。與其他圖形程式設計介面不同,OpenGL提供了十分清晰明瞭的圖形函式,因此初學的程式設計員也能利用OpenGL的圖形處理能力和1670萬種色彩的調色盤很快地設計出三維圖形以及三維互動軟體。


  OpenGL強有力的圖形函式不要求開發者把三維物體模型的資料寫成固定的資料格式,這樣開發者不但可以直接使用自己的資料,而且可以利用其他不同格式的資料來源。這種靈活性極大地節省了開發者的時間,提高了軟體開發效益。
  長期以來,從事三維圖形開發的技術人員都不得不在自己的程式中編寫矩陣變換、外部裝置訪問等函式,這樣為調製這些與自己的軟體開發目標關係並不十分密切的函式費腦筋,而OpenGL正是提供一種直觀的程式設計環境,它提供的一系列函式大大地簡化了三維圖形程式。例如:

  • OpenGL提供一系列的三維圖形單元供開發者呼叫。
  • OpenGL提供一系列的圖形變換函式。
  • OpenGL提供一系列的外部裝置訪問函式,使開發者可以方便地訪問滑鼠、鍵盤、空間球、資料手套等這種直觀的三維圖形開發環境體現了OpenGL的技術優勢,這也是許多三維圖形開發者熱衷於OpenGL的緣由所在。
1.3、OpenGL成為目前三維圖形開發標準
  OpenGL成為目前三維圖形開發標準在計算機發展初期,人們就開始從事計算機圖形的開發。直到計算機硬軟體和計算機圖形學高度發達的九十年代,人們發現複雜的資料以視覺的形式表現時是最易理解的,因而三維圖形得以迅猛發展,於是各種三維圖形工具軟體包相繼推出,如PHIGS、PEX、 RenderMan等。這些三維圖形工具軟體包有些側重於使用方便,有些側重於渲染效果或與應用軟體的連線,但沒有一種三維工具軟體包在互動式三維圖形建模能力、外部裝置管理以及程式設計方便程度上能夠OpenGL相比擬。
  OpenGL經過對GL的進一步發展,實現二維和三維的高階圖形技術,在效能上表現得異常優越,它包括建模、變換、光線處理、色彩處理、動畫以及更先進的能力,如紋理影射、物體運動模糊等。OpenGL的這些能力為實現逼真的三維渲染效果、建立互動的三維景觀提供了優秀的軟體工具。OpenGL在硬體、視窗、作業系統方面是相互獨立的。
  許多計算機公司已經把 OpenGL整合到各種視窗和作業系統中,其中作業系統包括UNIX、Windows NT、DOS等,視窗系統有X視窗、Windows等。為了實現一個完整功能的圖形處理系統,設計一個與OpenGL相關的系統結構為:其最底層是圖形硬體,第二層為作業系統,第三層為視窗系統,第四層為OpenGL,第五層為應用軟體。OpenGL是網路透明的,在客戶 — 伺服器(Client-Server)體系結構中,OpenGL允許本地和遠端繪圖。所以在網路系統中,OpenGL在X視窗、Windows或其它視窗系統下都可以以一個獨立的圖形窗口出現。
  OpenGL作為一個性能優越的圖形應用程式設計介面(API)而適合於廣泛的計算環境,從個人計算機到工作站和超級計算機,OpenGL都能實現高效能的三維圖形功能。由於許多在計算機界具有領導地位的計算機公司紛紛採用OpenGL作為三維圖形應用程式設計介面,OpenGL應用程式具有廣泛的移植性。因此,OpenGL已成為目前的三維圖形開發標準,是從事三維圖形開發工作的技術人員所必須掌握的開發工具。