張杰,李紅斌,吳正源,石志偉,張暢維
(武漢科技大學計算機科學與技術學院,武漢430065)
鋼鐵工業是國民經濟的基礎產業。一般情況下想要很好地了解鋼鐵的生產工藝流程,需要去工廠實地參觀,但是現場惡劣環境容易造成危險。
隨著計算機技術的迅猛發展,計算機模擬技術普遍應用于制造業中,如何將計算機模擬實驗運用于工程教學也受到廣大學者的重視。目前雖然有一系列的教學實驗平臺去解決這方面的問題,但是基于虛擬現實的熱軋生產流程互動平臺還不多,并且其中大多是單機運行,需要額外安裝整個軟件,存在過程繁瑣、交互操作較少等問題。
所以我們提出了利用基于Unity3D、3dsMax等軟件實現鋼鐵行業中熱軋過程的Web端虛擬仿真。本文針對熱軋軋制現場,提出了一種基于計算機仿真技術的熱軋模擬平臺方案,實現了三維虛擬現實仿真,建立了融合計算機仿真技術的模擬培訓系統,以解決傳統仿真平帶的局限性問題。通過網頁遠程直接瀏覽整個虛擬仿真工藝過程,不僅易于操作、具有良好的交互性,并且可以降低硬件投資,也不存在現場惡劣環境所帶來的危險性,具有理論培訓、實驗教學等功能。
開發環境:Unity3D、3dsMax和Substance Painter
編程語言:C#
模型貼圖制作工具:3dsMax、Substance Painter
Web端制作工具:Unity3D
在3dsMax中利用多邊形建模制作出熱軋過程相關的機械模型。
熱軋過程相關的機械模型在3dsMax中的仿真效果如圖1所示。
使用3dsMax的動畫系統,對需要運轉的機器部件等物體進行了動畫的制作:
(1)設置物體運動的關鍵幀,使物體具有基本的動畫變換狀態。
(2)調整動畫曲線,使動畫更加平滑穩定。

圖1

圖2
由于整個熱軋過程比較長,所以采用了分段制作動畫的方式,便于精確地調整每個工作段的動畫關鍵幀。
最后在Substance Painter中制作出基于物理的渲染(Physically Based Rendering)的逼真材質。利用Sub?stance Painter可以在三維模型上直接繪制紋理的特點,解決了UV接縫造成的貼圖不協調問題。
將模型動畫導入Unity3D并寫入腳本,利用了關鍵幀提取和關鍵幀插值,使用四元數控制用戶視角相機的移動使相機的平移旋轉更加平滑,解決了視角生硬的問題,四元數q表示旋轉運動可以等價繞軸向K旋轉角度φ,旋轉矩陣R與q的關系可以表示為:

QuaterlionLerp為插值函數,其中ω∈[0,1],代表了插值矢量t末端在弦q0-q1上的位置:

結合使用Occlusion Culling技術針對熱軋場景進行渲染優化,通過調整 Smallest Occluder、Smallest Hole、Backface Threshold三項參數,減少了40%Draw call和30%GPUmemory占用后期使用Bake Global Il?lumination,烘焙出熱軋場景的光照貼圖以及環境光、環境反射,并通過C#腳本動態加載貼圖信息,減少了渲染期間的光照開銷,大幅度降低了CPU占用率。

圖3
SH是定義在二維球面上的,一個定義在二維球面s上的函數可以用SH基函數以及系數近似表示,若用l和m表示SH的兩個參數,f(s)表示定義在球面上的函數,ylm表示基函數,則f(s)在SH上的投影系數可以表示為:

f(s)則可以近似表示為:

考慮物體表面某一點x,其法線方向為n,則該點從ω0方向反射出的光P(x,ω0)可表示為:

熱軋冷卻部分的粒子效果由Shuriken Particle Sys?tem實現,通過控制粒子發射周期、預熱系統、噪音等屬性控制畫面效果。
在導出到Web端之前使用Post Processing Stack調整整體畫面的質量,加入了AmbientOcclusion、User Lut、Vignette、ColorGrading 等效果。
Unity3D自帶的Mono VM在各個平臺移植、維護非常耗時,有時甚至不可能完成。Mono的跨平臺是通過Mono VM實現的,有多少平臺,就要實現多少個VM,Mono VM肯定是不能滿足需求的。所以針對不同的新平臺需要使用IL2CPP,同時解決VM里面的bug,耗時耗力。例如WebGL這種基于瀏覽器的平臺。要WebGL支持Mono VM幾乎是不可能的,必須利用IL2CPP技術實現熱軋虛擬仿真的跨平臺。
網頁中包含了 JavaScript、HTML5,Three.js是其中的核心組件,WebGL接口多且復雜,在瀏覽器中直接調用硬件加速進行圖形渲染,創建三維場景非常繁瑣。所以,通過IL2CPP可以避開這些問題。

圖4
圖5中有對流水線各個部位的展示和介紹,并且還有教學測試系統,通過使用教學測試系統,可以對用戶知識進行檢測,在測試的最后會給出用戶答案和參考答案的詳細信息,整個測試系統是基于Unity3D引擎進行開發的,通過C#語言對測試系統進行邏輯控制,導入3dsMax中制作好的流水線動畫。另外通過對模型材質的動態替換實現物體加熱效果。冷卻裝置用Unity3D中的Particle System更改參數實現。

圖5
相機控制使用了Vextor3.Lerp插值計算空間位置,在使用過程中觀察場景更方便。
Lerp插值函數基本原理:


通過在Update函數中每幀進行攝像機位置到目標位置的Lerp插值,可以起到攝像機平滑衰減速度逐漸到達目標位置的效果。
攝像機當前位置與目標位置的距離表達式為:

其中targetPos代表目標位置,cameraPosn代表攝像機當前位置,distance0代表攝像機初始位置與目標位置的距離,f代表插值系數,n代表插值次數。

圖6
通過調整Camera遠剪裁面,一定程度上減少了Overdraw。
動畫系統、相機控制的部分核心代碼流程:
在Update函數中逐幀調用代碼段,通過動畫播放時間控制提問過程是否執行,并且設置兩個計時器,分別控制平臺運行時間和測試時間,并計入最終報告。
流程圖如圖7所示:

圖7
相機上層代碼實現:通過四元數插值計算出下一幀的相機位置及角度,平滑過渡,并且加入了運動模糊Motion blur。
本文利用相關軟件實現了熱軋虛擬仿真實驗平臺的研究與開發,在Web端進行仿真交互、學習。結果表明,Web端仿真在一定程度上解決了傳統虛擬仿真平臺安裝過程繁瑣的弊端,能夠做到在線學習。充分發揮了虛擬仿真的優勢:既能引導學生自主學習和增強學生的參與感,又能與線上教學系統相結合。在一定程度上解決了學生只停留在書本知識,無法參與真實實驗獲得更多細節觀察機會的問題。使人們享受到信息化以及計算機模擬技術給教育帶來的時代紅利。