WebGL是在瀏覽器中實現三維效果的一套規範,而最初使用WebGL原生的API來寫3D程序是一件非常痛苦的事情,在辛苦的付出下WebGL開源框架出現了,其中three.js就是非常優秀的一個,它掩蓋了很多麻煩的細節,那麼,就讓我們一起來看看,什麼是three.js吧!
threejs可以將它理解成three + js,three表示3D的意思,js表示javascript的意思。那麼合起來,three.js就是使用javascript 來寫3D程序的意思。Three.js是一個偉大的開源WebGL庫,WebGL允許JavaScript操作GPU,在瀏覽器端實現真正意義的3D。
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。也是世界上最流行的程式語言,這門語言可用於 HTML 和 web,更可廣泛用於伺服器、PC、筆記本電腦、平板電腦和智慧型手機等設備。Javascript是運行在網頁端的腳本語言,那麼毫無疑問Three.js也是運行在瀏覽器上的。
如果我們需要使用Threejs來繪圖,只需要創建一個最小繪圖環境即可。Threejs在底層其實還是調用html5中的canvas api來實現繪圖的。但和我們一般繪製2D圖像不同,Threejs在底層使用的是canvas的webgl context來實現3D繪圖。webgl context本身更多是直接對gpu的操作,用起來相當不直觀,為此Threejs在頂層對3D繪圖所需的各種元素(例如場景,攝影機,燈光,幾何圖像,材質等)進行了封裝
threejs三大組件
這三大組件分別是相機(Camera)、渲染器(Renderer)和場景(Scene),這三個組件是創建3D圖形的必備組件。其中:
場景用來容納圖形元素,包含所有需要顯示的3D物體以及其他相關元素的容器。場景相當於宇宙,而圖形元素就是星星,圖形元素只有添加到場景中,其坐標、大小等才有意義。攝影機的作用是決定3D場景如何投影到2D畫布之上,定義可視域,確定哪些圖形元素是可見的。渲染器則負責用如何渲染出圖像,是使用WegGL還是Canvas,用於最後繪製的畫筆
下方
運營:weikashouji