一、簡介
WebGL是一種3D繪圖標准,這種繪圖技術標准允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0的一個JavaScript綁定,WebGL可以為HTML5 Canvas提供硬件3D加速渲染,這樣Web開發人員就可以借助系統顯卡來在瀏覽器里更流暢地展示3D場景和模型了,還能創建復雜的導航和數據視覺化。顯然,WebGL技術標准免去了開發網頁專用渲染插件的麻煩,可被用於創建具有復雜3D結構的網站頁面,甚至可以用來設計3D網頁游戲等等。
區別於Unity和flash的需要瀏覽器加載插件,WebGL打開瀏覽器直接使用,但是目前IE不支持,火狐和谷歌等瀏覽器支持。
二、框架
由於原生WebGl的復雜性,現已有許多優秀的開源框架可供使用:
Three.js 是一個開源的JavaScript 3D引擎,該項目的目標是創建一個低復雜、輕量級的3D庫,用最簡單、直觀的方式封裝WebGL中的常用方法。目前由一個強大的貢獻團隊維護。
PhiloGL 是由Sencha 實驗室開發的一個新的WebGL開源框架,提供了強大的API,可幫助開發者輕松開發WebGL並整合到Web應用中,實現數據可視化,代碼。創作和游戲開發。
一個強大的3D游戲引擎,由Microsoft的員工David Cathue主導開發。和Three.js相比,three.js更傾向於動畫,而Babylon.js則更適合游戲開發。
SceneJS是一個開源的JavaScript 3D引擎,特別適合需要高精度細節的模型需求,比如工程學和醫學上常用的高精度模型。
X3DOM是一個實驗性的開源框架,它有一個原創的X3D元素,可以通過X3D插件、Flash或WebGL渲染。
這是一個“商業級別的WebGL 3D引擎和編輯器”,你可以免費使用,但是要想獲得未壓縮的完整版帶支持文檔的源碼和其他服務,則需要購買授權。
每個框架都有各自的特點,開發者可以根據自己的需求選擇最適合自己的框架。在接下來的幾章中,我們會使用Three.js作為3D引擎做示例,它是目前最受歡迎的WebGL框架。
在這么多WebGL框架中應用最廣泛的,相關文檔資料最豐富的當數three.js莫屬了。
Unity是由Unity Technologies開發的一個讓玩家輕松創建諸如三維視頻游戲、建築可視化、實時三維動畫等類型互動內容的多平台的綜合型游戲開發工具,是一個全面整合的專業游戲引擎。
隨着Unity5.0的發布,WebGL平台的部署也正式登場,Unity5.0支持WebGL發布。