回覆列表
  • 1 # 焦慮老爸

    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好奇怪的書名,這是國內一位作者所寫,開篇痛訴國內科研之現狀,作者對待做學問的態度還是很不錯的。少有的優秀中文資料,推薦。

  • 中秋節和大豐收的關聯?
  • 我這個電腦打CSGO特別卡,我這個配置要換什麼硬體才不卡呢?