WebGL是什麼呢?
WebGL其實就是JavaScript的API.
它允許了我們直接在瀏覽器上展示實時交互的3D圖形。
WebGL是一個被Khronos小組開發的web標準,其中
Opera與Google(Chrome)、Mozilla(Firefox)、Apple(Safari)和其他3D圖形開發人員一起積極參與。
webgl作爲html元素的特定上下文運行,這使您可以訪問javascript中的硬件加速3d渲染。
因爲它運行在元素中,webgl還與所有dom接口完全集成。該api基於opengl es 2.0,這意味着可以在許多不同的設備上運行webgl,如臺式計算機、移動電話和電視。您可以在KHRONOS站點查看WebGL規範。
如何運行WebGL?
- Opera12.00 或者更高版本
- Chrome 9或者更高版本,在linux,Mac和windows
- Firefox4或者更高的版本
- Safari5.1或者更高的版本
此外好的顯卡可能回提高WebGl的性能。
WebGL用來幹什麼?
![Alt text][https://dev.opera.com/articles/introduction-to-webgl-part-1/webgl.jpg]
- 交互式音樂視頻
- 遊戲
- 數據可視化
- 藝術
- 3D設計環境
- 空間3D建模
- 繪製數據函數
- 創建物理模擬
WebGL是怎麼工作的?
webglbii傳統的web技術複雜一點,因爲它是直接使用顯卡而設計的。
所以,這是比較底層的。這樣就使得了他可以快速進行復雜的三維渲染,
包括大量計算。
你不需要完全理解webgl的內部工作原理。有幾個webgl庫可以用於減少其的複雜性。
然而你想用這些庫中不包含的特性的時候,瞭解webgl其實更有必要。或者你想更深入瞭解
掌握這門技術,知道這些庫咋實現的。這時候就有必要了解了解webgl內部工作原理了。
在webgl中編程時,通常要渲染某種場景。這通常包括多個後續繪製作業或“調用”,每個都是通過一個稱爲渲染管線的過程在Gpu中執行的。
在webgl中,與大多數實時3d圖形一樣,三角形是繪製模型的基本元素。因此,在webgl中繪圖的過程涉及到使用javascript生成指定這些三角形將在何處以及如何創建,以及它們的外觀(顏色、陰影、紋理等)的信息。然後,這些信息被輸入gpu,gpu對其進行處理,並返回場景的視圖。接下來我們將更詳細地瞭解最後一點是如何發生的。
webGL渲染管線,此處略去,後續詳解
我們怎麼開始使用WebGL
首先要做的是獲得一個支持webgl的瀏覽器。您可以使用您喜愛的javascript開發環境對webgl進行編碼。
我們這裏使用vscode的是vscode
如果要是做項目的話,我建議使用webgl的庫。
因爲直接調用webgl API很辛苦,它很底層。
設計webgl的人爲什麼這麼設計呢,這是爲了保持它的靈活性,通用性。
他們想的是別人的庫會增加便利性,加速簡化開發
大多數庫都提供了現成的模型、頂點着色器和片段着色器的選擇,它們可以極大地減少需要編寫的代碼量。如果你仍然不相信,可以看看一個月球三維模型的例子代碼-有一個庫,沒有一個庫。即使您只是簡單地看一下,代碼的長度和複雜度的差異也是顯而易見的,這是使用庫的一個很好的理由。
有許多webgl庫。大多數人所做的是在WebGL的基礎上創建對3D環境直觀的元素,如場景、相機、光源、環境光、現成的形狀、材質、紋理和效果(如霧和浮動粒子)。這些元素的概念在各個庫中幾乎保持不變。但是,它們的使用方式取決於庫的體系結構。因爲webgl可以是交互式的,所以大多數庫也提供了處理事件的簡單方法。最後,大多數庫還提供了一些頂點和片段着色器。
選擇一個WebGL的庫
1.Three.js (Github)是一個輕量級的3d引擎,複雜度非常低——這是一個很好的方法。引擎可以使用、
2.PhiloGL (Github)
3.GLGE (Github)
4.3D (Github)