WebGL

WebGL - OpenGL ES 2.0 for the Web

 

WebGL 的全名是「Web Graphics Library」,他的官方網站是:http://www.khronos.org/webgl/

他是由 OpenGL 的管理組織 Khronos Group,基於 OpenGL ES 2.0 所規範、跨平台的網頁 3D 呈現的標準。目前除了 Microsoft (Internet Explorer) 以外的幾家主要瀏覽器公司,大多都是 WebGL Working Group 的成員,包括了 Apple (Safari)、Google (Chrome)、Mozilla (Firefox) 和 Opera (Opera)。

WebGL是一項在網頁瀏覽器呈現3D畫面的技術,如果網頁瀏覽器有支援的話,就可以在不需要額外加裝瀏覽器外掛程式的情形下,使用 JavaScript 和 OpenGL ES 2.0 的語法,來編寫出 3D 的 web 應用程式,同時也可以使用顯示卡來做顯示的硬體加速。而在網頁呈現的編排部分,WebGL 是會把最後結果,畫在 Canvas 這個 HTML5 的元素上;也由於使用 Canvas 這個元素,所以他基本上也是整合進整個 DOM (Document Object Model) 的架構的,以DOM作為存取介面,而Javascript會提供自動的記憶體管理。

所以,基本上要寫 WebGL 的程式,程式開發者必需要熟悉 HTML、JavaScript 以及 OpenGL ES 2.0(包含 GLSL),才能夠編寫出使用 WebGL 的 Web App。

 

*OpenGL ES : khronos 所維護、定義的免授權費、跨平台的 3D Graphics API,不過和 OpenGL 不同的是,OpenGL ES 主要是針對嵌入式系統(embedded system)的環境(像是手機、PDA);而近年來網頁上的多媒體技術越來越複雜、多樣化,也漸漸地需要用到 3D Graphics 的硬體加速,所以也出現了基於 OpenGL ES 2.0 而發展、直接在網頁上做 3D 顯示的 WebGL。

 

 

為何微軟不願支援WebGL:

主要原因是擔心採用WebGL的安全問題,由於WebGL自身架構的設計不良,導致安全上的漏洞,尤其是它暴露太多敏感且未強化安全的代碼,以致於容易遭受DDOS攻擊,且微軟內部關於Security Development Lifecycle的產品要求, 很難讓支持WebGL的產品通過。

 

實際應用:

Google 搜尋的新功能。現在只要使用有支援 WebGL 的瀏覽器(例如 Firefox 或 Chrome)在 Google 這個搜尋引擎輸入數學公式,Google 就會把這個公式用 WebGL 畫出來了!不管是 2D 或 3D 的都可以

透過WebGL標準,將能夠實現網頁3D遊戲的開發,例如:立體迷宮、立體賽車,也可應用於其他地方,像是地圖與影片都有可能在網頁上以3D的方式呈現。

 

 

 

資料來源:

http://www.khronos.org/webgl/

http://kheresy.wordpress.com/2010/04/01/webgl-%E7%B0%A1%E4%BB%8B%E3%80%8...

http://learningwebgl.com/blog/?page_id=1217  (<--裡面有教學及範例,也有中文不過是簡體)

http://code.google.com/p/webglsamples/            (範例)