Three.js 是 WebGL 的高階封裝,讓開發者能夠專注在開發應用,而不用浪費太多心思在操作 WebGL。
OpenGL 是一個用來和顯示卡溝通的 API 規範。
OpenGL ES (OpenGL for Embedded Systems) 則是 OpenGL 的子集。
WebGL 則是瀏覽器實作了 OpenGL ES,並透過 Javascript 供網頁使用的 API。
也就是 WebGL 是一個相對底層的 API,從這裡可以看到寫了一大串東西只得到一個綠色的正方形。
Three.js 的使用方式整體而言大致如下:
接著
最後
function animate() {
renderer.render( scene, camera );
requestAnimationFrame( animate );
}
比起聽我描述,自己體驗比較有感覺,這些都是用 Three.js 實現的效果。
最後順便提一下,Babylon.js 是另外一個性質與 Three.js 相近的 Javascript 3D 函式庫,但是它的定位比起 Three.js 是單純的 3D 繪圖函式庫,更傾向於成為一個 3D 遊戲引擎,有支援更多諸如物理運算之類的功能。