天天看點

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

Three.js、ThingJS這些引擎庫可以加載3D制作軟體的模型,大幅度提高了制作效率,改變WebGL開發困難的局面,讓Web開發者享受便捷的3D開發服務。三者的難度對比如下:

ThingJS(架構)< Three.js(引擎)< WebGL(接口)

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

3D繪圖示準 - WebGL

WebGL是一種3D繪圖示準,通過結合Javascript和OpenGL ES 2.0,可以為HTML5的Canvas标簽提供硬體3D加速渲染,這樣Web開發人員可以借助系統顯示卡在浏覽器裡更流暢地展示3D場景和模型。利用WebGL進行繪圖的流程如下所示:

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

由此得知,原生 WebGL進行3D網頁制作,其過程非常繁瑣,開發難度很多,所使用的開發概念非常底層,嚴重影響WebGL的開發效率。是以,很多3D圖形引擎庫應運而生,直接使用Javascript腳本語言開發,将WebGL進行不同程度的封裝,例如“three js“、“scenceJS”、“Oak3d”和“simjs”等,這些引擎庫能夠讓使用者更加友善地進行3D圖形繪制和動畫的制作。

3D圖形引擎庫 - Three.js

以Three.js為例,繪圖的流程如下所示:

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

threejs是基于WebGL的 3D Javascript庫,它封裝了場景、相機、幾何、3D模型加載器、燈光、材質、着色器、動畫、粒子、數學工具等。這樣的封裝讓使用者能夠更加直覺的在網頁中制作3D圖形和動畫。就像是搭樂高一樣輕松。

在 threejs中場景、相機和渲染器是3D圖形繪制的基礎:場景是所有對象放置和展示的平台;相機決定圖形展示的角度;渲染器決定了渲染的結果應該畫在頁面的什麼元素上面,并且以怎樣的方式來繪制。以下代碼給出了圖形繪制的具體過程,如果3D模型很複雜,可以在專門的3D繪圖軟體中進行繪制,然後由 three. js加載圖形:

var scene =new THREE.Scene();
//建立相機 
var camera =new THREE. PerspectiveCamera(75, window.inner Width/window. innerHeight,0.1,1000);
//建立渲染器 
var renderer= new THREE. WebGLRenderer(); renderer.setSize( window.innerWidth, window. innerHeight ) ;
document. body.appendChild( renderer. domElement);
//繪制立方體 
var geometry =new THREE. BoxGeometry( 1, 1, 1);
//給立方體貼材質 
var material =new THREE. MeshBasicMaterial ({color: 0x00ff00} );
var cube=new THREE. Mesh( geometry, material);
//将立方體放在場景中 
scene.add(cube); 
camera.position.z=5;
//渲染 
renderer. render( scene, camera)           

基于WebGL的3D架構 - ThingJS

ThingJS是新興的3D架構,2018年誕生,是針對物聯網可視化領域的JavaScript 3D Library,旨在簡化3D應用開發效率,它封裝了3D源碼,提供完整的物聯網開發概念(建築、樓層、房間、物、标牌、線路、區域、熱圖、事件、查詢、地圖、全景圖),利用可視化開發元件線上開發(CampusBuilder【

用戶端下載下傳

】+

ThingJS

),繪圖的流程如下所示:

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

ThingJS封裝了對模型互動事件的API、對模型的操作及層次關系,一個個具體的模型抽象把初學者從複雜的3D概念中解放出來。例如常見的智慧建築,ThingJS 平台使用Javascript調用封裝好的概念進行開發,比three.js更為頂層,不用關心渲染、mesh、光線等複雜概念,具備一年的javascript基礎即可開發3D項目。

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

較之于引擎層、接口層,3D架構無疑是更為輕松的開發方式!ThingJS不斷簡化3D項目開發流程,不久的将來,3D技術将會在物聯網領域越來越普及。登入【

資源中心

】檢視demo。

ThingJS:基于WebGL的3D技術在網頁中的運用3D繪圖示準 - WebGL3D圖形引擎庫 - Three.js基于WebGL的3D架構 - ThingJS

繼續閱讀