蘇學軍, 張紀磊, 邢紅宏, 劉存海, 劉芬芬
(海軍航空工程學院 基礎實驗部, 山東 煙臺 264001)
虛擬仿真技術探索與實踐
分光計三維仿真實驗設計
蘇學軍, 張紀磊, 邢紅宏, 劉存海, 劉芬芬
(海軍航空工程學院 基礎實驗部, 山東 煙臺 264001)
以分光計實驗為例,介紹了三維仿真技術在物理實驗教學中的應用和三維虛擬實驗軟件制作過程,內容涉及3ds Max建模的基本步驟和注意事項、Virtools中實現視角變換、物理現象、儀器調節等虛擬交互的設計思路和常用Building Blocks,以及平移、旋轉、縮放、碰撞檢測、數字顯示等物理實驗中常見交互形式的實現方法,并對虛擬環境下實驗儀器的改造進行了嘗試。
三維仿真實驗; 分光計; 3ds Max; Virtools
三維仿真技術是一種可以生成逼真的虛擬環境、具有三維交互功能的高級交互式計算機模擬形式[1]。早期三維仿真的制作軟件價格昂貴,對制作人員的編程基礎要求較高,在物理實驗教學領域應用得較少。近10年來,陸續出現了許多易用的三維虛擬交互制作軟件,例如C3D、VRP、Virtools等[2-3],使三維仿真技術在物理實驗教學中的應用和普及成為可能。本文以分光計仿真實驗為例,介紹三維仿真實驗的整體思路、遇到的問題、儀器的改進和最終的實驗效果。
筆者從視覺效果和實驗功能兩方面對三維模型的創建和交互功能的實現進行了整體設計,并在常規實驗功能的基礎上,針對數據處理進行了儀器改進。
要實現分光計三維仿真實驗,必須創建實驗環境、實驗儀器和實驗對象的三維模型。在3D建模軟件中,3ds Max和Maya軟件制作的材質效果較好[4-6],本軟件的3D建模工作主要是用3ds Max完成的。
人機交互是虛擬實驗的主要內容,也是軟件制作的重點和難點。分光計三維仿真實驗的交互功能是利用Virtools三維交互平臺完成的。Virtools是虛擬現實系統制作平臺,能夠整合三維模型、邏輯行為、人工智能、物理屬性、視頻和音頻等多媒體元素,其最大的優點是具備一套豐富的行為交互模塊(building blocks,BB),開發時只需用鼠標拖曳BB就可以構建出復雜的應用程序,這種流程圖式的可視化編程方式簡單易用、交互性好,可有效縮短開發過程[7-9]。
3D建模需要完成實物測量、模型創建、添加燈光和相機、材質處理等4項工作。三維模型的創建應依據實物的尺寸,既要達到逼真的視覺效果,也要避免物理現象或儀器調節出現與實物不相符的問題。
模型創建前需對虛擬交互的細節進行系統的分析,例如哪些部件是共軸的并容易出現偏心差,哪些部件之間是聯動的,哪些部件是一個整體等。這樣能在建模過程中對模型轉軸位置、模型之間的父子關系、成組情況等有更為準確的把握和更加細致的調整,避免后期用Virtools進行交互功能設計時返工。
用Virtools進行燈光和相機位置、方向的調節不如3ds Max方便快捷,且不易做到量化控制,所以應盡可能在建模過程中就設置好燈光、相機的位置和方向,這樣可以在一定程度上提高軟件開發的效率。
模型材質處理得好壞是決定最終模型視覺效果的關鍵因素(圖1為建模完成后的效果)。模型材質處理主要包括漫反射顏色設置、高光設置、自發光設置、透明度設置、貼圖處理、光影效果調節等[10]。在材質處理過程中,合理運用烘焙貼圖可有效減少GPU的工作量、提高軟件運行效率。需要注意的是,在3ds Max中,紋理在Virtools中是不能被識別的。
完成3D建模后,需通過插件Virtools 3ds Max Exporter導出為Virtools可識別的nmo文件[11],然后才可以在Virtools中實現對模型的三維交互。
分光計三維仿真物理實驗的交互功能主要有3部分:視角控制、物理現象變化和儀器調節。

