劉立峰,李 夢,黃 勇
(中國電建集團西北勘測設計研究院有限公司,陜西 西安 710065)
在工程成果匯報展示、項目設計方案評審過程中,為了進一步的了解工程項目信息[1],需要對項目總體布置、細部模型構件屬性信息、關聯文檔瀏覽查看以及對模型細部結構進行剖切、測量、標注等手段來實現,有助于項目參建方對設計方案的深入理解,為用戶提供優越的視覺效果和體驗[2-3]。當前傳統的做法是通過相關視頻動畫軟件制作相應場景的漫游視頻配合相應的圖片場景來實現交互式漫游或者基于VR/AR技術的虛擬現實應用[4-5],其中漫游路徑、模型構件屬性、關聯文檔、剖切、測量、標注等數據信息相對固定,漫游路徑、模型構件屬性信息、關聯文檔的關注點稍有改變均需要重新制作漫游視頻動畫;另外一種傳統做法是只能單純的漫游,漫游過程中不能查看模型相關信息,如果查看模型相關信息,漫游會中斷,繼續漫游需要再次調整相關場景才能達到想要展示的預期效果。漫游的交互性和靈活性相對較差,為此,本文探索出了一種基于三維輕量化模型自定義路徑漫游方式,既可以自定義漫游路徑,又可以在漫游中途暫停對模型進行相關操作的方法,還可以在自定義漫游場景增加新的漫游場景內容,使得漫游方式更加靈活,人機交互性更加友好,充分發揮三維輕量化模型在工程應用中的延伸價值[6]。本文將以某水電工程主廠房至開關站自定義路徑漫游制作為例詳細介紹具體的實現過程。
制作漫游方法設計的邏輯鏈條較長,且環環相扣,其邏輯關系見圖1。

制作漫游方法執行以下主要步驟:
步驟1:將需要瀏覽查看的相關模型構件含屬性信息導入,通過編碼映射建立模型構件與關聯文檔之間的關聯關系。
步驟2:根據預想瀏覽查看相關三維模型的漫游路徑,在三維模型場景中預定義一系列視角作為漫游點,根據定義的漫游點的先后順序生成一條多段線作為漫游路徑,也可以在三維設計軟件中制作好漫游路徑,直接導入到路徑漫游中。
步驟3:設定漫游時長,根據生成多段線總長度與設定的漫游時長計算漫游平均速度,沿著多段線根據平均速度移動攝像機進行漫游。
步驟4:漫游播放時以一個移動的小飛機沿著漫游路徑線進行漫游,漫游過程中可以隨時暫停,對模型進行放大、縮小、測量、批注、剖切、查看模型構件屬性及關聯文檔等相關操作,對模型完成相關操作后,繼續漫游時,自動回到暫停前的模型視角繼續漫游,直到預設的漫游時間和漫游路徑走完,從而瀏覽查看三維模型相關信息。
筆者在React框架下,采用WebGL技術在HTML5頁面上開發了基于輕量化模型的直線剖切方法,建成了Web端系統平臺。進入Web端系統的輕量化模型數據是經過模型輕量化轉換工具處理后的三維設計模型數據信息,開發的模型輕量化轉換工具,將多格式三維設計軟件設計成果數據轉換為統一的輕量化.b3d數據格式,并且可以將模型的幾何型體數據、非幾何數據信息、模型組織結構等信息一并轉換到輕量化模型中,支持當前主流的三維設計軟件平臺,包括達索的CATIA、歐特克的Revit、本特利的MicroStation,AVEVA的PDMS、西門子的UG等三維設計成果模型輕量化轉換,模型輕量化轉換工具見圖2。模型輕量化轉換工具實現高壓縮比,最高壓縮比達到81∶1,而模型數據展示應用效果不受影響。某水電項目各專業三維設計模型輕量化前后對比,見表1。


表1 某水電項目模型輕量化對比表
利用模型輕量化工具將三維設計模型轉換為輕量化格式,上傳到開發的Web端系統,在Web端系統中可以看到模型組織結構以及模型屬性信息,建立模型與文檔之間的關聯關系,只要在模型結構樹上選擇或者在模型構件上選擇,均能瀏覽該模型構件的屬性信息以及與該模型構件關聯的文檔信息,實現數—模之間雙向查詢,并且支持文檔在線打開瀏覽功能,有助于進一步了解該部位模型相關的數據信息,構建完成的漫游場景見圖3。

