1. 程式人生 > >OpenGL ES Programming Guide for iOS 第一章

OpenGL ES Programming Guide for iOS 第一章

關於OpenGL ES

Open Graphics Library(OpenGL)用於二維及三維資料的視覺化。它是一種多用途的開放標準圖形庫,支援二維和三維數位內容創作,機械和建築設計,虛擬樣,飛行模擬,遊戲,以及更多的應用。OpenGL允許應用程式開發人員配置3D圖形管線,並提交資料。頂點是可轉換及照明,組裝原函式,建立2維影象。OpenGL被設計為翻譯函式呼叫為圖形命令並送至底層圖形裝置硬體。


因為底層硬體專門處理圖形命令,所以OpenGL繪圖非常快。

OpenGL for Embedded Systems (OpenGL ES)是OpenGL的一個簡化版本,消除冗餘的功能並提供一個庫,既容易學習也容易實踐在移動裝置上。

一覽

Apple 提供OpenGL ES 1.1 與 OpenGL ES 2.0:

●OpenGL ES 1.1實踐了一個明確的固定功能的管線。它實踐傳統照明及陰影模式並允許在每個階段配置以執行特殊任務或關閉不需要的功能。

●OpenGL ES 2.0 與OpenGL ES 1.1有很多相同通用功能,但移除了所有關於固定頂點及流水線階段的功能。相反的,它提供了存取通用著色器(shader)管線的新功能。著色器允許你自定頂點及片段功能,並直接在圖形硬體上執行。使用著色器,你的應用可以更清楚的自定每一個頂點跟片段的管線輸入及計算。

OpenGLES 是基於C語言, 與平臺無關的應用程式介面

因為OpenGLES是基於C的應用程式介面,所以非常容易移植及廣泛支援。作為C應用程式介面,可與基於Objective-C的CocoaTouch應用程式無縫整合。OpenGLES規範中並沒有宣告視窗層,主作業系統需提供功能建立OpenGLES宣染內文(renderingcontext),用以接受命令及建立偵快取(framebuffer)用來繪製命令結果。

相關章節OpenGL ES on iOS(13), Configuring OpenGL ES Contexts(20)

OpenGLES 被整合進 Core Animation

Core Animation是iOS圖形基礎,包含了應用程式顯示在螢幕上的OpenGL ES內容。 當你開發OpenGL ES應用程式,OpenGL ES內容會被繪製在一個特殊的Core Animation層,這個層被稱為CAEAGLLayer物件。用OpenGLES繪製的圖片會被儲存在CAEAGLLayer中。CoreAnimation組合其它層的圖形內容並顯示最後結果在螢幕上。

相關章節 Drawing With OpenGL ES

(28)