圖1 3ds Max建模的分光計效果圖
3.1 視角控制
視角控制包括視角的旋轉、縮放和跳轉,在Virtools中是依靠對相機的編程來實現的。視角的旋轉、縮放有兩種實現方式:一種是利用鍵盤來控制相機的旋轉和縮放,通過Switch On Key和Generic Camera Orbit這兩個BB來完成;另一種是利用鼠標來控制相機的旋轉和縮放,主要是通過Mouse Waiter、Mouse Camera Orbit等BB完成(見圖2)[12]。視角的跳轉可利用Set As Active Camera BB控制預置相機之間的切換來實現。

圖2 鼠標控制相機的部分腳本
3.2 物理現象變化
物理現象變化是實驗觀察的主要內容,也是實驗測量的重要依據。分光計實驗的物理現象主要有儀器調平中的現象、望遠鏡和平行光管調焦中的現象、三棱鏡色散和光柵衍射現象。
3.2.1 儀器調平中的現象
分光計載物臺和望遠鏡的調平主要依據鏡面反射現象,即平面鏡反射綠十字像的變化。綠十字像的高度受載物臺3個調平螺絲的相關變量影響,同時也受望遠鏡俯仰調節螺絲的相關變量影響。綠十字像的旋轉主要受反射鏡旋轉的相關變量和望遠鏡旋轉的相關變量影響。所涉及到的腳本交互主要是變量賦值和運算、綠十字像的平移和旋轉。
Virtools中變量的運算可利用Op BB來完成。Op BB是Virtools自帶的模塊化的小腳本,通過簡單的設置就可以完成加、減、乘、除、三角函數、變量類型轉化等多種運算。多個Op BB的結合使用可完成各種復雜的運算[13],而復雜的運算也可利用VSL Script腳本編程來實現。
Virtools中對象的平移可通過Move To或Translate這兩個BB來實現,但它們的效果略有不同。Move To是將對象移動到某一三維坐標點,Translate是使對象相對初始位置移動一定的距離[12]。
Virtools中對象的旋轉可通過Rotate或Rotate Around這兩種BB來實現。通過對其轉軸維度和旋轉角度的設置,可完成對三維對象旋轉的定量控制。
3.2.2 望遠鏡和平行光管調焦中的現象
望遠鏡和平行光管調焦可引起光束的縮放和成像清晰度的變化等光學現象。這些光學現象可通過粒子系統的相關BB來實現,例如CylindricalParticleSystem、CurveParticleSystem、PlanarParticleSystem等。粒子系統對光學現象的模擬效果較為逼真,實驗現象更能驗證物理原理,但粒子系統涉及變量較多,使用起來較為復雜。也可通過Set Diffuse BB改變三維模型的顏色和透明度,通過Scale BB對模型縮放等方式來模擬光學現象。
3.2.3 三棱鏡色散和光柵衍射現象
光的色散和衍射現象主要是色散光譜和衍射光譜隨儀器調節、棱鏡折射率、棱鏡旋轉、光柵常數等變量的改變而發生變化的現象。腳本編程的基本思路還是在各變量運算結果影響下,對Rotate或Rotate Around這兩種BB控制。變量運算可利用Op BB來完成,變量的比較判斷可利用Test BB來實現。圖3是最小偏向角計算與判斷腳本流程。

