摘 要:虛擬數(shù)字化校園漫游系統(tǒng)是數(shù)字化校園建設(shè)計(jì)劃的核心平臺。本文首先對目前主流的虛擬可視化開發(fā)工具作了介紹,并結(jié)合當(dāng)今最流行的游戲引擎UDK(Unreal Development Kit)和三維設(shè)計(jì)軟件3ds Max的虛擬現(xiàn)實(shí)關(guān)鍵技術(shù)問題進(jìn)行了研究,以無錫城市職業(yè)技術(shù)學(xué)院校區(qū)為原型,設(shè)計(jì)并實(shí)現(xiàn)了將虛擬現(xiàn)實(shí)引擎作為三維動態(tài)交互立體數(shù)字校園開發(fā)平臺的核心構(gòu)件,著重對引擎實(shí)現(xiàn)過程中的3ds模型導(dǎo)入進(jìn)行了解析,包含了材質(zhì)編輯技術(shù)、物理碰撞技術(shù)及碰撞檢測技術(shù)等關(guān)鍵技術(shù)。結(jié)果表明,上述技術(shù)的通用性在虛擬現(xiàn)實(shí)引擎中可見一斑,極大地提高了引擎的實(shí)用性和執(zhí)行效率。
關(guān)鍵詞:數(shù)字校園;UDK虛擬現(xiàn)實(shí)引擎;物理碰撞檢測技術(shù)
中圖分類號:TP319.9 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
如今虛擬現(xiàn)實(shí)(Virtual Reality)技術(shù)已被廣泛應(yīng)用于交通模擬、城市規(guī)劃、虛擬現(xiàn)實(shí)、游戲、文物保護(hù)及遠(yuǎn)程教育等領(lǐng)域;基于計(jì)算機(jī)圖形學(xué)、交互技術(shù)和傳感技術(shù)多個(gè)領(lǐng)域的虛擬現(xiàn)實(shí)技術(shù)能夠通過計(jì)算機(jī)平臺把現(xiàn)實(shí)的實(shí)景完美逼真的呈現(xiàn)出來,三維立體視覺效果,讓使用用戶能夠以完全沉浸式地對三維虛擬實(shí)景進(jìn)行體驗(yàn)和溝通,達(dá)到如臨其境的體驗(yàn)感覺,特別是在那些尚未實(shí)現(xiàn)、實(shí)施的項(xiàng)目或有危險(xiǎn)很難實(shí)現(xiàn)或?qū)崿F(xiàn)成本太高的項(xiàng)目中,效益效果就更加明顯?!叭S虛擬數(shù)字校園”因互聯(lián)網(wǎng)、虛擬現(xiàn)實(shí)技術(shù)等的日臻成熟應(yīng)運(yùn)而生。并引起了學(xué)界和學(xué)校的高度關(guān)注和重視,其中的數(shù)字化校園虛擬漫游系統(tǒng)又是數(shù)字校園建設(shè)計(jì)劃的核心平臺。
2 基于UDK虛擬現(xiàn)實(shí)引擎的設(shè)計(jì)的關(guān)鍵技術(shù)研究(Research on key technologies of virtual reality engine design based on UDK)
UDK是由英佩數(shù)碼公司開發(fā)的基于Unreal Engine 3引擎的免費(fèi)版開發(fā)工具,是一套為Xbox 360,DirectX 9/10 PC,P1ayStation 3平臺準(zhǔn)備的完整的游戲開發(fā)構(gòu)架,對64位HDR高精度多種類光照、高級動態(tài)陰影特效和動態(tài)渲染均支持,能將數(shù)百萬個(gè)多邊形模型才有的高精度在低多邊形數(shù)量(通常在5000-15000多邊形)的模型上表現(xiàn)出來,如此就能用最低的計(jì)算資源達(dá)到極高畫質(zhì)渲染,滿足了虛擬場景的真實(shí)感要求。本文我將三維數(shù)字校園虛擬場景構(gòu)建及場景瀏覽功能通過運(yùn)用UDK關(guān)鍵技術(shù)進(jìn)行了研究,并予以了設(shè)計(jì)和實(shí)現(xiàn)。
2.1 基于專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的模型導(dǎo)入
OpenGL的API是操作系統(tǒng)提供給應(yīng)用程序的高性能圖形及交互場景處理的接口的函數(shù)集合,由于缺乏一系列的三維模型的高級命令,如通過點(diǎn)、線、多邊形幾何圖元建立三維模型,但像MAYA、3DMAX等市場流行的建模軟件卻很容易實(shí)現(xiàn),然而這些三維設(shè)計(jì)軟件對建立的模型卻很進(jìn)行交互控制,因此為了綜合三維軟件和OpenGL的軟件的優(yōu)勢特點(diǎn),由英佩數(shù)碼公司開發(fā)的基于Unreal Engine 3引擎UDK的優(yōu)勢就凸現(xiàn)了出來,利用UDK開發(fā)環(huán)境可以導(dǎo)入由專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的三維模型,然后進(jìn)行相應(yīng)的交互控制設(shè)計(jì)操作、渲染。這樣既減少了建三維模型的時(shí)間和難度,更重要的是又提高了虛擬現(xiàn)實(shí)引擎的開發(fā)速度。
2.2 基于專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的模型的導(dǎo)入方法[1]
考慮到無錫城院數(shù)字校園的三維立體模型數(shù)據(jù)量巨大、結(jié)構(gòu)較復(fù)雜,UDK開發(fā)環(huán)境對三維模型文件進(jìn)行兩次轉(zhuǎn)化處理,導(dǎo)入轉(zhuǎn)化處理過程如圖1所示。
(1)三維模型文件二進(jìn)制的轉(zhuǎn)化。
UDK開發(fā)環(huán)境專業(yè)設(shè)計(jì)了一個(gè)讀取三維模型數(shù)據(jù)的主類——3dsToBin類,包含了像T3dsFile類及其他輔助類,來讀取導(dǎo)入的三維模型的每個(gè)塊的數(shù)據(jù),根據(jù)ID塊頭所含的信息將其以二進(jìn)制緩存數(shù)組的方式存在二進(jìn)制文件當(dāng)中,并設(shè)計(jì)了一個(gè)關(guān)聯(lián)索引數(shù)組把相關(guān)的數(shù)據(jù)信息關(guān)聯(lián)起來。
(2)將導(dǎo)入的二進(jìn)制文件存儲的信息再還原轉(zhuǎn)化為三維場景中的幾何節(jié)點(diǎn)信息。
無錫城院數(shù)字校園三維模型信息,包含每個(gè)節(jié)點(diǎn)的頂點(diǎn)、法向量、顏色信息、紋理及標(biāo)識及位置的順序數(shù)字代碼,這些信息存儲在緩存中,其對應(yīng)的紋理是通過數(shù)組列表方法與其相關(guān)聯(lián),以二進(jìn)制文件作為參數(shù)加載在UDK引擎當(dāng)中,作為構(gòu)建三維虛擬場景的依據(jù)。
2.3 UDK材質(zhì)編輯與設(shè)計(jì)
UDK材質(zhì)主要使用了抽象基類MaterialInterface(材質(zhì)接口)。這個(gè)類是已應(yīng)用的材質(zhì)的表達(dá)式和參數(shù)值的接口。Material(材質(zhì))類是定義了表達(dá)式和默認(rèn)參數(shù)值的MaterialInterface的子類。材質(zhì)實(shí)例常量和隨時(shí)間變化的材質(zhì)實(shí)例類是有一個(gè)MaterialInstance父類的MaterialInterface的子類。這些類型都會從它們的父類中繼承它們的表達(dá)式和參數(shù)值,可以選擇重新載入某些參數(shù)值或?qū)ζ溥M(jìn)行動畫處理。圖2顯示了材質(zhì)通道、材質(zhì)節(jié)點(diǎn)和材質(zhì)表達(dá)式三者之間的關(guān)系,最終材質(zhì)設(shè)定好以后呈現(xiàn)出如圖2所示的效果。
2.4 基于UDK引擎虛擬校園的仿真技術(shù)——物理碰撞技術(shù)及碰撞檢測技術(shù)[2,3]
為了防止在虛擬環(huán)境中出現(xiàn)物體交叉或物體相互進(jìn)入等反自然的現(xiàn)象,增強(qiáng)仿真度,UDK引擎中引入了物理碰撞及碰撞檢測技術(shù),在UDK中有只能均勻縮放的球體碰撞體,有既能均勻縮放又能沿著其長或?qū)挿较蚩s放的膠囊體碰撞體,更有既可均勻又可非均勻縮放的盒體碰撞體。UDK開發(fā)環(huán)境使用phat修改器能夠非常便捷的修改物理資源的碰撞物體。打開phat中的phys_ capsule3 physics,就能看到物理資源體周圍環(huán)繞著線框球體或膠囊體,這些線框就是該物體骨骼的碰撞物體,通過單擊simulate(模擬)按鈕甚至可以看到物體行為的模擬效果,再單擊就可停止。用左擊選擇一個(gè)碰撞物體,橙色高亮顯示表示被選擇了,可直接與其相鄰的單元?jiǎng)t變成白色。則表示這些碰撞體間的碰撞已經(jīng)被禁止了,原因是約束正在處理它們之間的相互作用。
三維動態(tài)交互立體三維數(shù)字校園的人物模型在走動觀看的時(shí)候,獨(dú)創(chuàng)設(shè)計(jì)并實(shí)現(xiàn)了Capsule包圍盒碰撞檢測方法,避免不符合自然現(xiàn)象的情況出現(xiàn)如人物沿著墻壁走上去或從障礙物中穿過等。如果人物模型與另一個(gè)模型對象發(fā)生了碰撞,通過兩個(gè)測試的對象外包圍盒的相交情況就可判斷,從而對虛擬人物的位置方向做相應(yīng)的調(diào)整,繼續(xù)前行。如圖3所示。
3 結(jié)論(Conclusion)
本研究以無錫城市職業(yè)技術(shù)學(xué)院數(shù)字校園為例,旨在探討基于虛擬現(xiàn)實(shí)的數(shù)字化校園的關(guān)鍵技術(shù)實(shí)現(xiàn),結(jié)合UDK虛擬現(xiàn)實(shí)引擎的應(yīng)用開發(fā)技術(shù),深入探討了三維動態(tài)交互立體數(shù)字校園開發(fā)平臺中所應(yīng)用到的幾項(xiàng)關(guān)鍵技術(shù):三維立體模型導(dǎo)入及方法、材質(zhì)編輯技術(shù)、物理碰撞技術(shù)及碰撞檢測技術(shù)等,為三維數(shù)字虛擬化校園建設(shè)探索了一種新的思路。
參考文獻(xiàn)(References)
[1] 王濤.中文3ds max三維動畫基礎(chǔ)與實(shí)例教程[M].北京:研究出版社,2008.
[2] 劉陳勇,馬純永,陳戈.基于VC/open GI的虛擬海大校園導(dǎo)航系統(tǒng)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào).2007,19(2):263-267.
[3] Gerard F. Fibre optic sensor systems for monitoring compositestructures[J]. Reinforced Plastics,2005,49(11):41-49.
作者簡介:
王 濤(1969-),男,碩士,副教授.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用、多媒體技術(shù)、虛擬現(xiàn)實(shí)及增強(qiáng)現(xiàn)實(shí)技術(shù).endprint
摘 要:虛擬數(shù)字化校園漫游系統(tǒng)是數(shù)字化校園建設(shè)計(jì)劃的核心平臺。本文首先對目前主流的虛擬可視化開發(fā)工具作了介紹,并結(jié)合當(dāng)今最流行的游戲引擎UDK(Unreal Development Kit)和三維設(shè)計(jì)軟件3ds Max的虛擬現(xiàn)實(shí)關(guān)鍵技術(shù)問題進(jìn)行了研究,以無錫城市職業(yè)技術(shù)學(xué)院校區(qū)為原型,設(shè)計(jì)并實(shí)現(xiàn)了將虛擬現(xiàn)實(shí)引擎作為三維動態(tài)交互立體數(shù)字校園開發(fā)平臺的核心構(gòu)件,著重對引擎實(shí)現(xiàn)過程中的3ds模型導(dǎo)入進(jìn)行了解析,包含了材質(zhì)編輯技術(shù)、物理碰撞技術(shù)及碰撞檢測技術(shù)等關(guān)鍵技術(shù)。結(jié)果表明,上述技術(shù)的通用性在虛擬現(xiàn)實(shí)引擎中可見一斑,極大地提高了引擎的實(shí)用性和執(zhí)行效率。
關(guān)鍵詞:數(shù)字校園;UDK虛擬現(xiàn)實(shí)引擎;物理碰撞檢測技術(shù)
中圖分類號:TP319.9 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
如今虛擬現(xiàn)實(shí)(Virtual Reality)技術(shù)已被廣泛應(yīng)用于交通模擬、城市規(guī)劃、虛擬現(xiàn)實(shí)、游戲、文物保護(hù)及遠(yuǎn)程教育等領(lǐng)域;基于計(jì)算機(jī)圖形學(xué)、交互技術(shù)和傳感技術(shù)多個(gè)領(lǐng)域的虛擬現(xiàn)實(shí)技術(shù)能夠通過計(jì)算機(jī)平臺把現(xiàn)實(shí)的實(shí)景完美逼真的呈現(xiàn)出來,三維立體視覺效果,讓使用用戶能夠以完全沉浸式地對三維虛擬實(shí)景進(jìn)行體驗(yàn)和溝通,達(dá)到如臨其境的體驗(yàn)感覺,特別是在那些尚未實(shí)現(xiàn)、實(shí)施的項(xiàng)目或有危險(xiǎn)很難實(shí)現(xiàn)或?qū)崿F(xiàn)成本太高的項(xiàng)目中,效益效果就更加明顯。“三維虛擬數(shù)字校園”因互聯(lián)網(wǎng)、虛擬現(xiàn)實(shí)技術(shù)等的日臻成熟應(yīng)運(yùn)而生。并引起了學(xué)界和學(xué)校的高度關(guān)注和重視,其中的數(shù)字化校園虛擬漫游系統(tǒng)又是數(shù)字校園建設(shè)計(jì)劃的核心平臺。
2 基于UDK虛擬現(xiàn)實(shí)引擎的設(shè)計(jì)的關(guān)鍵技術(shù)研究(Research on key technologies of virtual reality engine design based on UDK)
UDK是由英佩數(shù)碼公司開發(fā)的基于Unreal Engine 3引擎的免費(fèi)版開發(fā)工具,是一套為Xbox 360,DirectX 9/10 PC,P1ayStation 3平臺準(zhǔn)備的完整的游戲開發(fā)構(gòu)架,對64位HDR高精度多種類光照、高級動態(tài)陰影特效和動態(tài)渲染均支持,能將數(shù)百萬個(gè)多邊形模型才有的高精度在低多邊形數(shù)量(通常在5000-15000多邊形)的模型上表現(xiàn)出來,如此就能用最低的計(jì)算資源達(dá)到極高畫質(zhì)渲染,滿足了虛擬場景的真實(shí)感要求。本文我將三維數(shù)字校園虛擬場景構(gòu)建及場景瀏覽功能通過運(yùn)用UDK關(guān)鍵技術(shù)進(jìn)行了研究,并予以了設(shè)計(jì)和實(shí)現(xiàn)。
2.1 基于專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的模型導(dǎo)入
OpenGL的API是操作系統(tǒng)提供給應(yīng)用程序的高性能圖形及交互場景處理的接口的函數(shù)集合,由于缺乏一系列的三維模型的高級命令,如通過點(diǎn)、線、多邊形幾何圖元建立三維模型,但像MAYA、3DMAX等市場流行的建模軟件卻很容易實(shí)現(xiàn),然而這些三維設(shè)計(jì)軟件對建立的模型卻很進(jìn)行交互控制,因此為了綜合三維軟件和OpenGL的軟件的優(yōu)勢特點(diǎn),由英佩數(shù)碼公司開發(fā)的基于Unreal Engine 3引擎UDK的優(yōu)勢就凸現(xiàn)了出來,利用UDK開發(fā)環(huán)境可以導(dǎo)入由專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的三維模型,然后進(jìn)行相應(yīng)的交互控制設(shè)計(jì)操作、渲染。這樣既減少了建三維模型的時(shí)間和難度,更重要的是又提高了虛擬現(xiàn)實(shí)引擎的開發(fā)速度。
2.2 基于專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的模型的導(dǎo)入方法[1]
考慮到無錫城院數(shù)字校園的三維立體模型數(shù)據(jù)量巨大、結(jié)構(gòu)較復(fù)雜,UDK開發(fā)環(huán)境對三維模型文件進(jìn)行兩次轉(zhuǎn)化處理,導(dǎo)入轉(zhuǎn)化處理過程如圖1所示。
(1)三維模型文件二進(jìn)制的轉(zhuǎn)化。
UDK開發(fā)環(huán)境專業(yè)設(shè)計(jì)了一個(gè)讀取三維模型數(shù)據(jù)的主類——3dsToBin類,包含了像T3dsFile類及其他輔助類,來讀取導(dǎo)入的三維模型的每個(gè)塊的數(shù)據(jù),根據(jù)ID塊頭所含的信息將其以二進(jìn)制緩存數(shù)組的方式存在二進(jìn)制文件當(dāng)中,并設(shè)計(jì)了一個(gè)關(guān)聯(lián)索引數(shù)組把相關(guān)的數(shù)據(jù)信息關(guān)聯(lián)起來。
(2)將導(dǎo)入的二進(jìn)制文件存儲的信息再還原轉(zhuǎn)化為三維場景中的幾何節(jié)點(diǎn)信息。
無錫城院數(shù)字校園三維模型信息,包含每個(gè)節(jié)點(diǎn)的頂點(diǎn)、法向量、顏色信息、紋理及標(biāo)識及位置的順序數(shù)字代碼,這些信息存儲在緩存中,其對應(yīng)的紋理是通過數(shù)組列表方法與其相關(guān)聯(lián),以二進(jìn)制文件作為參數(shù)加載在UDK引擎當(dāng)中,作為構(gòu)建三維虛擬場景的依據(jù)。
2.3 UDK材質(zhì)編輯與設(shè)計(jì)
UDK材質(zhì)主要使用了抽象基類MaterialInterface(材質(zhì)接口)。這個(gè)類是已應(yīng)用的材質(zhì)的表達(dá)式和參數(shù)值的接口。Material(材質(zhì))類是定義了表達(dá)式和默認(rèn)參數(shù)值的MaterialInterface的子類。材質(zhì)實(shí)例常量和隨時(shí)間變化的材質(zhì)實(shí)例類是有一個(gè)MaterialInstance父類的MaterialInterface的子類。這些類型都會從它們的父類中繼承它們的表達(dá)式和參數(shù)值,可以選擇重新載入某些參數(shù)值或?qū)ζ溥M(jìn)行動畫處理。圖2顯示了材質(zhì)通道、材質(zhì)節(jié)點(diǎn)和材質(zhì)表達(dá)式三者之間的關(guān)系,最終材質(zhì)設(shè)定好以后呈現(xiàn)出如圖2所示的效果。
2.4 基于UDK引擎虛擬校園的仿真技術(shù)——物理碰撞技術(shù)及碰撞檢測技術(shù)[2,3]
為了防止在虛擬環(huán)境中出現(xiàn)物體交叉或物體相互進(jìn)入等反自然的現(xiàn)象,增強(qiáng)仿真度,UDK引擎中引入了物理碰撞及碰撞檢測技術(shù),在UDK中有只能均勻縮放的球體碰撞體,有既能均勻縮放又能沿著其長或?qū)挿较蚩s放的膠囊體碰撞體,更有既可均勻又可非均勻縮放的盒體碰撞體。UDK開發(fā)環(huán)境使用phat修改器能夠非常便捷的修改物理資源的碰撞物體。打開phat中的phys_ capsule3 physics,就能看到物理資源體周圍環(huán)繞著線框球體或膠囊體,這些線框就是該物體骨骼的碰撞物體,通過單擊simulate(模擬)按鈕甚至可以看到物體行為的模擬效果,再單擊就可停止。用左擊選擇一個(gè)碰撞物體,橙色高亮顯示表示被選擇了,可直接與其相鄰的單元?jiǎng)t變成白色。則表示這些碰撞體間的碰撞已經(jīng)被禁止了,原因是約束正在處理它們之間的相互作用。
三維動態(tài)交互立體三維數(shù)字校園的人物模型在走動觀看的時(shí)候,獨(dú)創(chuàng)設(shè)計(jì)并實(shí)現(xiàn)了Capsule包圍盒碰撞檢測方法,避免不符合自然現(xiàn)象的情況出現(xiàn)如人物沿著墻壁走上去或從障礙物中穿過等。如果人物模型與另一個(gè)模型對象發(fā)生了碰撞,通過兩個(gè)測試的對象外包圍盒的相交情況就可判斷,從而對虛擬人物的位置方向做相應(yīng)的調(diào)整,繼續(xù)前行。如圖3所示。
3 結(jié)論(Conclusion)
本研究以無錫城市職業(yè)技術(shù)學(xué)院數(shù)字校園為例,旨在探討基于虛擬現(xiàn)實(shí)的數(shù)字化校園的關(guān)鍵技術(shù)實(shí)現(xiàn),結(jié)合UDK虛擬現(xiàn)實(shí)引擎的應(yīng)用開發(fā)技術(shù),深入探討了三維動態(tài)交互立體數(shù)字校園開發(fā)平臺中所應(yīng)用到的幾項(xiàng)關(guān)鍵技術(shù):三維立體模型導(dǎo)入及方法、材質(zhì)編輯技術(shù)、物理碰撞技術(shù)及碰撞檢測技術(shù)等,為三維數(shù)字虛擬化校園建設(shè)探索了一種新的思路。
參考文獻(xiàn)(References)
[1] 王濤.中文3ds max三維動畫基礎(chǔ)與實(shí)例教程[M].北京:研究出版社,2008.
[2] 劉陳勇,馬純永,陳戈.基于VC/open GI的虛擬海大校園導(dǎo)航系統(tǒng)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào).2007,19(2):263-267.
[3] Gerard F. Fibre optic sensor systems for monitoring compositestructures[J]. Reinforced Plastics,2005,49(11):41-49.
作者簡介:
王 濤(1969-),男,碩士,副教授.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用、多媒體技術(shù)、虛擬現(xiàn)實(shí)及增強(qiáng)現(xiàn)實(shí)技術(shù).endprint
摘 要:虛擬數(shù)字化校園漫游系統(tǒng)是數(shù)字化校園建設(shè)計(jì)劃的核心平臺。本文首先對目前主流的虛擬可視化開發(fā)工具作了介紹,并結(jié)合當(dāng)今最流行的游戲引擎UDK(Unreal Development Kit)和三維設(shè)計(jì)軟件3ds Max的虛擬現(xiàn)實(shí)關(guān)鍵技術(shù)問題進(jìn)行了研究,以無錫城市職業(yè)技術(shù)學(xué)院校區(qū)為原型,設(shè)計(jì)并實(shí)現(xiàn)了將虛擬現(xiàn)實(shí)引擎作為三維動態(tài)交互立體數(shù)字校園開發(fā)平臺的核心構(gòu)件,著重對引擎實(shí)現(xiàn)過程中的3ds模型導(dǎo)入進(jìn)行了解析,包含了材質(zhì)編輯技術(shù)、物理碰撞技術(shù)及碰撞檢測技術(shù)等關(guān)鍵技術(shù)。結(jié)果表明,上述技術(shù)的通用性在虛擬現(xiàn)實(shí)引擎中可見一斑,極大地提高了引擎的實(shí)用性和執(zhí)行效率。
關(guān)鍵詞:數(shù)字校園;UDK虛擬現(xiàn)實(shí)引擎;物理碰撞檢測技術(shù)
中圖分類號:TP319.9 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
如今虛擬現(xiàn)實(shí)(Virtual Reality)技術(shù)已被廣泛應(yīng)用于交通模擬、城市規(guī)劃、虛擬現(xiàn)實(shí)、游戲、文物保護(hù)及遠(yuǎn)程教育等領(lǐng)域;基于計(jì)算機(jī)圖形學(xué)、交互技術(shù)和傳感技術(shù)多個(gè)領(lǐng)域的虛擬現(xiàn)實(shí)技術(shù)能夠通過計(jì)算機(jī)平臺把現(xiàn)實(shí)的實(shí)景完美逼真的呈現(xiàn)出來,三維立體視覺效果,讓使用用戶能夠以完全沉浸式地對三維虛擬實(shí)景進(jìn)行體驗(yàn)和溝通,達(dá)到如臨其境的體驗(yàn)感覺,特別是在那些尚未實(shí)現(xiàn)、實(shí)施的項(xiàng)目或有危險(xiǎn)很難實(shí)現(xiàn)或?qū)崿F(xiàn)成本太高的項(xiàng)目中,效益效果就更加明顯?!叭S虛擬數(shù)字校園”因互聯(lián)網(wǎng)、虛擬現(xiàn)實(shí)技術(shù)等的日臻成熟應(yīng)運(yùn)而生。并引起了學(xué)界和學(xué)校的高度關(guān)注和重視,其中的數(shù)字化校園虛擬漫游系統(tǒng)又是數(shù)字校園建設(shè)計(jì)劃的核心平臺。
2 基于UDK虛擬現(xiàn)實(shí)引擎的設(shè)計(jì)的關(guān)鍵技術(shù)研究(Research on key technologies of virtual reality engine design based on UDK)
UDK是由英佩數(shù)碼公司開發(fā)的基于Unreal Engine 3引擎的免費(fèi)版開發(fā)工具,是一套為Xbox 360,DirectX 9/10 PC,P1ayStation 3平臺準(zhǔn)備的完整的游戲開發(fā)構(gòu)架,對64位HDR高精度多種類光照、高級動態(tài)陰影特效和動態(tài)渲染均支持,能將數(shù)百萬個(gè)多邊形模型才有的高精度在低多邊形數(shù)量(通常在5000-15000多邊形)的模型上表現(xiàn)出來,如此就能用最低的計(jì)算資源達(dá)到極高畫質(zhì)渲染,滿足了虛擬場景的真實(shí)感要求。本文我將三維數(shù)字校園虛擬場景構(gòu)建及場景瀏覽功能通過運(yùn)用UDK關(guān)鍵技術(shù)進(jìn)行了研究,并予以了設(shè)計(jì)和實(shí)現(xiàn)。
2.1 基于專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的模型導(dǎo)入
OpenGL的API是操作系統(tǒng)提供給應(yīng)用程序的高性能圖形及交互場景處理的接口的函數(shù)集合,由于缺乏一系列的三維模型的高級命令,如通過點(diǎn)、線、多邊形幾何圖元建立三維模型,但像MAYA、3DMAX等市場流行的建模軟件卻很容易實(shí)現(xiàn),然而這些三維設(shè)計(jì)軟件對建立的模型卻很進(jìn)行交互控制,因此為了綜合三維軟件和OpenGL的軟件的優(yōu)勢特點(diǎn),由英佩數(shù)碼公司開發(fā)的基于Unreal Engine 3引擎UDK的優(yōu)勢就凸現(xiàn)了出來,利用UDK開發(fā)環(huán)境可以導(dǎo)入由專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的三維模型,然后進(jìn)行相應(yīng)的交互控制設(shè)計(jì)操作、渲染。這樣既減少了建三維模型的時(shí)間和難度,更重要的是又提高了虛擬現(xiàn)實(shí)引擎的開發(fā)速度。
2.2 基于專業(yè)三維設(shè)計(jì)軟件設(shè)計(jì)的模型的導(dǎo)入方法[1]
考慮到無錫城院數(shù)字校園的三維立體模型數(shù)據(jù)量巨大、結(jié)構(gòu)較復(fù)雜,UDK開發(fā)環(huán)境對三維模型文件進(jìn)行兩次轉(zhuǎn)化處理,導(dǎo)入轉(zhuǎn)化處理過程如圖1所示。
(1)三維模型文件二進(jìn)制的轉(zhuǎn)化。
UDK開發(fā)環(huán)境專業(yè)設(shè)計(jì)了一個(gè)讀取三維模型數(shù)據(jù)的主類——3dsToBin類,包含了像T3dsFile類及其他輔助類,來讀取導(dǎo)入的三維模型的每個(gè)塊的數(shù)據(jù),根據(jù)ID塊頭所含的信息將其以二進(jìn)制緩存數(shù)組的方式存在二進(jìn)制文件當(dāng)中,并設(shè)計(jì)了一個(gè)關(guān)聯(lián)索引數(shù)組把相關(guān)的數(shù)據(jù)信息關(guān)聯(lián)起來。
(2)將導(dǎo)入的二進(jìn)制文件存儲的信息再還原轉(zhuǎn)化為三維場景中的幾何節(jié)點(diǎn)信息。
無錫城院數(shù)字校園三維模型信息,包含每個(gè)節(jié)點(diǎn)的頂點(diǎn)、法向量、顏色信息、紋理及標(biāo)識及位置的順序數(shù)字代碼,這些信息存儲在緩存中,其對應(yīng)的紋理是通過數(shù)組列表方法與其相關(guān)聯(lián),以二進(jìn)制文件作為參數(shù)加載在UDK引擎當(dāng)中,作為構(gòu)建三維虛擬場景的依據(jù)。
2.3 UDK材質(zhì)編輯與設(shè)計(jì)
UDK材質(zhì)主要使用了抽象基類MaterialInterface(材質(zhì)接口)。這個(gè)類是已應(yīng)用的材質(zhì)的表達(dá)式和參數(shù)值的接口。Material(材質(zhì))類是定義了表達(dá)式和默認(rèn)參數(shù)值的MaterialInterface的子類。材質(zhì)實(shí)例常量和隨時(shí)間變化的材質(zhì)實(shí)例類是有一個(gè)MaterialInstance父類的MaterialInterface的子類。這些類型都會從它們的父類中繼承它們的表達(dá)式和參數(shù)值,可以選擇重新載入某些參數(shù)值或?qū)ζ溥M(jìn)行動畫處理。圖2顯示了材質(zhì)通道、材質(zhì)節(jié)點(diǎn)和材質(zhì)表達(dá)式三者之間的關(guān)系,最終材質(zhì)設(shè)定好以后呈現(xiàn)出如圖2所示的效果。
2.4 基于UDK引擎虛擬校園的仿真技術(shù)——物理碰撞技術(shù)及碰撞檢測技術(shù)[2,3]
為了防止在虛擬環(huán)境中出現(xiàn)物體交叉或物體相互進(jìn)入等反自然的現(xiàn)象,增強(qiáng)仿真度,UDK引擎中引入了物理碰撞及碰撞檢測技術(shù),在UDK中有只能均勻縮放的球體碰撞體,有既能均勻縮放又能沿著其長或?qū)挿较蚩s放的膠囊體碰撞體,更有既可均勻又可非均勻縮放的盒體碰撞體。UDK開發(fā)環(huán)境使用phat修改器能夠非常便捷的修改物理資源的碰撞物體。打開phat中的phys_ capsule3 physics,就能看到物理資源體周圍環(huán)繞著線框球體或膠囊體,這些線框就是該物體骨骼的碰撞物體,通過單擊simulate(模擬)按鈕甚至可以看到物體行為的模擬效果,再單擊就可停止。用左擊選擇一個(gè)碰撞物體,橙色高亮顯示表示被選擇了,可直接與其相鄰的單元?jiǎng)t變成白色。則表示這些碰撞體間的碰撞已經(jīng)被禁止了,原因是約束正在處理它們之間的相互作用。
三維動態(tài)交互立體三維數(shù)字校園的人物模型在走動觀看的時(shí)候,獨(dú)創(chuàng)設(shè)計(jì)并實(shí)現(xiàn)了Capsule包圍盒碰撞檢測方法,避免不符合自然現(xiàn)象的情況出現(xiàn)如人物沿著墻壁走上去或從障礙物中穿過等。如果人物模型與另一個(gè)模型對象發(fā)生了碰撞,通過兩個(gè)測試的對象外包圍盒的相交情況就可判斷,從而對虛擬人物的位置方向做相應(yīng)的調(diào)整,繼續(xù)前行。如圖3所示。
3 結(jié)論(Conclusion)
本研究以無錫城市職業(yè)技術(shù)學(xué)院數(shù)字校園為例,旨在探討基于虛擬現(xiàn)實(shí)的數(shù)字化校園的關(guān)鍵技術(shù)實(shí)現(xiàn),結(jié)合UDK虛擬現(xiàn)實(shí)引擎的應(yīng)用開發(fā)技術(shù),深入探討了三維動態(tài)交互立體數(shù)字校園開發(fā)平臺中所應(yīng)用到的幾項(xiàng)關(guān)鍵技術(shù):三維立體模型導(dǎo)入及方法、材質(zhì)編輯技術(shù)、物理碰撞技術(shù)及碰撞檢測技術(shù)等,為三維數(shù)字虛擬化校園建設(shè)探索了一種新的思路。
參考文獻(xiàn)(References)
[1] 王濤.中文3ds max三維動畫基礎(chǔ)與實(shí)例教程[M].北京:研究出版社,2008.
[2] 劉陳勇,馬純永,陳戈.基于VC/open GI的虛擬海大校園導(dǎo)航系統(tǒng)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào).2007,19(2):263-267.
[3] Gerard F. Fibre optic sensor systems for monitoring compositestructures[J]. Reinforced Plastics,2005,49(11):41-49.
作者簡介:
王 濤(1969-),男,碩士,副教授.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用、多媒體技術(shù)、虛擬現(xiàn)實(shí)及增強(qiáng)現(xiàn)實(shí)技術(shù).endprint