WebGL開啟了網頁3D渲染的新時代,它允許在canvas中直接渲染3D的內容,而不借助任何插件。WebGL同canvas 2D的API一樣,都是通過腳本操縱對象,所以步驟也是基本相似:準備工作上下文,準備數據,在canvas中繪制對象并渲染。與2D不同的就是3D涉及的知識更多了,例如世界、光線、紋理、相機、矩陣等專業知識。WebGL有一個很好的中文教程,就是下面使用參考中的第一個鏈接,所以這里不再班門弄斧,后面的內容只是簡單的總結一下學習的內容。
瀏覽器的支持
由于微軟有自己的圖形發展計劃,一直不支持WebGL,所以IE目前除了安裝插件外,是無法運行WebGL的。其他的主流瀏覽器如Chrome、FireFox、Safari、Opera等,都裝上最新的版本就可以了。除了瀏覽器要裝最新的外,還要保證顯卡的驅動也是最新的。
裝上這些以后,可以打開瀏覽器,輸入下面的網址驗證一下瀏覽器對WebGL的支持情況:http://webglreport.sourceforge.net/。
在正常安裝以上瀏覽器之后還是不能運行WebGL,那你可以強制開啟WebGL支持試一試。開啟方法如下:
Chrome瀏覽器
我們需要為Chrome加入一些啟動參數,以下具體操作步驟以Windows操作系統為例:找到Chrome瀏覽器的快捷方式,右鍵點擊快捷方式,選擇屬性;在目標框內,chrome.exe后面的引號后面,加入以下內容:
點擊確定后關閉Chrome,然后用此快捷方式啟動Chrome瀏覽器。
幾個參數的含義如下:
--enable-webgl的意思是開啟WebGL支持;
--ignore-gpu-blacklist的意思是忽略GPU黑名單,也就是說有一些顯卡GPU因為過于陳舊等原因,不建議運行WebGL,這個參數可以讓瀏覽器忽略這個黑名單,強制運行WebGL;
--allow-file-access-from-files的意思是允許從本地載入資源,如果你不是WebGL的開發者,不需要開發調試WebGL,只是想要看一下WebGL的Demo,那你可以不添加這個參數。
Firefox瀏覽器
Firefox的用戶請在瀏覽器的地址欄輸入“about:config”,回車,然后在過濾器(filter)中搜索“webgl”,將webgl.force-enabled設置為true;將webgl.disabled設置為false;在過濾器(filter)中搜索“security.fileuri.strict_origin_policy”,將security.fileuri.strict_origin_policy設置為false;然后關閉目前開啟的所有Firefox窗口,重新啟動Firefox。
前兩個設置是強制開啟WebGL支持,最后一個security.fileuri.strict_origin_policy的設置是允許從本地載入資源,如果你不是WebGL的開發者,不需要開發調試WebGL,只是想要看一下WebGL的Demo,那你可以不設置此項。
Safari瀏覽器
在菜單中找到“屬性”→“高級”,選中“顯示開發菜單”,然后到“開發”菜單,選中“開啟WebGL”。
開發步驟
下面的代碼只是簡單總結一下相關的概念,它來源于參考中的中文教程,涉及較多的3D方面的知識。感興趣的同學直接可以跳到實用參考中的中文教程中學習,比我這里講解的要詳細和準確的多。湊熱鬧的同學簡單看看就可以了,不用深究每一行代碼的含義。
準備工作
這個不用說了,就是在頁面上添加一個canvas元素作為渲染的容器。例如:
新聞熱點
疑難解答