圖3 最小偏向角的計算與判斷部分腳本流程圖
這部分編程的難度較大,其原因主要是:(1)該實驗的物理現象受儀器調節中多個變量的影響,且變量之間的關系較為復雜(見圖4);(2)色散和衍射知識中數學公式較多,涉及的變量運算與判斷較為復雜。
3.3 儀器調節
儀器調節是虛擬實驗中人機交互的重要內容,是實驗現象變化和實驗測量的主要途徑。分光計的調節較為復雜,涉及到的調節主要有:載物臺的調節、望遠鏡的調節、游標盤和刻度盤的調節和平行光管的調節。
3.3.1 載物臺的調節
載物臺的調平通過3個調平螺絲來實現,調節這3個調平螺絲,載物臺水平狀態隨之發生變化(腳本編程可參考綠十字像的變化)。載物臺水平變化,會改變放置其上的反射鏡、三棱鏡、光柵等元件光學面的法線方向,從而引起反射、折射、衍射等不同光學現象。要實現儀器各部件之間的聯動,可通過Send Message、Wait Message這兩個行為模塊在不同腳本之間進行信息傳遞。
載物臺的旋轉受自身旋轉變量的影響,可通過Rotate或Rotate Around實現,但同時也受游標盤旋轉的影響。通過載物臺鎖定螺絲,可鎖定和解鎖載物臺與游標盤的同步轉動。載物臺與游標盤的同步可利用Activate Script、Deactivate Script行為模塊控制腳本的激活來實現,也可以利用Set Parent行為模塊設置模型之間的父子關系來實現。
3.3.2 望遠鏡的調節
望遠鏡的調節包括目鏡調焦、物鏡調焦、鏡筒俯仰調節、望遠鏡旋轉。
望遠鏡目鏡調焦是通過旋轉目鏡,改變目鏡中觀察到的叉絲、綠十字像的清晰程度來實現的。進行腳本編程時,可根據目鏡叉絲、綠十字像、目鏡的位置變量計算它們之間的相對位置,再與目鏡焦距進行比對,判斷目鏡叉絲、綠十字像的清晰程度。所涉及到的BB主要有Rotate、Translate、Op、CurveParticleSystem、PlanarParticleSystem等。

