摘 要:在虛擬現(xiàn)實(shí)仿真模擬研發(fā)中,三維造型外觀的逼真程度是核心工作。針對(duì)這一問(wèn)題,分析虛擬現(xiàn)實(shí)建模語(yǔ)言的法向量(Normal)節(jié)點(diǎn)及法向量補(bǔ)插器(Normal Interpolator)節(jié)點(diǎn)的工作原理和作用,討論基于這些節(jié)點(diǎn)進(jìn)行三維造型虛擬仿真的實(shí)現(xiàn)方法,并依據(jù)研究結(jié)論給出相應(yīng)的三維造型驗(yàn)證舉例。該研究結(jié)論可有效應(yīng)用于基于虛擬現(xiàn)實(shí)建模語(yǔ)言實(shí)現(xiàn)虛擬仿真過(guò)程中對(duì)三維造型的逼真和動(dòng)態(tài)增強(qiáng),對(duì)于復(fù)雜的虛擬仿真模擬的高效研發(fā)工作有重要指導(dǎo)意義。
關(guān)鍵詞:虛擬現(xiàn)實(shí)建模語(yǔ)言;法向量;三維造型;法向量補(bǔ)插器
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1004373X(2008)2011903
3D Models Virtual Simulation Based on Normal of VRML
WANG Haopeng,LI Dongxu
(Aviation University of Air Force,Changchun,130022,China)
Abstract:Virtual reality simulation is the key for fidelity of 3D models.The principle and function of Normal node and Normal Interpolator node based on Virtual Reality Modeling Language(VRML),the method of virtual reality simulation,the verification programs 3D modeling based on the method are discussed and realized.The research can be applied to enhance fidelity and interaction of 3D models effectively,and is valuable to guide the design and development of complex virtual reality simulation well based on VRML.
Keywords:virtual reality modeling language;normal node;3D modeling;normal interpolator
1 引 言
在VRML中,虛擬光源和真實(shí)光源的作用相同,都是照亮場(chǎng)景并構(gòu)造瀏覽焦點(diǎn)。但是,虛擬光源只體現(xiàn)光照效果,沒(méi)有真實(shí)造型。在虛擬場(chǎng)景中,三維造型表面的明暗主要由其周圍光源的朝向及其面的朝向決定。面的法向量(Normal)節(jié)點(diǎn)是垂直并指向面外的單位向量,其與面上的光源連線夾角θ確定面的亮度。夾角θ越大,面的亮度L越弱;夾角θ越小,面的亮度L越強(qiáng)。與法向量節(jié)點(diǎn)關(guān)聯(lián)的法向量補(bǔ)插器(Normal Interpolator)節(jié)點(diǎn)則針對(duì)三維造型表面的一組法向量進(jìn)行關(guān)鍵幀動(dòng)畫插值操作,從而使三維造型的虛擬仿真具有動(dòng)作,即動(dòng)態(tài)性。
2 法向量(Normal)節(jié)點(diǎn)
若三維造型的面朝向與其法向量指向相同。由點(diǎn)坐標(biāo)定義面的法向量,VRML通常將坐標(biāo)次序顯示為逆時(shí)針?lè)较虻囊粋?cè)作為三維造型面的前方。按照三維造型構(gòu)造效果的不同,法向量分為3種,即缺省法向量、逐面法向量和逐點(diǎn)法向量。
2.1 法向量構(gòu)成
缺省法向量,即未對(duì)三維造型對(duì)象指定任何法向量,由瀏覽器自動(dòng)生成法向量。相鄰面的法向量的折角(creaseAngle)(見(jiàn)2.1.2節(jié))由瀏覽器按其中的值決定其平面交接處應(yīng)按棱面相交或光滑過(guò)渡方式,即逐面法向量或逐點(diǎn)法向量。
2.1.1 法向量節(jié)點(diǎn)語(yǔ)法描述
法向量(Normal)節(jié)點(diǎn)語(yǔ)法描述如下:
Normal
{
exposedField MFVec3f vector [ ]
…
}
vector公共域的值指定一個(gè)可用作造型法向量的單位法向量矢量列表。每個(gè)法向量由3個(gè)分量(X,Y,Z)構(gòu)成單位向量。
發(fā)送值到vector公共域的隱含域set_vector(eventIn事件),可改變向量列表的值,新的法向量矢量列表由此公共域的隱含域vector_changed(eventOut出事件)輸出。
2.1.2 折角
折角(creaseAngle)指定一個(gè)允許角度值θR,用來(lái)與相鄰平面的法向量比較。若2個(gè)法向量之間的角度θ滿足{θ|θ≤θR},則相鄰兩平面圓滑過(guò)渡;若θ滿足{θ|θ>θR},則保留棱邊,兩個(gè)表面分別計(jì)算各自法向量。
2.2 逐面法向量
當(dāng)按逐面法向量規(guī)定法向量時(shí),由于根據(jù)法向量計(jì)算出的平面間反光強(qiáng)度各不相同,相鄰面間形成明顯棱析(如圖1所示)。
圖1 逐面法向量
如一個(gè)六棱錐三維造型面向?yàn)g覽者的3個(gè)面的法向量,依次為每個(gè)平面設(shè)置法向量值,即:
normal Normal {
vector[
-0.5 -0.5 0.5,
0 -1.5 1.5,
0.5 -0.5 0.5
]
}
則三維造型外表面的生成效果如圖2所示。
圖2 基于逐面法向量的三維造型效果
2.3 逐點(diǎn)法向量
三維造型表面曲面(圓滑)效果的體現(xiàn),可采用逐點(diǎn)法向量方法。當(dāng)按逐點(diǎn)法向量規(guī)定法向量時(shí),渲染工具為面上的點(diǎn)計(jì)算出不同的法向量,用以構(gòu)成頂點(diǎn)法向量之間的平滑過(guò)渡(如圖3所示)。
如對(duì)2.2節(jié)中的六棱錐三維造型每個(gè)頂點(diǎn)設(shè)定法向量(不編號(hào)),即:
normal Normal {
vector [
-0.5 -0.3 0.5,
-0.3 -0.5 0.5,
0.3 -0.5 0.6,
0.7 -0.3 0.5,
001]}
圖3 逐點(diǎn)法向量
則三維造型外表面的生成效果如圖4所示。
圖4 基于逐點(diǎn)法向量的三維造型效果
3 法向量補(bǔ)插器(NormalInterpolator)節(jié)點(diǎn)
NormalInterpolator節(jié)點(diǎn)允許對(duì)一組法向量進(jìn)行關(guān)鍵幀動(dòng)畫插值操作。在建立插值器時(shí),為三維造型的動(dòng)畫中每個(gè)指定時(shí)刻選擇一組法向量。
3.1 NormalInterpolator節(jié)點(diǎn)語(yǔ)法結(jié)構(gòu)
NormalInterpolator節(jié)點(diǎn)語(yǔ)法描述如下:
NormalInterpolator {
key MFFloat
keyValue MFVec3f
set_fraction SFFloat
value_changed MFVec3f
}
3.2 NormalInterpolator節(jié)點(diǎn)參數(shù)解析
key可見(jiàn)域指定一個(gè)在[0.0,1.0]范圍內(nèi)遞減順序的關(guān)鍵浮點(diǎn)時(shí)刻列表。其域值通過(guò)set_key域(入事件)設(shè)置,新的key域值通過(guò)key_changed域(出事件)輸出。
keyValue可見(jiàn)域指定一個(gè)關(guān)鍵法向量矢量列表,每個(gè)法向量矢量由3個(gè)(X,Y,Z)分量構(gòu)成。同樣keyValue域值通過(guò)set_keyValue設(shè)置,通過(guò)keyValue_changed輸出。
當(dāng)輸入接口set_fraction收到一個(gè)時(shí)刻時(shí),NormalInterpolator節(jié)點(diǎn)根據(jù)關(guān)鍵時(shí)刻列表和與其對(duì)應(yīng)的關(guān)鍵法向量子列表計(jì)算出一個(gè)法向量;輸入接口value_changed輸出的法向量矢量被逐點(diǎn)插入,NormalInterpolator節(jié)點(diǎn)對(duì)一個(gè)輸入時(shí)刻t的輸出法向量矢量列表的計(jì)算過(guò)程為:
(1) 掃描關(guān)鍵時(shí)刻t,找出1對(duì)相鄰時(shí)刻t1和t2,且滿足{t1≤t≤t2};
(2) 取得相應(yīng)的關(guān)鍵法向量矢量列表對(duì);
(3) 在關(guān)鍵法向量矢量列表中線性插入,計(jì)算出中間法向量矢量子列表。
若t1時(shí)刻值和t2時(shí)刻值關(guān)系為Vt1=Vt2,則動(dòng)畫軌跡產(chǎn)生一個(gè)中斷或跳躍;
若t1時(shí)刻值和t時(shí)刻值關(guān)系為Vt1>Vt,則對(duì)應(yīng)t1時(shí)刻的關(guān)鍵法向量矢量子列表用于NormalInterpolator節(jié)點(diǎn);
若t時(shí)刻值和t2時(shí)刻值關(guān)系為Vt2 通過(guò)NormalInterpolator節(jié)點(diǎn)在一個(gè)三維造型某面上形成的明暗動(dòng)態(tài)變化的賦值如下: DEF DEFPath NormalInterpolator { key[ 0.0,0.2,0.4,0.8,1.0 ] keyValue[ 1.0 0.0 0.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 1.0 0.0 0.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 1.0 0.0 0.0, 0.0 0.0 1.0, 0.0 0.0 0.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 1.0 0.0 0.0, 1.0 0.0 0.0, 0.0 0.0 1.0, 0.0 0.0 1.0, 0.0 0.0 1.0 ] } 則三維造型在該NormalInterpolator補(bǔ)插器節(jié)點(diǎn)作用的運(yùn)行效果(任意3個(gè)時(shí)刻)如圖5所示。 4 結(jié) 語(yǔ) 本文討論并給出了VRML下基于法向量(Nor-mal)節(jié)點(diǎn)和法向量補(bǔ)插器(NormalInterpolator)節(jié)點(diǎn)對(duì)三維造型進(jìn)行表面棱析和色彩變換的實(shí)現(xiàn)方法。方法 圖5 NormalInterpolator節(jié)點(diǎn)作用下的三維造型渲染效果 可有效使法向量及其補(bǔ)插器節(jié)點(diǎn)應(yīng)用于Shape模型節(jié)點(diǎn)中的geometry幾何節(jié)點(diǎn)的IndexedFaceSet等子節(jié)點(diǎn)中;利用Appearance外觀子節(jié)點(diǎn)、Material外觀材質(zhì)子節(jié)點(diǎn)描述三維造型的顏色、材質(zhì)漫反射、環(huán)境光反射、外觀材質(zhì)密度和透明度等高級(jí)渲染,使三維造型的虛擬仿真效果更生動(dòng)、鮮活。 參考文獻(xiàn) [1]Naim R El-Far,Nicolas D Georganas,Abdulmotaleb El-Saddik.A Collision Detection Algorithm for Point-Like Haptic Interactions in Highly Detailed Virtual Environments[C].VECIMS 2007-IEEE International Conference on Virtual Environments,Human-Computer Interfaces,and Measurement Systems,2007:25-27. [2]John Ketchel,Pierre Larochelle.Collision Detection of Cylindrical Rigid Bodies for Motion Planning[J].Proceedings ofthe 2006 IEEE International Conference on Robotics and Automation,2006:1 530-1 535. [3]Tomaz Amon,Vojko Valencic.VRMLEnhanced Learning in Biology and Medicine[J].Future GenerationComputer Systems,2000,17(1):1-6. [4]白偉冬,周之平,張颯兵,等.關(guān)于VRML 中物體間碰撞檢測(cè)的研究[J].計(jì)算機(jī)應(yīng)用研究,2004(6):128-133. [5]黃文麗.VRML語(yǔ)言入門與應(yīng)用[M].北京:中國(guó)鐵道出版社,2003. [6] 黃有群,吳冰冰.基于三角網(wǎng)格的三維地形局部貼圖方法的研究\\.沈陽(yáng)工業(yè)大學(xué)學(xué)報(bào),2007(5):560-563. 作者簡(jiǎn)介 王昊鵬 男,1978年出生,吉林長(zhǎng)春人,空軍航空大學(xué),講師,博士。主要研究方向?yàn)樘摂M現(xiàn)實(shí)仿真,計(jì)算機(jī)教育。 李東旭 女,1978年出生,遼寧本溪人,空軍航空大學(xué),講師。主要研究方向計(jì)算機(jī)軟件設(shè)計(jì)與教育。 注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文