WebGL只不過是一個3D繪圖協議,只不過是將JavaScript和OpenGL進行了一個結合,本質上講是基於Html5的Canvas提供硬體加速進行3D渲染,支援用於開發具有複雜3D結構或者3D效果的頁面。
從這個角度來說,你要學習的依然是基礎的內容:
首先,你要玩兒轉JavaScript,語言是基礎嘛。
其次,你最好還是學習一下OpenGL庫以及一些WebGL常用的類庫。
第三,演算法其實還是核心,不管是你用什麼語言,最終呈現還是依靠演算法來實現的。
相比其他前端技術,WebGL最大的特點的就是學習曲線異常之陡,入門感覺比較難。另外在這方面的資料也非常少,一部分因為該技術出現的時間還比較晚,另外它和OpenGL這樣成熟的技術類似,很多人認為熟悉了OpenGL之後並不再需要單獨介紹WebGL。其實這是對新手非常不友好的。
找一本入門書籍開始閱讀,作者最好是該行業從業多年或該領域的專家,其程式碼會比較規範,基礎概念也會講得很清楚。針對每個知識點做小demo進行學習,嘗試修改引數並檢視結果。瞭解一些圖形渲染、GPU方面的知識,加深對WebGL渲染流水線的認知。什麼時候都不該忽略效能,WebGL也如此,看一些效能相關的最佳實踐,從源頭避免寫出效能很差的3D程式。在OpenGL ES、OpenGL方向擴充套件。如果你只是想利用WebGL技術快速做出一些效果,可以選擇目前較為成熟的庫,例如Three.js。
Learning WebGL。一個專門介紹WebGL技術、進展的網站,裡面提供了一系列的基礎課程,這個課程就目前來說是比較經典的,推薦學習。瞭解基本的WebGL程式寫法和風格。該網站的作者也是《WebGL: Up and Running》一書的作者。WebGL規範。目前瀏覽器應用的規範標準。
WebGL Techniques and Performance(Youtube,需要翻):Google I/O 2011年的一個分享,推薦。可以瞭解WebGL效能最佳化的基本思想和方法。分享人是Gregg Travares,在Chrome GPU團隊,主要推動了Chrome的GPU渲染以及WebGL在Chrome上的實現,在Stackoverflow上非常活躍,經常回答WebGL相關問題。WebGL Fundamentals還是Gregg Travares寫的,在HTML5Rocks上。HTML5Rocks上關於WebGL的資源。可以自行搜尋。
效能
Debugging and Optimizing WebGL Applications。Google的兩位工程師介紹WebGL效能相關的議題。
Thinking in WebGL: Reducing Memory Usage。關於記憶體方面的考慮。
工具
WebGL Debugging and Profiling Tools。一篇介紹WebGL除錯工具的文章。
書籍
這裡列出了一些讀過的WebGL書籍,並附有簡短的說明供大家參考,其他書籍資訊可自行在amazon、china-pub上查詢。
WebGL Beginner"s Guide入門書籍,強烈推薦。
Beginning WebGL for HTML5另一本入門,推薦。
Professional WebGL Programming: Developing 3D Graphics for the Web 比較深入的一本書,適合進階閱讀,強烈推薦。LBS圖書館有英文版。
WebGL: Up and Running 入門書籍,有比較多的three.js部分介紹,對於想從底層掌握WebGL同學不太適合。該書作者也同時維護一個學習WebGL的網站:Learning WebGL。上面的課程非常不錯。
WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL)基礎知識比較全面。推薦看這本書的高階部分,介紹的內容也比較豐富。
Graphics ShadersTheory and Practice專門介紹圖形著色器的書,有翻譯版(吐槽一下清華大學出版社的翻譯版本,排版差,翻譯更差,可見就是糊弄出來的一本書)。[G
PU程式設計與CG語言之陽春白雪下里巴人]16好奇怪的書名,這是國內一位作者所寫,開篇痛訴國內科研之現狀,作者對待做學問的態度還是很不錯的。少有的優秀中文資料,推薦。
WebGL只不過是一個3D繪圖協議,只不過是將JavaScript和OpenGL進行了一個結合,本質上講是基於Html5的Canvas提供硬體加速進行3D渲染,支援用於開發具有複雜3D結構或者3D效果的頁面。
從這個角度來說,你要學習的依然是基礎的內容:
首先,你要玩兒轉JavaScript,語言是基礎嘛。
其次,你最好還是學習一下OpenGL庫以及一些WebGL常用的類庫。
第三,演算法其實還是核心,不管是你用什麼語言,最終呈現還是依靠演算法來實現的。
相比其他前端技術,WebGL最大的特點的就是學習曲線異常之陡,入門感覺比較難。另外在這方面的資料也非常少,一部分因為該技術出現的時間還比較晚,另外它和OpenGL這樣成熟的技術類似,很多人認為熟悉了OpenGL之後並不再需要單獨介紹WebGL。其實這是對新手非常不友好的。
學習路徑找一本入門書籍開始閱讀,作者最好是該行業從業多年或該領域的專家,其程式碼會比較規範,基礎概念也會講得很清楚。針對每個知識點做小demo進行學習,嘗試修改引數並檢視結果。瞭解一些圖形渲染、GPU方面的知識,加深對WebGL渲染流水線的認知。什麼時候都不該忽略效能,WebGL也如此,看一些效能相關的最佳實踐,從源頭避免寫出效能很差的3D程式。在OpenGL ES、OpenGL方向擴充套件。如果你只是想利用WebGL技術快速做出一些效果,可以選擇目前較為成熟的庫,例如Three.js。
學習資源Learning WebGL。一個專門介紹WebGL技術、進展的網站,裡面提供了一系列的基礎課程,這個課程就目前來說是比較經典的,推薦學習。瞭解基本的WebGL程式寫法和風格。該網站的作者也是《WebGL: Up and Running》一書的作者。WebGL規範。目前瀏覽器應用的規範標準。
WebGL Techniques and Performance(Youtube,需要翻):Google I/O 2011年的一個分享,推薦。可以瞭解WebGL效能最佳化的基本思想和方法。分享人是Gregg Travares,在Chrome GPU團隊,主要推動了Chrome的GPU渲染以及WebGL在Chrome上的實現,在Stackoverflow上非常活躍,經常回答WebGL相關問題。WebGL Fundamentals還是Gregg Travares寫的,在HTML5Rocks上。HTML5Rocks上關於WebGL的資源。可以自行搜尋。
WebGL課程中文翻譯版效能
Debugging and Optimizing WebGL Applications。Google的兩位工程師介紹WebGL效能相關的議題。
Thinking in WebGL: Reducing Memory Usage。關於記憶體方面的考慮。
工具
WebGL Debugging and Profiling Tools。一篇介紹WebGL除錯工具的文章。
書籍
這裡列出了一些讀過的WebGL書籍,並附有簡短的說明供大家參考,其他書籍資訊可自行在amazon、china-pub上查詢。
WebGL Beginner"s Guide入門書籍,強烈推薦。
Beginning WebGL for HTML5另一本入門,推薦。
Professional WebGL Programming: Developing 3D Graphics for the Web 比較深入的一本書,適合進階閱讀,強烈推薦。LBS圖書館有英文版。
WebGL: Up and Running 入門書籍,有比較多的three.js部分介紹,對於想從底層掌握WebGL同學不太適合。該書作者也同時維護一個學習WebGL的網站:Learning WebGL。上面的課程非常不錯。
WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL)基礎知識比較全面。推薦看這本書的高階部分,介紹的內容也比較豐富。
Graphics ShadersTheory and Practice專門介紹圖形著色器的書,有翻譯版(吐槽一下清華大學出版社的翻譯版本,排版差,翻譯更差,可見就是糊弄出來的一本書)。[G
PU程式設計與CG語言之陽春白雪下里巴人]16好奇怪的書名,這是國內一位作者所寫,開篇痛訴國內科研之現狀,作者對待做學問的態度還是很不錯的。少有的優秀中文資料,推薦。