圖4 三棱鏡相關現象及影響因素
物鏡調焦是通過物鏡調焦螺絲改變目鏡筒與物鏡的相對距離,從而改變觀察到的光源、色散、衍射等現象的清晰程度,其具體腳本編程思路與目鏡調焦相似。
鏡筒俯仰調節是通過俯仰調節螺絲,使望遠鏡繞固定軸旋轉,從而改變光源、色散、衍射等現象在望遠鏡中上下相對位置,所涉及的BB主要有Rotate、Translate、Op等。
望遠鏡旋轉是繞分光計主軸旋轉,可以改變光源、色散、衍射光譜等在望遠鏡中的左右相對位置。由于望遠鏡可以分別與分光計主軸、刻度盤相對鎖定,所以在編程中除了會使用到Rotate、Translate、Op等BB外,還需要使用Activate Script、Deactivate Script、Set Parent等BB進行轉動的約束。
3.3.3 游標盤和刻度盤調節
游標盤和刻度盤的調節主要是旋轉控制,可通過Rotate BB實現。由于刻度盤與望遠鏡同步轉動的時候會受到平行光管的阻擋,所以這里需要一個碰撞檢測,可利用Box Box Intersection或Test等BB實現[14]。此外,游標盤、刻度盤還可分別與分光計主軸、望遠鏡、載物臺等相對鎖定,可利用Set Parent等BB對其轉動進行約束。
在分光計三維仿真實驗中,讀數和數據計算會花費較多的時間。為減少實驗者在該實驗環節所花費的時間和精力,在軟件中增加了數顯讀數和計算功能,除了將分光計游標盤讀數轉換為電信號存儲并顯示于數顯窗口外,還內置了三棱鏡頂角、最小偏向角、三棱鏡折射率、光柵衍射角、光柵常數、衍射級數、入射光波長等計算程序,可快速完成相關數據的計算。另外,還可以手動輸入數據,改變三棱鏡折射率、光柵常數等實驗參數,從而使實驗者可以對色散、衍射等光學現象進行更為系統、更加深入、更有針對性的實驗研究。
這一部分計算公式的編譯可利用Op BB或VSL Script實現。以折射率的計算為例,可以利用VSL Script腳本編程來創建個性化的運算BB。利用VSL Script編程,需要先設置輸入、輸出變量的名稱和類型,然后按照Script語言的規范書寫運算語句:
void main() { //Insert your code here float n; n=sin(a/2+b/2)/sin(b/2); pout 0=n; }
腳本編譯完成后,將生成的VSL BB與Schematic中的其他BB相連接即可。對于復雜的運算,利用VSL Script編程要比使用Op BB更為快捷有效,但這需要一定的Script語言編程基礎。
Virtools中的數據顯示需要先通過Create System Font、Set Font Properties設置字體的類型、顏色、大小等,然后通過3D Text、3D Frame設置顯示的位置、方向等。數據輸入可利用Input String BB,通過鍵盤輸入,也可以利用Identity BB,通過鼠標單擊等交互方式對變量賦值,達到數據輸入的效果。
分光計三維仿真實驗軟件實現了儀器的三維交互,模擬了鏡面反射、三棱鏡折射、光柵衍射等實驗現象,完成了三維虛擬環境下的儀器調節功能,真實地再現了該實驗相關的物理規律。使用者可自行設計實驗步驟,完成實物實驗所有的測量內容,使實驗具有較高的自主性和設計性。在該實驗軟件制作思路的介紹中包含平移、旋轉、縮放、碰撞檢測、數字顯示等物理實驗中常見交互形式的實現方法,對于其他物理實驗三維仿真軟件的制作具有一定的可借鑒性。
References)
[1] 張艷,樊莉,方秦.基于虛擬現實技術的虛擬實驗室建設[J].科技創新導報,2008(20):36-37.
[2] 梁宇濤.虛擬現實技術及其在實驗教學中的應用[J].實驗技術與管理,2006,23(3):81-85.
[3] 劉筱蘭,張薇,程惠華,等.虛擬實驗室的類型及發展趨勢[J].計算機應用研究,2004(11):8-10.
[4] 姚明.基于3DS MAX和VIRTOOLS的油田作業操作仿真系統的研究[D].吉林:吉林大學,2011.
[5] 萬寧,馮梅.關于虛擬現實中的三維可視化建模技術[J].應用技術,2007(1):70-72.
[6] 神龍工作室.新編3ds Max8中文版入門與提高[M].北京:人民郵電出版社,2007:159-262.
[7] 方利偉.基于Virtools的三維虛擬實驗室研究與實現[J].實驗技術與管理,2010,27(5):83-86.
[8] 羅虹,王士勇.基于Virtools技術的虛擬教學系統的設計與實現[J].現代教育技術,2007,10(17):57-60.
[9] 楊炎濤,張婷,宋琦,等.基于Virtools的虛擬實驗系統構建[J].實驗技術與管理,2008,25(9):92-95.
[10] 肖武,吳靜謐,冉慧麗,等.基于Virtools的氨合成塔模擬及虛擬系統構建[J].實驗室研究與探索,2013,32(8):67-71.
[11] 劉志廣,王姣姣,王艷嬙,等.三維網絡原子吸收光譜分析虛擬實驗室的構建[J].實驗室研究與探索,2013(3):205-210.
[12] 蓋龍濤,陳月華.基于Virtools的交互式操作模型系統的設計與實現[J].計算機應用,2009,29(12):308-310.
[13] Squelch A.Virtual Reality for Mine Safety Training in South Africa[J].The Journal of the South African Institute of Mining and Metallurgy,2001(7):209-216.
[14] 張紀磊,木楠,劉芬芬,等.基于virtools的楊氏模量測量虛擬試驗研究[J].新技術新工藝,2013(6):88-90.
Design of 3D simulation experiment of spectrometer
Su Xuejun, Zhang Jilei, Xing Honghong, Liu Cunhai, Liu Fenfen
(Department of Basic Experiment Science, Naval Aeronautical andAstronautical University,Yantai 264001, China)
This paper introduces the process of developing the 3D simulation experiment of spectrometer, aiming at the application of 3D simulation technique in physical experiments. The procedures and the matters of attention in 3ds Max modelling are involved, as well as the design and the commonly used Building Blocks to achieve the virtual interaction of viewpoint change, physical phenomenon and instruments adjustment in Virtools. The detailed methods of achieving the common interaction in physical experiments are introduced, such as translation , rotation, deformation, collision detection and digital display. Attempts of improving instruments are made in the virtual environment.
3D simulation experiment; spectrometer; 3ds Max; Virtools
2014- 12- 23
蘇學軍(1967—),男,天津,碩士,教授,主要研究方向為光電材料表征、應用研究及物理實驗教學和虛擬現實技術應用.
TP391.9;TH744.1
A
1002-4956(2015)5- 0115- 05