開發與維運

基於WebGL的虛擬太陽系漫遊技術實現 ThingJS 科幻片

三維可視化##3D開發

虛擬功能需求

  1. 太陽系運行需求
  2. 3D模型呈現
  3. ThingJS技術分析
  4. 系統實現步驟
    在這裡插入圖片描述

3D可視化技術逐漸應用到現代多媒體的課堂教學中。
虛擬太陽系是一款天文類的3D可視化應用,它藉助3D在線瀏覽,模擬了一個“真實”的太陽系,以太陽為中心,八大行星逆時針圍繞太陽公轉,還有很多衛星繞轉在行星或者小天體周圍。ThingJS平臺在線提供教學演示鏈接,在中小學生的地理課堂或網上天文館作為虛擬課程案例使用。
以下是具體需求分析。

一、功能需求

B/S架構為主,通過瀏覽器在線訪問,無需安裝任何插件
可觀察太陽系中太陽和各行星的3D模型及其運行狀況
各行星運行軌道可視化
簡單操作鍵盤鼠標可實現自由漫遊
點擊太陽或行星時顯示該天體的常識信息
隨時控制太陽系運行速度
準確度高,基於各項真實太陽系數據及運行製作
運行基本無卡頓,對用戶輸入實時響應

二、運行需求

要求跨平臺、跨終端在線展示,兼容PC電腦、手機、平板電腦等設備。
ThingJS 的 3D 可視化應用是 B/S 架構的,3D 場景是運行在客戶端的瀏覽器中。3D 場景渲染展示對客戶端設備要求較高,特別是顯卡,一般必須是獨立顯卡。推薦的客戶端配置如下:
(1)客戶端
系統:Windows 7 及以上
CPU:雙核 CPU2.8GHz及以上
內存:8G 及以上
顯卡:最低 GTX650,推薦 GTX960 及以上,顯存 2G 及以上
硬盤:300GB 及以上
ThingJS 若是離線部署,需要部署到服務器端,ThingJS 對服務器端的要求並不高。
(2)服務器端
系統:Windows Server 2003 及以上
CPU:雙核 CPU2.8GHz 及以上
內存:8G 及以上
硬盤:500GB及以上
軟件環境:JDK 1.6 及以上

三、模型呈現

經分析,由於虛擬太陽系的運行功能集中在瀏覽器端,服務器端只需滿足HTTP的靜態響應即可,無需動態技術。瀏覽器端功能可分為模型展示、場景漫遊、運行控制三個部分。
在這裡插入圖片描述

(1)基於webGL技術,ThingJS可以將虛擬太陽系各星體3D模型和腳本運行情況相結合,最終呈現虛擬太陽系的3D可視化效果。
(2)場景漫遊是系統藉助3D技術中的攝像機控制原理,通過控制鼠標和鍵盤上的預定按鍵,以及移動攝像機的位置來實現,同時對應位置控制和視向控制的場景漫遊技術。
位置控制。可以控制虛擬漫遊者所在點的位置,在技術上就是攝像機的位置由鍵盤控制,有上下左右四個方向,系統預定WSAD為移動鍵:W:前進、S:後退、A:左移、D:右移。同時增加鼠標點擊操作,即可以通過鼠標的左鍵進行前進,右鍵進行後退。
視向控制。可以控制用戶看向任意哪個方向,技術上是攝像機的視向(lookAt),由鼠標的移動控制。通過第一人稱或第三人稱視角進行切換,給用戶較強的沉浸感。由於視向容易偏離畫布中心,設定空格鍵為鎖定鍵,完整的一次空格鍵點擊作為視向控制的開關。
(3)運行控制是用戶通過界面上的控制面板,對虛擬太陽系的運行速度進行控制。真實的太陽系下,公轉週期最短的水星,繞太陽一週需要88天,不便於用戶觀察,運行控制提供1百萬倍於真實運行速度的滑桿操縱,3D場景加入動畫、特效,便於用戶理解和操作。

四、ThingJS技術分析

ThingJS平臺為了Web開發而生,旨在加速3D開發,它與Web瀏覽器深度整合。ThingJS的所有接口功能都要通過 Javascript調用。當初,WebGL的誕生解決了在瀏覽器內無插件呈現3D圖像的難題;ThingJS則加速了3D專業開發效率,利用可視化開發組件可完成場景搭建、腳本開發、數據對接和項目部署,極大地促進3D可視化技術在應用端普及化。
比起Three.js的開源技術探索者風格,ThingJS是更為頂層的封裝庫,ThingJS繼承了webgl的技術優點,並且提供了較為全面的物聯網開發邏輯(如地球、城市、建築、設備等等)。
在這裡插入圖片描述

ThingJS開發特點如下:
掩蓋了渲染細節。將 webGL原生API的細節抽象化,3D場景拆解為網格、材質和光源。
面向對象。開發者可以使用頂層的 Javascript對象進行編程。
功能豐富。包含了許多實用的內置對象,可以方便地應用於3D動畫、高分辨率模型和一些特殊的視覺效果製作。
支持交互。提供了拾取和選擇功能,常用鼠標完成一些操作,如變色。
提供數學庫。作為數學類輔助功能進行座標相加等三維運算。
內置文件格式支持。支持3D插件下載3D建模軟件如3DMAS導出文本格式的文件,以及CampusBuilder平臺的場景文件格式。
擴展性強。可以使用 ThingJS封裝自定義的數據結構,進行定製化3D開發。

五、系統實現步驟

ThingJS提供CampusBuider軟件搭建3D場景,並在ThingJS平臺調用3D源碼進行腳本開發,減少了代碼開發工作量。ThingJS從管理建模的角度出發,讓開發和設計達成良好的協作。況且建模軟件如3DSMAX的製作成本過高,並不適合小團隊的開發思路。
ThingJS系統工作流程如下圖。
在這裡插入圖片描述

太陽是恆星,其他的行星如金星、木星、水星、火星等,每個行星都有自己的魅力。
行星模型的搭建過程總結如下。
在這裡插入圖片描述

在太陽系外的背景星空中有著遙遠、眾多的恆星,反映出來是星星點點的光芒,可以通過粒子系統來實現。ThingJS定義了點在空間中的位置和材質,材質定義了顏色、所繪製單一顏色和尺寸的點。
在這裡插入圖片描述

基於瀏覽器端的3D仿真系統在商業、教育等領域將會有廣闊的應用前景,ThingJS可視化平臺支持智慧教育可視化系統應用發展,利用數字孿生技術將更多培訓內容生成虛擬場景,用戶理解更加直觀、高效。
在這裡插入圖片描述

Leave a Reply

Your email address will not be published. Required fields are marked *