王 健 邵國強
摘要:介紹了虛擬現實技術在培訓系統中的具體應用,分析了虛擬培訓系統的組成,選擇了OpenGVS和MultiGen作為虛擬培訓系統開發平臺。并詳細論述了從場景建模到場景驅動的整個系統實現過程。
關鍵詞:虛擬現實培訓系統場景建模場景驅動
基于虛擬現實技術的虛擬培訓系統具有仿真性、開放性、超時空性、可操作性和安全性等特征,是傳統培訓方式無法比擬的。目前,利用虛擬現實技術對員工進行培訓已經成為一種趨勢。
1虛擬培訓系統的組成
虛擬培訓系統的組成框圖。整個系統主要分為兩大部分:場景建模和場景驅動。場景建模是將虛擬場景與對象通過數學方法表達成存儲在計算機內的三維圖形對象的集合。在虛擬培訓系統的實現中,一般可采用MultiGen Creator作為場景建模工具,通過實時方式完成場景模型的建立。場景驅動是根據所建立的場景模型以及場景中各類虛擬對象運行時的狀態參數來生成實時視景的程序。其中:用戶接口模塊主要用于接收用戶發出的各項指令并把執行后的數據、結果反饋給用戶;中間虛線圍繞的部分是系統的核心模塊,它把從用戶接口模塊接收到的各項信息經過解釋后,向場景渲染或顯示模塊發出相應的運動指令,從而實現場景中物體的運動控制以及場景視角的切換。
2場景建模
場景建模過程主要包括以下幾個步驟:
(1)數據采集。本系統模型的實體外觀與幾何形狀等數據主要來自設計圖紙和一些實物照片,紋理數據主要來自實地拍攝照片的處理。對收集到的數據進行格式轉換和剪裁,并盡量使紋理數據量小一些。紋理文件名在整個數據采集區域內必須保持唯一,以確保紋理與三維模型每一個面的對應:
(2)確定模型層次結構。按其結構進行層次分解,并利用MultiGen建立了對應的樹狀層次結構,直到底層分解到基本圖元結構;
(3)進行可視建模。按照所確定的模型層次結構,逐層進行可視建模,然后存儲為不同的mt文件:
(4)去除冗余多邊形。描述實體模型表面的數據經常存在冗余現象。這里的冗余多邊形主要是指在實體外部觀察模型時那些看不到的部分。去除它們并不影響整體的視覺效果,還可以在很大程度上降低整個場景的復雜度;
(5)使用紋理映射。在對應位置的多邊形表面上“貼制”紋理圖片,用來替代詳細的模型。這樣處理可以減少模型的多邊形數目和復雜程度,提高圖像繪制輸出時的顯示速度。只要視點不過于靠近實體,紋理映射就不會降低場景的逼真程度。
3場景驅動
我們雖然建立了虛擬培訓系統中的場景模型,但這些模型都是靜態的、相對孤立的,彼此之間沒有實現真正意義上的聯系。為了給用戶提供一個“真實”的環境,實現他們與場景之間的互動,還要驅動整個虛擬場景,實現對場景模型的調用、顯示和控制。
基于OpenGVS程序框架,系統的相關功能主要在用戶初始化函數GV_user_init()和用戶運行時函數GV_us-er_proe()中實現。其中,用戶初始化函數在系統中只執行一次,而用戶運行時函數則每幀調用一次。
在用戶初始化函數GV_user_init()中,首先創建了幀緩存、通道、相機、場景、實體對象、光源等資源,接著將這些圖形資源連接在一起,最后對系統參數及控制變量進行設置。下面的代碼說明了OpenGVS資源如何進行創建和連接。

用戶運行時在函數GV_user_proc()中,我們可以實現三維場景的碰撞檢測、相機控制和人機交互等功能。OpenGVS不只可以通過引擎提供的函數對場景中的對象進行控制,也可以通過仿真回調函數的方式進行控制,使碰撞檢測、人機交互等實現起來更加方便靈活。
4結束語
本系統是基于虛擬現實技術設計開發的,在實際的操作培訓中發揮了重要作用。虛擬培訓強調人、自然環境、計算機系統的協調和集成,具有不可比擬的優越性,是未來培訓的發展方向。