歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

OpenGL基礎圖形編程

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已成為目前的三維圖形開發標准,是從事三維圖形開發工作的技術人員所必須掌握的開發工具。

Copyright © Linux教程網 All Rights Reserved