本文以某水電工程從主廠房經母線洞、主變洞、出線豎井,最后到開關站為例,詳細介紹了漫游制作步驟。
1)在項目模型管理界面中選擇加載漫游場景模型。
用戶根據漫游場景制作需要通過Web端系統加載所需三維模型場景,見圖4。

2)制作漫游路徑。
點擊路徑漫游命令按鈕。在路徑漫游對話框中,點擊“新增路徑漫游”填寫路徑漫游名稱(主廠房—母線洞—主變洞—出線豎井—開關站);設置漫游時間(140 s),即本路徑漫游播放的總時間長度;漫游排序(3),即本路徑漫游在當前漫游列表中的排序。路徑漫游將添加到路徑漫游列表中,點擊漫游路徑名稱使其展開,在三維模型場景中調整好相應的漫游視角,點擊“新增漫游點”按鈕添加漫游點到路徑漫游序列中,可對漫游點名稱和漫游點排序進行編輯。按照預設的路徑漫游線路,利用新增漫游點命令依次新增漫游點,直到路徑漫游終點為止,也可以通過導入漫游路徑的方式將漫游路徑導入軟件平臺,新建路徑漫游見圖5。

3)漫游點編輯。
鼠標移動到需要編輯的漫游點上,可以將漫游點上移、下移、編輯、刪除,為了達到漫游預期效果,需要對漫游點進行相關編輯,見圖6。

4)插入漫游點。
根據漫游場景制作需要,在某個漫游點后插入新的漫游點時,選擇需要在其后插入漫游點的漫游點,使其處于選中狀態,然后在漫游場景中調整好相應的漫游視角,點擊“新增漫游點”命令按鈕,在新增漫游點對話框中,勾選“插入到選中漫游點之后”,將在漫游點后插入新生成的漫游點,見圖7。

5)漫游場景更新。
在已制作完成的路徑漫游場景,需要變更三維模型時,點擊加載模型按鈕,選擇需要更新后的模型場景,進行加載漫游場景模型,選擇對應的路徑漫游名稱,點擊“編輯”命令,然后勾選“更新漫游模型”,點擊確定,即可將漫游場景模型進行更新,之前制作的漫游路徑不會改變,在漫游路徑上會出現更新后的三維場景模型,如圖8所示。
1)進入Web端系統,點擊路徑漫游命令按鈕,彈出路徑漫游對話框,在對話框中選擇需要播放的路徑漫游名稱后點擊漫游播放按鈕,系統開始自動加載該路徑漫游制作時的三維模型場景,并自動播放路徑漫游,在漫游路徑上將會出現一個小飛行器進行飛行,在屏幕上方顯示當前漫游播放到的漫游點,屏幕下方顯示路徑漫游已播放進度百分比,見圖9,方便用戶隨時掌握當前漫游點位置及狀態。

2)在漫游播放進度百分比后點擊暫停按鈕,可以暫停播放路徑漫游,路徑漫游對話框自動彈出,開始對模型進行屬性查看、文檔關聯查看、剖切、測量等相關操作,進一步了解模型細部結構及模型構件關聯信息,及時獲取相關數據信息,繼續漫游時,在漫游播放進度百分比后點擊播放按鈕,系統自動回到暫停漫游時的視角繼續漫游,點擊停止按鈕,結束路徑漫游,暫停漫游后對模型的相關操作見圖10。
基于本文提出的一種利于制作三維漫游的方法,并且通過軟件開發利用三維輕量化模型,基于WebGL圖形展示技術在Web端實現了自定義路徑漫游功能,用戶通過自定義添加一系列漫游點來創建漫游路徑,也可導入漫游路徑,在播放路徑漫游時可以隨時暫停對模型進行剖切、測量、批注、查看模型構件屬性及關聯文檔等相關操作,再次繼續漫游時可直接回到對模型進行相關操作之前的漫游視角上,繼續沿著尚未走完的路徑。有效提升漫游制作的便捷性、靈活性以及漫游中模型操作的交互性,實現了三維漫游制作的精細化、高效化、靈活化,增強了用戶漫游體驗感的同時,支持用戶對漫游場景模型操作的更多模式,進一步豐富了漫游交互體驗性,該方法具有良好的推廣應用前景。