Just My Life & My Work

[OpenGL] 認識 OpenGL ES

WebGL是一項在網頁瀏覽器呈現3D畫面的技術,在程式平台是HTML和Javascript,在繪圖方面是基於OpenGL ES這個規範,接著發現了OpenGL ES這個OpenGL的子版本,根據維基百科的解釋:OpenGL ES (OpenGL for Embedded Systems) 是OpenGL三維圖形 API 的子集,針對手機、PDA和遊戲主機等嵌入式設備而設計。該API由Khronos集團定義推廣,Khronos是一個圖形軟硬體行業協會,該協會主要關注圖形和多媒體方面的開放標準。

OpenGL ES版本內容變化有顯著的差異,1.x還是fixed function pipeline,到了2.x就變成programmable pipeline,並捨棄fixed function pipeline,也就是說,發展ES版儘管寫最簡單的程式(如畫圓、三角形,或translate、rotate、scale等),一定要寫shader才能運作,因而提高了入門的門檻。不過對於已經熟悉OpenGLGLSL的我,這些改變對我不是阻礙反而是助力呢!

這裡講一下OpenGL ES 1.x是以OpenGL 1.5規格來制定,強調API使用硬體加速來實做。

而OpenGL ES 2.x則是以OpenGL 2.0來制定,強調使用可程式化3D繪圖管線,可以產生shader和program object,藉由OpenGL ES Shading Language來寫vertex shader和fragment shader。

OpenGL ES 1.X

OpenGL ES 2.X - for Programmable Hardware

跟1.x版的差異在於vertex shader 是原本的 transform 和 lighting 的部分,fragment shader 則是對應到 texture、colour sum、fog、alpha test 等功能;也就是說,這些(橘色的部分)本來在 fixed function pipeline 時會由系統來做的計算,現在在 programmable pipeline 都要自己寫 shader 程式來做計算了。

OpenGL ES未來會有兩個發展藍圖,分別是1.x和2.x,為了因應廣大的3D設備市場,兩個發展藍圖分別要支援low-end cell-phones和high-end gaming consoles,Khronos承諾接下來的版本會向後相容(backwards compatibility)支援。還是看圖比較好懂:

OpenGL ES可以使用的平台相當廣泛,還是可以看圖來瞭解:

參考:WiKiOpenGL ESOpenGL ES系列教程OpenGL ES  – The Standard for Embedded Accelerated 3D GraphicsOpenGL ES 2.0 簡單介紹

廣告

Comments on: "[OpenGL] 認識 OpenGL ES" (1)

  1. […] 承接Khronos技術概觀和生態系統概述 (Khronos Technology Overview & Ecosystem Review)這一篇,下午第一場在講OpenGL & OpenGL ES,我之前有整理認識OpenGL ES可以參考。 […]

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: