張博 劉偉 剛芹果
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,建筑結(jié)構(gòu)設(shè)計(jì)較傳統(tǒng)模式有了巨大的飛躍。但目前的結(jié)構(gòu)設(shè)計(jì)技術(shù)還處于半自動(dòng)化狀態(tài),結(jié)構(gòu)的復(fù)雜性與結(jié)構(gòu)設(shè)計(jì)技術(shù)的發(fā)展程度之間的矛盾突出出來(lái),已成為目前結(jié)構(gòu)設(shè)計(jì)的瓶頸[1]。傳統(tǒng)的ANSIS,FLA,SAP2000等結(jié)構(gòu)分析工具雖然可以表現(xiàn)三維結(jié)構(gòu)應(yīng)力和變形,但不能將結(jié)構(gòu)真實(shí)的材質(zhì)和所處環(huán)境展現(xiàn)出來(lái),同時(shí)缺乏良好的人機(jī)交互能力,操作也比較復(fù)雜。而像3DSMAX,MAYA,ProE等三維建模軟件又只能表示模型的幾何信息。因此在虛擬場(chǎng)景中的動(dòng)態(tài)交互式設(shè)計(jì)必然會(huì)成為建筑結(jié)構(gòu)設(shè)計(jì)的發(fā)展趨勢(shì)。
國(guó)內(nèi)在虛擬現(xiàn)實(shí)方面的研究主要集中于飛機(jī)制造、航天、軍事、醫(yī)學(xué)等領(lǐng)域,而在結(jié)構(gòu)工程領(lǐng)域的應(yīng)用尚沒(méi)有成熟的成果出現(xiàn)[3]。本文對(duì)虛擬現(xiàn)實(shí)技術(shù)在結(jié)構(gòu)分析中的應(yīng)用進(jìn)行了初步研究,以框架結(jié)構(gòu)為例,利用VRML中節(jié)點(diǎn)編輯的建模功能和路由的交互功能,實(shí)現(xiàn)了在虛擬現(xiàn)實(shí)下的框架結(jié)構(gòu)分析,并建造出了一個(gè)逼真的三維交互式結(jié)構(gòu)分析的虛擬場(chǎng)景,為今后進(jìn)一步研究虛擬現(xiàn)實(shí)技術(shù)在其他結(jié)構(gòu)分析中的應(yīng)用奠定了基礎(chǔ)。
基于虛擬現(xiàn)實(shí)語(yǔ)言的特點(diǎn),在虛擬現(xiàn)實(shí)下的結(jié)構(gòu)分析過(guò)程可分為如下四個(gè)主要步驟進(jìn)行:結(jié)構(gòu)造型建模、結(jié)構(gòu)分析、交互功能設(shè)計(jì)及場(chǎng)景的渲染等。它們之間的數(shù)據(jù)傳遞關(guān)系如圖1所示。
在進(jìn)行框架結(jié)構(gòu)分析時(shí),造型建模有兩種方式:如基本構(gòu)件和整體結(jié)構(gòu)較為簡(jiǎn)單,可提取結(jié)構(gòu)幾何信息后,直接用VRML編程語(yǔ)言進(jìn)行初步建模;如遇到特殊構(gòu)件或具有特殊要求等不規(guī)則的結(jié)構(gòu)形式,可先用3DSMAX或UG建模軟件進(jìn)行實(shí)體建模,再將其輸出為VRML(*.wrl)文件格式并導(dǎo)入VR編輯器進(jìn)行處理。
為滿足交互控制要求和結(jié)構(gòu)自身的變形特點(diǎn),需在虛擬環(huán)境下對(duì)基本構(gòu)件及結(jié)構(gòu)進(jìn)行處理。如結(jié)構(gòu)形式較為簡(jiǎn)單,在編輯器下整理模型節(jié)點(diǎn),方便編輯使用即可;如果結(jié)構(gòu)不規(guī)則或施加荷載后的應(yīng)力變形不能用單一造型實(shí)現(xiàn),則模型構(gòu)件應(yīng)根據(jù)結(jié)構(gòu)實(shí)際尺寸并參考3DSMAX建模數(shù)據(jù),用節(jié)點(diǎn)坐標(biāo)形式表示,以便后續(xù)工作的順利進(jìn)行。
框架結(jié)構(gòu)受力分析及位移計(jì)算可以按照建筑結(jié)構(gòu)規(guī)范上的理論進(jìn)行分析。具體分析方法可分為兩種:1)利用VRML的程序腳本和Script節(jié)點(diǎn),將結(jié)構(gòu)力學(xué)分析的解析表達(dá)式編入其中,通過(guò)定義名字、域、事件及url或創(chuàng)建新節(jié)點(diǎn)(其中,url中使用的是JavaScript函數(shù))用于復(fù)雜計(jì)算;2)用有限元方法在虛擬現(xiàn)實(shí)外部環(huán)境下將分析過(guò)程實(shí)現(xiàn)后,用VRML中的Java語(yǔ)言調(diào)用相應(yīng)程序,將計(jì)算得出的受力及變形數(shù)據(jù)與結(jié)構(gòu)幾何信息相對(duì)應(yīng),從而實(shí)現(xiàn)虛擬環(huán)境下的結(jié)構(gòu)受任意荷載后的變形分析。
對(duì)于VRM L場(chǎng)景在結(jié)構(gòu)中的應(yīng)用來(lái)說(shuō),首先是要讓用戶感受到結(jié)構(gòu)生動(dòng)逼真的動(dòng)畫(huà)效果,這需要用插值器來(lái)實(shí)現(xiàn)。通過(guò)對(duì)相應(yīng)作用的插值器進(jìn)行節(jié)點(diǎn)編輯,控制相應(yīng)插值器下的參數(shù)變化,再由路由將這些事件連接起來(lái),就可得到想要的動(dòng)畫(huà)效果。
僅僅讓用戶感受到結(jié)構(gòu)生動(dòng)逼真的動(dòng)畫(huà)效果是不夠的,還需要讓用戶通過(guò)控制場(chǎng)景使動(dòng)畫(huà)具有實(shí)時(shí)性和可控制性,以實(shí)現(xiàn)結(jié)構(gòu)分析的交互功能。這應(yīng)用傳感器節(jié)點(diǎn)來(lái)實(shí)現(xiàn),首先要根據(jù)用戶的控制需求選擇合適的傳感器,再根據(jù)結(jié)構(gòu)分析后的數(shù)據(jù)設(shè)置其下參數(shù)變量。設(shè)置路由,用來(lái)檢測(cè)瀏覽者在虛擬場(chǎng)景中的動(dòng)作,通過(guò)事件的傳遞,實(shí)現(xiàn)用戶和虛擬環(huán)境之間的交互。用路由語(yǔ)句將接觸傳感器感知用戶按下鼠標(biāo)操作的事件與時(shí)間傳感器的開(kāi)閉狀態(tài)連接在一起。當(dāng)在造型上按下鼠標(biāo)左鍵不松開(kāi)時(shí),路由將is-Active=TURE的事件傳給時(shí)間傳感器的enabled域,把其值改為T(mén)URE,開(kāi)啟時(shí)間傳感器,使位移動(dòng)畫(huà)開(kāi)始運(yùn)行,再把關(guān)鍵點(diǎn)上的值由set-fraction接收再通過(guò)value-changed發(fā)送出,即實(shí)現(xiàn)了結(jié)構(gòu)受力變形與用戶動(dòng)作之間的交互。
虛擬現(xiàn)實(shí)技術(shù)應(yīng)用在結(jié)構(gòu)分析中一個(gè)最大的優(yōu)勢(shì)在于能使其虛擬場(chǎng)景更逼真,更接近現(xiàn)實(shí)世界,這就需要在VRML中添加場(chǎng)景信息,對(duì)場(chǎng)景的環(huán)境進(jìn)行設(shè)置。如視點(diǎn)Viewpoint{},光照節(jié)點(diǎn)Light{},紋理節(jié)點(diǎn) Texture{},霧化Fog{}和聲音節(jié)點(diǎn)Sound{}等,通過(guò)設(shè)置其相應(yīng)的參數(shù),可達(dá)到用戶想要的最佳虛擬場(chǎng)景效果。
考慮到框架實(shí)際側(cè)移的變形特點(diǎn),應(yīng)用3DSMAX軟件中的loft命令對(duì)柱進(jìn)行了建模,以便導(dǎo)入VR后是節(jié)點(diǎn)形式作為柱彎曲時(shí)的關(guān)鍵點(diǎn)。為滿足交互控制要求和結(jié)構(gòu)自身的變形特點(diǎn),在虛擬環(huán)境下對(duì)基本構(gòu)件及結(jié)構(gòu)進(jìn)行了相應(yīng)的處理,如構(gòu)件名稱的系統(tǒng)化,插入坐標(biāo)修改等,具體模型如圖3所示。
本例中此模型構(gòu)件應(yīng)用了節(jié)點(diǎn)坐標(biāo)表示,根據(jù)結(jié)構(gòu)實(shí)際尺寸并參考3DSMAX建模數(shù)據(jù),通過(guò)位置插補(bǔ)器PositionInterpolator{}控制節(jié)點(diǎn)或結(jié)構(gòu)的坐標(biāo),實(shí)現(xiàn)梁構(gòu)件的平移。通過(guò)坐標(biāo)差值器CoordinateInterpolator{}控制柱的變形,從而達(dá)到動(dòng)畫(huà)一定的效果。其中模型只取一個(gè)最大位移進(jìn)行線性差值,由于側(cè)移量較小,每層柱的側(cè)移為擴(kuò)大后數(shù)值。進(jìn)入播放器,即可進(jìn)行交互式動(dòng)畫(huà)變形演示,部分側(cè)移如圖4所示。
本例中交互功能的實(shí)現(xiàn)應(yīng)用了路由,將接觸傳感器Touch-Sensor{}和時(shí)間傳感器TimeSensor{}連接在一起。當(dāng)用戶在虛擬場(chǎng)景中用鼠標(biāo)接觸結(jié)構(gòu)時(shí),通過(guò)點(diǎn)擊鼠標(biāo)觸發(fā)事件,實(shí)現(xiàn)用戶和虛擬環(huán)境之間的交互。
對(duì)此場(chǎng)景進(jìn)行渲染時(shí),在程序中加入了背景,視點(diǎn)Viewpoint{},光照節(jié)點(diǎn)Light{},霧化Fog{}用于表現(xiàn)與真實(shí)環(huán)境相符的虛擬場(chǎng)景,用紋理節(jié)點(diǎn)Texture{}將混凝土材質(zhì)加入模型中,以體現(xiàn)其應(yīng)用的材料,用聲音節(jié)點(diǎn)Sound{}使結(jié)構(gòu)變形過(guò)程有感官效果。其中,背景和紋理使用JPG和GIF格式文件,聲音使用了聲音剪輯節(jié)點(diǎn)AudioClip{}和WAV聲源,效果如圖5~圖7所示。
1)用3DS MAX建模軟件和虛擬現(xiàn)實(shí)語(yǔ)言建立了框架結(jié)構(gòu)的三維模型,將虛擬現(xiàn)實(shí)技術(shù)應(yīng)用到框架結(jié)構(gòu)的受力變形分析中,通過(guò)對(duì)VRML的Script節(jié)點(diǎn)編輯,實(shí)現(xiàn)了框架結(jié)構(gòu)變形的三維動(dòng)態(tài)交互式模型,用戶可通過(guò)簡(jiǎn)單的鼠標(biāo)操作實(shí)時(shí)的觀察框架結(jié)構(gòu)的動(dòng)態(tài)變形。2)通過(guò)添加視點(diǎn)Viewpoint{},光照 Light{},紋理Texture{},霧化Fog{}和聲音Sound{}等節(jié)點(diǎn)使結(jié)構(gòu)和基本構(gòu)件在虛擬環(huán)境中形象逼真的顯示了變形過(guò)程,使觀看者沉浸其中,具有良好的感官效果。3)在結(jié)構(gòu)分析中應(yīng)用虛擬現(xiàn)實(shí)技術(shù),一個(gè)最大的優(yōu)勢(shì)在于能使其虛擬場(chǎng)景更逼真,更接近現(xiàn)實(shí)世界,大大提高了結(jié)構(gòu)分析的可視性,使設(shè)計(jì)工作更人性化,更富有創(chuàng)造性。通過(guò)對(duì)虛擬現(xiàn)實(shí)技術(shù)的進(jìn)一步開(kāi)發(fā),還可將結(jié)構(gòu)信息、結(jié)構(gòu)應(yīng)力應(yīng)變分析一體化,使結(jié)構(gòu)分析和設(shè)計(jì)更簡(jiǎn)便、更精確、更快速。所以,虛擬現(xiàn)實(shí)技術(shù)在結(jié)構(gòu)分析和設(shè)計(jì)中具有廣闊的發(fā)展前景。
[1] 周玉石.結(jié)構(gòu)設(shè)計(jì)的虛擬原型技術(shù)與應(yīng)用研究[D].上海:同濟(jì)大學(xué)博士論文,2007.
[2] 胡小強(qiáng).虛擬現(xiàn)實(shí)技術(shù)基礎(chǔ)與應(yīng)用[M].北京:北京郵電大學(xué)出版社,2009.
[3] 汪德江,張基濤.基于虛擬現(xiàn)實(shí)技術(shù)的建筑結(jié)構(gòu)設(shè)計(jì)[J].結(jié)構(gòu)工程師,2004,20(5):61-63.
[4] 劉 怡,張洪定,崔 欣.虛擬現(xiàn)實(shí)VRML程序設(shè)計(jì)[M].天津:南開(kāi)大學(xué)出版社,2007.
[5] 呂西林.高層建筑結(jié)構(gòu)[M].武漢:武漢工業(yè)大學(xué)出版社,2001.
[6] 嚴(yán) 鈞,劉永健.虛擬現(xiàn)實(shí)技術(shù)在土木建筑工程中的應(yīng)用研究[J].長(zhǎng)沙交通學(xué)院報(bào),2003,19(1):58-62.
[7] 高嘉爽,楊建國(guó),方洪淵,等.基于VRM L的焊接有限元分析前處理開(kāi)發(fā)[J].焊接學(xué)報(bào),2008,29(4):93-96.
[8] 郭 軼,陳岱林.基于虛擬現(xiàn)實(shí)技術(shù)的三維園林景觀設(shè)計(jì)仿真系統(tǒng)[J].計(jì)算機(jī)仿真,2009,26(2):320-324.