目前在研究WebGL,根據WiKi的介紹:WebGL是一項在網頁瀏覽器呈現3D畫面的技術,有別於過往需加裝瀏覽器外掛程式,透過WebGL的技術,只需要編寫網頁程式碼,即可實現3D圖像的顯示,而它的程式碼會在GPU上執行。它是基於OpenGL ES繪圖的API,使用HTML5的canvas元素,並以DOM (Document Object Model)作為存取介面,而Javascript會提供自動的記憶體管理。WebGL 1.0規格在2011/3/3釋出,算是相當新穎的技術,未來還有很多發展空間。
- 關於設置WebGL的執行環境
目前使用Google Chrome 14.0和Mozilla Firefox 6.0兩個瀏覽器來開發學習和開發WebGL,初步執行demo網頁後,發現兩者都可正常執行,但網頁放置一陣子後Firefox頁面上的demo區的影像會不見,重整後跳出無法支援的訊息,重開瀏覽器才恢復;而Chrome則是頁面被凍結(沒有執行WebGL的母分頁也會),出現在其它分頁的殘破影像,此時整個作業系統變得相當緩慢,唯有關閉該分頁(包含母分頁),重開瀏覽器才恢復。 - 關於WebGL的缺陷
目前WebGL有安全性的問題,資安公司Context指出,WebGL架構的瑕疵可能讓駭客擷取PC繪圖晶片中的記憶體資料,還可能發生DoS(阻斷服務攻擊),瀏覽器之後的版本先停用有問題的功能。 - 關於WebGL的撰寫
透過Learning WebGL這個網站的Lesson來學習WebGL,它的Lesson1-4可以在live demo的頁面按右鍵另存新檔,將整個html檔和js檔一併儲存,接著點選儲存在本機上html檔,可見開啟後的畫面跟網頁上的live demo一模一樣。可在文字編輯器上撰寫程式碼,儲存後在頁面上按重整即可見到修改後的效果。 - 關於學習WebGL的前備知識
需要瞭解基本的HTML、Javascript、OpenGL ES 2.0 (OpenGL 3.0)、OpenGL 2.x + GLSL。看了最簡單的範例程式碼,發現有許多script區塊,甚至有shader的程式碼,原來Open ES 2.0之後已經捨棄fixed function pipeline而使用programmable pipeline,所以在WebGL環境裡,必須自己編寫Vertex Shader和Fragment Shader,因而入門WebGL比學習OpenGL高。官方另有繼續發展1.x版的藍圖,藉以支援ow-end cell-phones到high-end gaming consoles。 - 關於WebGL的Demo網頁
*http://code.google.com/p/webglsamples
*http://www.khronos.org/webgl/wiki/Demo_Repository
*http://spidergl.org/code.php
觀察執行WebGL demo時GPU的狀態,我使用免費軟體OpenHardwareMonitor,發現沒有執行WebGL時,CPU Core和GPU Memory Controller只有一丁點活動,執行後便有顯著的表現。此外,轉移分頁到非WebGL頁面,活動便會停下來。 - 關於WebGL的tutorial教學
*http://learningwebgl.com/
一共有16個lesson,其教學靈感來自NeHe的OpenGL教學。
*http://www.khronos.org/webgl/wiki/Main_Page
有詳盡的WebGL資源,包括文件、實做、展示等等。
參考:WiKiWebGL、WebGL官方網站、WebGL的維基百科、Learning WebGL、WebGL相關文章。


隨意留個言吧:)~