ThingJS:基於WebGL的3D技術在網頁中的運用

2020-12-05 ThingJS

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

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

3D繪圖標準 - WebGL

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

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

3D圖形引擎庫 - Three.js

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

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

較之於引擎層、接口層,3D框架無疑是更為輕鬆的開發方式!ThingJS不斷簡化3D項目開發流程,不久的將來,3D技術將會在物聯網領域越來越普及。登錄【資源中心】查看demo。

相關焦點

  • 基於WebGL的3D可視化告警系統關鍵技術解析 ThingJS
    #三維可視化# #3D開發#WebGL 3D技術新一代3D框架-ThingJS3D可視化告警系統案例基於ThingJS的通用架構設計WebGL 3D技術WebGL是一種在網頁瀏覽器中渲染3D圖形的 JavaScript API,無需加裝插件,只需編寫網頁代碼即可實現3D圖形的展示。
  • 基於webgl的三維室內空間邏輯建模 three.js ThingJS
    進出層級官方示例>>```javascriptvar app = new THING.App({url: 'https://www.thingjs.com/static/models/storehouse' // 場景地址
  • webgl、Javascript、HTML、ThingJS、cesium都是什麼鬼?
    不是搞技術的朋友念一念就好了,搞技術開發的你得好好念。webgl——是一種3D繪圖協議,這種繪圖技術標準允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0的一個JavaScript綁定,WebGL可以為HTML5。
  • 基於WebGL的虛擬太陽系漫遊技術實現 ThingJS 科幻片
    ThingJS技術分析5. 系統實現步驟3D可視化技術逐漸應用到現代多媒體的課堂教學中。虛擬太陽系是一款天文類的3D可視化應用,它藉助3D在線瀏覽,模擬了一個「真實」的太陽系,以太陽為中心,八大行星逆時針圍繞太陽公轉,還有很多衛星繞轉在行星或者小天體周圍。ThingJS平臺在線提供教學演示連結,在中小學生的地理課堂或網上天文館作為虛擬課程案例使用。
  • 基於WebGL的倉儲糧食溫度告警可視化 ThingJS
    如今,計算機可視化技術畫出相應的三維立體圖像,以便人們得到直觀、有效的結果。面對人們對跨平臺,Web交互等方面的需求越來越強烈以及網際網路技術的飛速發展,網絡三維技術應運而生。網絡三維是一種能實時渲染且具有交互性的網絡技術,突破了地域、平面以及空間的限制,使得人們更便捷地處理相應數據。
  • three.js為何如此奇妙
    WebGL是在瀏覽器中實現三維效果的一套規範,而最初使用WebGL原生的API來寫3D程序是一件非常痛苦的事情,在辛苦的付出下WebGL開源框架出現了,其中three.js就是非常優秀的一個,它掩蓋了很多麻煩的細節,那麼,就讓我們一起來看看,什麼是three.js吧!
  • webgl 迷宮項目開發總結
    整體網頁需要接收2個參數:N和M, 迷宮的大小為N*M。第二部分是交互操作Guide。在迷宮入口設置一個老鼠圖片,然後可以通過左右鍵調整老鼠的朝向,方向鍵上來前進一步。收穫webgl 三個js庫webgl-utils.jswebgl-debug.jscuon-utils.js圖片加載var img = new Image();
  • 八大瘋狂的 HTML5 Canvas 及 WebGL 動畫效果
    在過去的幾年中,我們想要製作卓越的網頁動畫只能使用Flash和Java Applet。而現在,使用腳本語言和渲染器在瀏覽器中實現瘋狂的動畫效果已經成為可能。究其原因,大概有以下幾點: 處理器的性能越來越高。我們的電腦已經有足夠的強大的能力去渲染最為複雜的動畫效果。 現在瀏覽器和web技術的不斷發展。
  • WebGL 3D程序開發
    WebGL全稱Web Graphics Library,是一項新的Web 3D圖形標準,一種3D繪圖協議,也是HTML5大家庭中的一員,一項用來在網頁上繪製和渲染複雜三維圖形(3D圖形),並允許用戶與之交互的技術。
  • 20個使用WebGL和Three.js實現的網頁場景
    20個使用WebGL和Three.js實現的網頁場景 也許你們可能已經聽說過關於Three.js庫,Three.js是一個WebGL第三方庫,它能夠讓瀏覽器更加輕鬆的使用和實現3D效果,就打個
  • 基於WebGL的智慧校園可視化全景漫遊技術實踐 ThingJS
    新華三集團與優鍩ThingJS達成技術戰略合作,利用ThingJS平臺構建3D智慧校園,創建一個足不出戶就可以了解校園地理信息與文化背景的虛擬平臺。1. 總體設計與規劃智慧校園系統的架構設計分為基礎層、數據層、服務層、應用層和表示層五個層次。
  • 與WebGL一起遇見網頁的未來
    BabylonJS 上手非常簡單,特別是如果你熟悉3D渲染的技術和軟體。BabylonJS甚至可以導入 Blender中創建的場景(需要安裝一個免費的插件)。HTML5中令人興奮的一點就是可以創建那些曾經只有本地應用才有的豐富功能。隨著HTML標準新功能的添加,現在已經可以創建比休閒遊戲更加優秀的遊戲體驗。並且伴隨Internet Explorer的不斷增強,諸如硬體加速和觸摸優先的設計,讓其成為運行此類網頁遊戲的理想瀏覽器。
  • 如何在Internet Explorer 11中開啟WebGL
    目前IE 11對WebGL的支持度仍然非常有限,你可以把一下代碼另存為HTML文件,然後在IE 11中打開,你會發現網頁中出現一片藍色的區域,而這正代表著網頁成功獲得了名為「experimental-webgl」的3D繪製上下文——Internet Explorer 11終於支持WebGL了!
  • Threejs開發3D地圖實踐總結
    【技術沙龍】AI開發者實戰營-7分鐘打造1個定製技能。7月22號,我們等你一起! 前段時間連續上了一個月班,加班加點完成了一個3D攻堅項目。也算是由傳統web轉型到webgl圖形學開發中,坑不少,做了一下總結分享。
  • 藉助WebGL三維可視化技術檢索3D動態圖像
    大數據可視化平臺是通過三維表現技術來表示複雜的信息,實現對海量數據的立體呈現。可視化技術藉助人腦的視覺思維能力,通過挖掘數據之間重要的關聯關係將若干關聯性的可視化數據進行匯總處理,揭示數據中隱含的規律和發展趨勢,從而提高數據的使用效率。
  • WebGL 入門 – WebGL框架
    但是,也有很多人基於WebGL開發出了各種開源框架,現在,我們就來看看目前有哪些框架能夠為我們所用。Three.js Three.js 是一個開源的JavaScript 3D引擎,該項目的目標是創建一個低複雜、輕量級的3D庫,用最簡單、直觀的方式封裝WebGL中的常用方法。
  • 使用reveal.js製作精美的網頁版PPT
    但苦於mac上運行PPT那感人的流暢度, 成功的激起了筆者的強迫症, 所以索性想辦法通過技術的手段來做個網頁版PPT, 這個時候筆者發現了reveal.js: 一個使用 HTML 語言製作演示文稿的 Web 框架,支持插入多種格式的內容,並以類似 PPT 的形式呈現. 花了15分鐘系統的調研了一下, 覺得基本滿足技術分享類PPT的要求, 所以決定採用該方案來實現我的網頁版PPT.
  • WebGL 1.0標準規範正式公布 3D網際網路開啟
    GDC 2011遊戲開發者大會上,Khronos Group組織今天終於公布了WebGL 1.0標準規範的最終正式版,在HTML5標準網絡瀏覽器中不需要額外插件就能實現3D圖形硬體加速。
  • 教你製作NASA樣本實驗室3D渲染圖!3D ThingJS
    美國宇航局(NASA)詹森航天中心向公眾發布了目前正在建設中的實驗室的渲染圖,該實驗室將用於研究小行星樣本和其他 「宇宙之謎」。按照計劃,Bennu小行星樣本將在2023年返回地球,到那時,詹森航天中心計劃已經完成了實驗室的建設,保證「研究材料到分子水平而不受損害」。
  • 基於WebGL的三維數據可視化大屏開發流 ThingJS
    三維數據大屏可視化系統包含多源數據連接、生成二維/三維視圖、構建可視化大屏、大屏功能應用等一體化服務,基於多年可視化項目經驗,ThingJS平臺得出從數據源上傳到可視化大屏應用的完整流程,供參考。ThingJS可視化組件支持模型導入、場景搭建和可視化增效,基於CityBuilder+ThingDepot+3D源碼二次開發輕鬆實現:1. 城市級場景搭建工具CityBuilder操作簡單,利用可視化組件設置參數和交互動畫;2. 3D場景搭建完成後,在線接入ThingJS開發平臺進行代碼調試;3.