OpenGL的英文全稱是「Open Graphics Library」,顧名思義,OpenGL便是「開放的圖形程序接頭」。OpenGL是個專業的3D程序接頭,是一個功能強大,使用方便的底層3D圖形庫。OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。雖然DirectX在家用市場全面領先,但在專業高端繪圖領域,OpenGL是不能被取代的主角。
OpenGL的軟體具有很好的移植性,可以獲得非常廣泛的套用。由於OpenGL是3D圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉換程序,可以很方便地將AutoCAD、3DS等3D圖形設計軟體製作的DFX和3DS模型文件轉換成OpenGL的頂點陣列。
在OpenGL的基礎上還有Open Inventor、Cosmo3D、Optimizer等多種進階圖形庫,適應不同套用。其中,Open Inventor套用最為廣泛。
該軟體是關於OpenGL面向對象的工具包,提供新增交互式3D圖形應用程式的對象和方法,提供了預定義的對象和用於交互的事件處理模組,新增和編輯3D場景的進階應用程式單元,有列印對像和用其它圖形格式交換資料的能力。
OpenGL的發展一直處於一種較為遲緩的態勢,每次版本的提高新增的技術很少,大多只是對其中部分做出修改和完善。1992年7月,SGI公司發怖了OpenGL的1.0版本,隨後又與微軟公司共同開發了Windows NT版本的OpenGL,從而使一些原來必須在高階圖形工作站上執行的大型3D圖形處理軟體也可以在微機上運用。1
995年OpenGL的1.1版本上市,該版本比1.0的效能有許多提高,並加入了一些新的功能。其中包括改進列印機支持,在增強元文件中包含OpenGL的使用,頂點陣列的新特性,提高頂點位置、法線、顏色、色彩指數、紋理坐標、多邊形邊緣標幟的傳輸速度,引入了新的紋理特性等等。OpenGL 1.5又新增了「OpenGL Shading Language」,該語言是「OpenGL 2.0」的底核,用於著色對像、頂點著色以及片斷著色技術的增強功能。
OpenGL 2.0標準的主要制訂者並非原來的SGI,而是逐漸在ARB中佔據主動地位的3Dlabs。
2.0版本首先要做的是與舊版本之間的完整相容性,同時在頂點與像素及記憶體管理上與DirectX共同合作以維持均勢。
OpenGL 2.0將由OpenGL 1.3的現有功能加上與之完全相容的新功能所組成(如圖一)。借此可以對在ARB停滯不前時代各家推出的各種糾纏不清的增強指令集做一次徹底的精簡。此外,硬體可編程能力的實現也提供了一個更好的方法以整合現有的增強指令。
目前,隨著DirectX的不斷發展和完善,OpenGL的優勢逐漸喪失,至今雖然已有3Dlabs提倡開發的2.0版本面世,在其中加入了很多類似於DirectX中可編程單元的設計,但廠商的用戶的認知程度並不高,未來的OpenGL發展前景迷茫。
IPhone 官方範例程式:
請利用這些範例中的設計及原始碼來協助開發您的iPhone程式

SQLiteBooks
Tilt your iPhone to land safely on the moon. Discover how to control a full OpenGL-based game using the accelerometer.

LunarLander
Tilt your iPhone to land safely on the moon. Discover how to control a full OpenGL-based game using the accelerometer.

GLSprite
Draw and animate a simple sprite. Use this as your starting point for full-screen OpenGL rendering.

GLTeapot
Rotate a 3D object with a touch gesture. Discover how to seamlessly blend OpenGL and UIKit drawing.

GLGravity
Viewa 3D object from every angle by turning and tilting your iPhone. Learnhow to use the accelerometer in combination with OpenGL rendering.

GLPaint
Paint a multi-colored picture with your finger. Discover the power and efficiency of drawing with OpenGL on iPhone.
其他SAMPLE:
http://www.iphonetw.net/forum/read.php?tid=2267
iPhone 開發基礎教程:
http://maciku.blogspot.com/2009/12/iphone_03.html
Chapter 12:第12章使用Quartz和OpenGL绘图
http://www.anywebapps.com/PDF/iPhone开发基础教程.pdf
沒有留言:
張貼留言