項(xiàng)敏敏
(銅陵學(xué)院電氣工程學(xué)院 安徽銅陵 244061)
銅鼓是少數(shù)民族世代相傳的獨(dú)特器物,它綿延數(shù)千年,流傳甚廣,銅鼓在先民心中不僅是一種器樂,也包含著權(quán)力的榮耀,財(cái)富的象征,并演變成少數(shù)民族虔誠祀禮的神器[1]。銅鼓最重要的文化意義就在于它的渾厚的音色以及瑰麗的紋飾,但是由于某些自然因素和人為因素,使得很多古文物銅鼓都破碎殘損,鼓面受損,使它也失去原本音色,由于銅鼓鼓面特殊性,使得傳統(tǒng)手工制作修復(fù)手段很難達(dá)到理想的狀態(tài),不盡人意,鼓面修復(fù)進(jìn)而恢復(fù)其原貌對文物工作者來說是個(gè)巨大的挑戰(zhàn)。隨著科學(xué)技術(shù)的發(fā)展,虛擬現(xiàn)實(shí)技術(shù)應(yīng)用而生,廣泛應(yīng)用于各大領(lǐng)域,如高端裝備領(lǐng)域包括機(jī)械工業(yè)、航空航天、汽車仿真等,能源領(lǐng)域包括核電仿真、電力仿真、煤炭礦井等,在其他領(lǐng)域包括高等教育、應(yīng)急演練、建筑藝術(shù)、科普文博等,利用虛擬現(xiàn)實(shí)技術(shù)結(jié)合網(wǎng)絡(luò)技術(shù)對古文物文化遺產(chǎn)進(jìn)行虛擬復(fù)原并進(jìn)行網(wǎng)絡(luò)展示已經(jīng)成為熱門。針對這種熱門趨勢,本文利用虛擬現(xiàn)實(shí)技術(shù)恢復(fù)銅鼓的外形,重點(diǎn)闡述了如何利用X3D坐標(biāo)點(diǎn)實(shí)時(shí)處理技術(shù)對銅鼓鼓面不同位置的聲音進(jìn)行匹配,實(shí)現(xiàn)在虛擬的計(jì)算機(jī)世界里,完美重現(xiàn)古文物銅鼓。
X3D中的造型具有幾何尺寸和外觀,兩者由一個(gè)Shape節(jié)點(diǎn)定義。這些特征定義了創(chuàng)建和放置在虛擬空問中的造型。一個(gè)造型的確切幾何尺寸和外觀由給定節(jié)點(diǎn)和節(jié)點(diǎn)域的選擇值控制。造型的外觀由Appearance和Material節(jié)點(diǎn)來描述,X3D 提供 4 種原始幾何造型:Sphere、Box、cylinder和Cone,任何復(fù)雜的物體都可以由這4種原始幾何造型構(gòu)成[2]。利用 X3D節(jié)點(diǎn)直接編寫3D模型對于一部分不規(guī)則的模型可以采用擠壓節(jié)點(diǎn)Extrusion來實(shí)現(xiàn)。如果模型較復(fù)雜,僅僅根據(jù)根據(jù) X3D語法構(gòu)造準(zhǔn)確的三維模型是很困難的,需要采用外部建模軟件來建模,本文的銅鼓模型是不規(guī)則物體,無法使用X3D直接生成,所以需要利用第三方的造型軟件來建模,然后通過相應(yīng)的接口導(dǎo)出X3D文件,最后編輯X3D源程序的相關(guān)部分來實(shí)現(xiàn)[3]。
本文模型的具體做法首先利用AutoCAD的線條勾勒出銅鼓的構(gòu)造線條,之后將該樣條線導(dǎo)入到3DS MAX中進(jìn)行細(xì)致處理,在此過程中需要對每一個(gè)轉(zhuǎn)角點(diǎn)進(jìn)行圓滑處理,以提高模型的精細(xì)度,之后使用車削功能模擬出銅鼓的基本模型,再使用渲染功能中的位圖功能對該模型的側(cè)面以及正面進(jìn)行貼圖渲染,但由于銅鼓內(nèi)部是鏤空的,所以必須使用.JPG格式的圖片進(jìn)行貼圖渲染,否則導(dǎo)出X3D文件之后模型會(huì)出現(xiàn)銅鼓內(nèi)部無法渲染的問題。如下圖1所示。
圖1 三維建模
利用3DSMAX構(gòu)建出銅鼓模型后,由于3DSMAX無法直接導(dǎo)出X3D模型,所以只能夠先導(dǎo)出VRML文件,之后再利用X3D-Edit等軟件轉(zhuǎn)換為X3D文件。但是X3D虛擬場景一般是用于網(wǎng)頁瀏覽在開發(fā)過程中需要考慮渲染速度以及傳輸速度,不能一味追求3D模型的逼真度,所以在不影響模型逼真度的前提下,需要對模型進(jìn)行優(yōu)化盡量減少模型線條數(shù)以及面數(shù)[4]。
虛擬場景內(nèi)坐標(biāo)是定義物體位置的關(guān)鍵屬性,在X3D內(nèi)模型的坐標(biāo)是由translation子節(jié)點(diǎn)定義的,屬于SFVec3f類型,該子節(jié)點(diǎn)的定義局部坐標(biāo)系統(tǒng)原點(diǎn)的位置,以米制計(jì)算的x、y、z值[5]。但通過該子節(jié)點(diǎn)只能夠取得模型中心點(diǎn)的坐標(biāo),無法取得模型表面每個(gè)點(diǎn)的坐標(biāo)。在X3D場景內(nèi)提供了TouchSensor節(jié)點(diǎn),用于跟蹤指點(diǎn)設(shè)備的位置和狀態(tài),檢測用戶點(diǎn)擊幾何對象的時(shí)間。該節(jié)點(diǎn)內(nèi)部提供hitPoint_changed事件,用于輸出在子節(jié)點(diǎn)局部坐標(biāo)系統(tǒng)點(diǎn)擊點(diǎn)的定位,輸出類型為SFVec3f以米制計(jì)算的x、y、z值,流程圖如圖2所示。
圖2 流程圖
在銅鼓模擬中,由于銅鼓鼓面與地面垂直,與鼓槌坐標(biāo)系不同如果直接進(jìn)行賦值的話會(huì)導(dǎo)致鼓槌位置偏移與坐標(biāo)紊亂,所以需要使用ROUTE節(jié)點(diǎn)把hitpoint_changed事件輸出的坐標(biāo)值賦值給JavaScript節(jié)點(diǎn)內(nèi)的事件進(jìn)行相應(yīng)的處理,之后把處理過的坐標(biāo)系賦值給鼓槌以達(dá)到鼓槌敲擊鼓面的效果。關(guān)鍵代碼如下所示。
如上述代碼所示,當(dāng)鼠標(biāo)點(diǎn)擊鼓面時(shí)hitPoint_changed事件輸出了一組坐標(biāo)系,并通過ROUTE節(jié)點(diǎn)把該坐標(biāo)系傳值給JavaScript腳本內(nèi)的chuizijin事件,該事件所接受到的坐標(biāo)系是以“value”命名的SFVec3f類型的坐標(biāo)系,value[0]表示X坐標(biāo)值、value[1]表示Y坐標(biāo)值、value[2]表示Z坐標(biāo)值,鼓面坐標(biāo)系與鼓槌坐標(biāo)系不同,兩個(gè)模型并不在同一個(gè)坐標(biāo)系內(nèi),在賦值時(shí)需要把value坐標(biāo)系內(nèi)的X軸的坐標(biāo)值賦值給鼓槌的Y軸坐標(biāo),而把value坐標(biāo)系內(nèi)的Y軸的坐標(biāo)值賦值給鼓槌的Y軸坐標(biāo),并且由于整個(gè)銅鼓使用的是獨(dú)立坐標(biāo)系,比世界坐標(biāo)系小,所以在賦值過程中需要把坐標(biāo)值進(jìn)行相應(yīng)的放大計(jì)算。如圖2所示。
圖2 坐標(biāo)系賦值
在X3D場景內(nèi)使用hitPoint_changed事件輸出鼠標(biāo)點(diǎn)擊點(diǎn)的坐標(biāo)系,不僅可以給場景內(nèi)的模型賦值,還可以直接輸出為模型位移的參照點(diǎn)或輸出為文本作為場景搭建時(shí)的坐標(biāo)參照系,但是在使用過程中要注意場景內(nèi)部坐標(biāo)系的變化以及坐標(biāo)單位的變化。
本文利用虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)銅鼓外貌修復(fù)及音色匹配,在很大程度上縮短銅鼓修復(fù)的周期,也避免了對銅鼓造成二次損壞,盡可能向人們展示銅鼓的原本外貌。本文針對銅鼓鼓面紋飾及音色匹配問題,研究了一種基于X3D的坐標(biāo)點(diǎn)實(shí)時(shí)處理技術(shù),對虛擬銅鼓鼓面的不同位置進(jìn)行聲音匹配,最終實(shí)現(xiàn)了銅鼓的外形復(fù)原也實(shí)現(xiàn)了銅鼓的聲音復(fù)原。虛擬現(xiàn)實(shí)技術(shù)是一門新興的科學(xué)技術(shù),其應(yīng)用潛力和前景廣闊,這項(xiàng)技術(shù)在文物保護(hù)中的應(yīng)用還不夠完善,在很多地方還存在著進(jìn)步的地方。
參考文獻(xiàn):
[1]梁燕理.壯泰銅鼓文化比較研究[J].傳承,2016(5).
[2]劉立平,王育堅(jiān).基于X3D的虛擬校園交互技術(shù)研究與實(shí)現(xiàn)[J].北京聯(lián)合大學(xué)學(xué)報(bào)(自然科學(xué)版),2011(4).
[3]常立言.淺析虛擬現(xiàn)實(shí)發(fā)展現(xiàn)況及所面臨的技術(shù)難題[J].內(nèi)江科技,2017(6).
[4]黃坤.虛擬現(xiàn)實(shí)技術(shù)在工業(yè)設(shè)計(jì)中的應(yīng)用[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2017(11).
[5]付力婭.基于虛擬現(xiàn)實(shí)技術(shù)運(yùn)用的數(shù)字媒體交互方式嬗變研究[J].新媒體研究,2016(13).