【摘 要】為了能提供給用戶具有真實(shí)感和沉浸感的新一代用戶界面,三維交互式顯示技術(shù)得到了科學(xué)界和工程界的重視。三維交互式顯示技術(shù)運(yùn)用AutoCAD、3DMAX等三維建模軟件建立逼真的三維模型,模型導(dǎo)入開發(fā)環(huán)境中通過連接層與底層數(shù)據(jù)庫(kù)進(jìn)行交互,最終實(shí)現(xiàn)將三維模型信息動(dòng)態(tài)實(shí)時(shí)的反饋給用戶同時(shí)提供了立體直觀的視覺體驗(yàn)。
【關(guān)鍵詞】煤場(chǎng) 三維立體 數(shù)據(jù)庫(kù) WPF 交互顯示
一、引言
社會(huì)經(jīng)濟(jì)正在飛速發(fā)展,尤其是在數(shù)字化的時(shí)代背景下的體驗(yàn)經(jīng)濟(jì)不斷發(fā)展,使得人們對(duì)于信息資源的認(rèn)識(shí)發(fā)生了巨大的變化。同時(shí)在這種形勢(shì)下,用戶對(duì)于信息的獲取也與以往單一、線性的方式有所不同,呈現(xiàn)出多維性、非線性等開放式特點(diǎn)。通常的二維平面顯示在某些方面已不能滿足人類的需求,技術(shù)上存在著較大缺陷,人們希望顯示器能真實(shí)地還原顯示出空間的三維信息。通過具有實(shí)時(shí)互動(dòng)的三維交互式顯示技術(shù)來獲得更逼真、更生動(dòng)的體驗(yàn)。三維交互方式與真實(shí)世界密切相關(guān),三維環(huán)境中使得用戶在應(yīng)用中有更直觀的感覺。因此,三維立體交互式顯示技術(shù)應(yīng)運(yùn)而生,并得到了不斷發(fā)展,成為當(dāng)今的一個(gè)研究熱點(diǎn)。
但在發(fā)展過程中還存在著諸多問題。由于HTML缺乏空間立體描述和對(duì)多媒體文件的處理能力較差,無(wú)法與底層數(shù)據(jù)庫(kù)直接關(guān)聯(lián),影響了界面的交互效果,真實(shí)物理世界中物體的動(dòng)作還無(wú)法精確的表現(xiàn)出來,缺乏沉浸感;針對(duì)以上問題,可以用3DMAX等高級(jí)建模軟件,對(duì)實(shí)體進(jìn)行嚴(yán)格的坐標(biāo)計(jì)算,精確的描繪出自然界中的物體模型,增強(qiáng)用戶的真實(shí)體驗(yàn)感和沉浸感。再結(jié)合Visual Studio環(huán)境進(jìn)行面向?qū)ο蟮倪壿嬚Z(yǔ)言編寫,通過連接層和邏輯代碼的控制與數(shù)據(jù)庫(kù)進(jìn)行交互,對(duì)數(shù)據(jù)的變化迅速的在前端表現(xiàn)出來,精確的反饋給用戶。
二、三維交互式界面
三維交互式界面[1]是動(dòng)態(tài)的的,是基本的html語(yǔ)法規(guī)范與Java、VB、VC等高級(jí)程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)編程等多種技術(shù)的融合。交互式界面能與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行交互。三維交互式界面需要在制作動(dòng)態(tài)頁(yè)面的基礎(chǔ)上結(jié)合三維建模工具,例如AutoCAD或3DMAX等,技術(shù)的難點(diǎn)在于如何建立逼真的立體模型;將模型導(dǎo)入網(wǎng)頁(yè)后如何克服光線、視角、材質(zhì)丟失等問題。
(一)AutoCAD與Flash建模
Flash是一款平面矢量動(dòng)畫制作軟件,其創(chuàng)建的圖形不具備三維信息,也可以直接插入HTML中,單獨(dú)制作成網(wǎng)頁(yè),與AutoCAD結(jié)合可以克服Flash[2]只能制做二維動(dòng)畫的局限性,并廣泛應(yīng)用于機(jī)械、建筑、航空等領(lǐng)域進(jìn)行三維動(dòng)畫的模擬仿真。首先運(yùn)用AutoCAD的三維實(shí)體建模和布爾運(yùn)算功創(chuàng)建立體的三維模型,在Flash中編輯修改具有三維效果的圖元文件并潤(rùn)色。在Flash中運(yùn)用補(bǔ)間動(dòng)畫、逐幀動(dòng)畫等技術(shù)實(shí)現(xiàn)三維動(dòng)畫。
Flash也可以與數(shù)據(jù)庫(kù)關(guān)聯(lián),實(shí)現(xiàn)對(duì)模型的動(dòng)態(tài)操作,F(xiàn)lash不能直接查詢數(shù)據(jù)庫(kù),要通過夠訪問ASP網(wǎng)頁(yè)來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的交互。Flash與數(shù)據(jù)庫(kù)的連接可看成是3層架構(gòu),F(xiàn)lash是應(yīng)用層,ASP是連接層,數(shù)據(jù)庫(kù)是底層。Flash應(yīng)用程序發(fā)出數(shù)據(jù)請(qǐng)求給ASP腳本,然后對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)調(diào)用,將原始數(shù)據(jù)反饋給ASP連接層,最后將文本數(shù)據(jù)傳遞回應(yīng)用層。
(二)3DMAX建模
3DMAX的高性能工具集可制作逼真的三維立體并呈現(xiàn)真實(shí)的三維的場(chǎng)景。3DMAX的優(yōu)勢(shì)是可以利用材質(zhì)編輯器、高質(zhì)量硬件渲染器、紋理貼圖以及HDR合成器,制作寫實(shí)圖像[3]。將3DMAX建立的模型導(dǎo)入Expression Blend 中進(jìn)行進(jìn)一步調(diào)整,使用豐富的布局和自定義可視效果,突出顯示任務(wù)必需的屏幕元素,或者淡化次要元素。最終在web上顯示的模型效果就會(huì)達(dá)到最佳狀態(tài)并生成 WPF應(yīng)用程序,所顯示的設(shè)計(jì)方案由 Xaml 來表示。它可以與 Visual Studio 2010 中的WPF[4]頁(yè)項(xiàng)目交互使用,后臺(tái)通過ADO.NET訪問數(shù)據(jù)庫(kù)實(shí)現(xiàn)模型與數(shù)據(jù)庫(kù)的交互[5]。
三、三維交互式顯示技術(shù)應(yīng)用實(shí)例
將三維交互式顯示技術(shù)與火力發(fā)電廠燃料與燃煤信息管理系統(tǒng)的視圖模塊相結(jié)合,通過模擬煤場(chǎng)三維場(chǎng)景、建立系統(tǒng)數(shù)據(jù)庫(kù)實(shí)現(xiàn)交互。該項(xiàng)目中的模型對(duì)象為子煤場(chǎng)中的煤堆模型,三維煤堆的模型設(shè)計(jì)對(duì)于整個(gè)三維顯示模塊至關(guān)重要,模型建立的成功與否直接關(guān)系著整個(gè)模塊總體效果,所以在建模工具上選擇3DMAX。通過了解實(shí)際煤場(chǎng)中煤堆的形狀,結(jié)合煤場(chǎng)現(xiàn)場(chǎng)的圖片,對(duì)煤堆三維模型進(jìn)行了設(shè)計(jì),并調(diào)整三維模型的燈光和視角以及攝像機(jī)角度,使得三維模型在一個(gè)最佳的視角。建立煤堆模型如圖1所示。
圖1 煤堆模型
圖2 變化后的煤堆模型
確定煤堆的三維模型后,將模型以“obj”格式導(dǎo)出至Microsoft Expression Blend 3中。通過 Blend 3可以獲得表示三維模型的Xaml源碼,利用三維模型的源碼實(shí)現(xiàn)對(duì)模型對(duì)象的調(diào)用。
模型的控制應(yīng)用WPF中的動(dòng)畫功能,通過動(dòng)畫可以創(chuàng)建動(dòng)態(tài)交互界面。動(dòng)畫是WPF模型的核心部分,動(dòng)畫本質(zhì)就是在一個(gè)時(shí)間段里對(duì)象位置、角度、顏色、透明度等屬性值的連續(xù)變化。WPF使用聲明的方式創(chuàng)建動(dòng)畫,用封裝好的類配置動(dòng)畫。訪問數(shù)據(jù)庫(kù)是通過ADO.NET[6]技術(shù),項(xiàng)目中煤堆模型的變化比率是按照數(shù)據(jù)庫(kù)中煤的數(shù)量與煤堆總量的比例計(jì)算得到。煤的數(shù)量可以通過三維模型的大小線性顯示給用戶,程序中運(yùn)用了DispatcherTimer方法,設(shè)置刷新數(shù)據(jù)庫(kù)的時(shí)間為10秒,每10秒鐘刷新讀取一次數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)中變化的煤量傳給模型,模型根據(jù)具體數(shù)量顯示大小。 如圖2 顯示了煤區(qū)中變化后的煤堆。
四、結(jié)論
將三維建模軟件與底層數(shù)據(jù)庫(kù)進(jìn)行交互就可在UI界面中制作出逼真的三維動(dòng)畫,可廣泛應(yīng)用于機(jī)械、建筑、航空等領(lǐng)域進(jìn)行三維模型的仿真與展示。本文已經(jīng)完成了三維交互式顯示技術(shù)的目標(biāo)。并在實(shí)際的項(xiàng)目中得到應(yīng)用,在交互性上也取得了良好的效果,由于沒有扎實(shí)的美工技術(shù)支持,模型的真實(shí)感不強(qiáng),需要在建立模型的過程中做進(jìn)一步研究。通過前端美工基礎(chǔ)與后臺(tái)技術(shù)的結(jié)合,進(jìn)一步提高系統(tǒng)的整體效果。
參考文獻(xiàn):
[1]初士軍,基于web3D的虛擬鉆井培訓(xùn)系統(tǒng)研究與實(shí)現(xiàn)。東北石油大學(xué)碩士生畢業(yè)論文。2012,3
[2] 黃立婧,運(yùn)用flash 和AutoCAD 實(shí)現(xiàn)三維動(dòng)畫的研究。寧波職業(yè)技術(shù)學(xué)院學(xué)報(bào) 2008,10 第12卷第5期
[3]宋楊,基于3DMAX結(jié)構(gòu)建模的兩相流系統(tǒng)可視化應(yīng)用研究。哈爾濱理工大學(xué)碩士生畢業(yè)論文。2011,3
[4]張洪定,孟冬梅,基于Expression Blend 4中文版WPF和Silverlight項(xiàng)目設(shè)計(jì)基礎(chǔ),清華大學(xué)出版社,2011.8.
[5]李濤,劉凱奎,王永皎,Visual C++ SQL Server數(shù)據(jù)庫(kù)開發(fā)與實(shí)例,清華大學(xué)出版社,2006,7,1
[6] Cuiru Wang, Shuangxi Liu. SOA Based Electric Power Real-time Data Warehouse[C].Workshop on Power Electronics and Intelligent Transportation System, Guangzhou, China, Aug 2008.