[摘 要] 本文從三維建模、模型的優(yōu)化、三維顯示和交互的實(shí)現(xiàn)等方面探討現(xiàn)代電子商務(wù)網(wǎng)站中商品三維虛擬展示的實(shí)現(xiàn)方法和技術(shù)途徑。
[關(guān)鍵詞] VRML文件 3DMAX 優(yōu)化技術(shù) 交互實(shí)現(xiàn)
電子商務(wù)是利用互聯(lián)網(wǎng)進(jìn)行商品交易的商業(yè)活動(dòng),商品展示和陳列是電子商務(wù)網(wǎng)站的一個(gè)重要特征,目前國(guó)內(nèi)電子商務(wù)平臺(tái)所提供的商品展示方式基本都是平面的,而三維虛擬商品展示技術(shù)可以在網(wǎng)頁(yè)中將商品以立體方式交互展示,消費(fèi)者可以全方位觀看商品特征,直觀地了解商品信息。三維網(wǎng)站在商品展示的效果、真實(shí)性、互動(dòng)性、信息豐富程度、說(shuō)服力等方面具有無(wú)可比擬的優(yōu)勢(shì),也是電子商務(wù)技術(shù)發(fā)展的一個(gè)重要方向。本文致力于探索運(yùn)用現(xiàn)有基礎(chǔ)實(shí)現(xiàn)經(jīng)濟(jì)可行的商品三維虛擬展示的技術(shù)途徑。
一、商品三維虛擬建模技術(shù)的選擇
目前的虛擬現(xiàn)實(shí)三維建模技術(shù)中主要有基于幾何模型的三維建模技術(shù)和基于圖像的三維建模技術(shù)?;趲缀文P偷慕<夹g(shù)是以計(jì)算機(jī)圖形學(xué)為基礎(chǔ),用多邊形構(gòu)造虛擬對(duì)象三維幾何模型,然后進(jìn)行紋理映射、模型的可見(jiàn)消隱和控制參數(shù)的設(shè)定等?;趫D像的建模技術(shù)是利用照相機(jī)采集的靜態(tài)圖像或攝像機(jī)采集的動(dòng)態(tài)圖像作基礎(chǔ)數(shù)據(jù),經(jīng)過(guò)圖像處理生成仿真的三位模型。此建模方法需要高性能的照相與攝影裝備,比較適合于真實(shí)自然場(chǎng)景的仿真。
基于幾何模型的建模技術(shù)相對(duì)比較成熟,國(guó)內(nèi)外都研發(fā)了一些建模工具及控制集成軟件,這使得建模法在目前的實(shí)際應(yīng)用中相對(duì)比較廣泛。采用這種建模方式的技術(shù)有VRML技術(shù)、Java3D技術(shù)、Viewpoint技術(shù)、Cult3D技術(shù)等。另外,OpenGL、Direct3D也可以開(kāi)發(fā)虛擬現(xiàn)實(shí)系統(tǒng),但編程技術(shù)較難掌握。
VRML是一種跨平臺(tái)的面向?qū)ο蟮木W(wǎng)絡(luò)語(yǔ)言,是目前常用的基于WEB的虛擬現(xiàn)實(shí)構(gòu)造工具,用來(lái)描述和表現(xiàn)三維對(duì)象與三維場(chǎng)景。VRML文件可以直接嵌入到HTML文件中去,用戶(hù)只要具有Web和VRML瀏覽器就可以和三維虛擬對(duì)象進(jìn)行交互。VRML還可以建立與其它3D空間的超鏈接。VRML對(duì)象也可以由3DS MAX、AutoCAD、Rhino等三維空間工具可視化地生成。而3DS MAX生成的模型,能以VRML 文件格式輸出,使3DSMAX和VRML建立緊密的溝通關(guān)系,為商品的三維建模提供條件。雖然3DSMAX建模有一些缺陷,但對(duì)于大多數(shù)外觀不是非常復(fù)雜的商品,還是比較適合的,成本也不是很高,有利于電子商務(wù)網(wǎng)站高頻率更換商品的需求。所以采用VRML和3DMAX結(jié)合進(jìn)行商品三維建模的方法是相對(duì)比較經(jīng)濟(jì)可行的。
二、三維商品模型的建立方法
1.運(yùn)用VRML構(gòu)建形體相對(duì)簡(jiǎn)單的商品模型
VRML是一種解釋執(zhí)行、實(shí)時(shí)建模著色的文本程序,具有豐富的造型功能,節(jié)點(diǎn)(Node)和路由(Route)是VRML的基本要素,節(jié)點(diǎn)是構(gòu)成虛擬模型的基本單元,VRML通過(guò)節(jié)點(diǎn)進(jìn)行三維虛擬對(duì)象的描述,節(jié)點(diǎn)又由域和事件構(gòu)成。其中,域定義節(jié)點(diǎn)的屬性,事件定義用戶(hù)與場(chǎng)景之間的交互。路由是節(jié)點(diǎn)間傳送信息的途徑,通過(guò)發(fā)送一個(gè)事件使一個(gè)節(jié)點(diǎn)控制另一個(gè)節(jié)點(diǎn)。利用VRML提供的Box、Cone、Cylinder、Sphere等原始幾何造型節(jié)點(diǎn)和Group、Switch、Billboard等造型編組節(jié)點(diǎn)可以進(jìn)行基本幾何模型和組合模型的創(chuàng)建,運(yùn)用hape、Appearance、MaterialColor等外觀尺寸造型節(jié)點(diǎn)和ImageTexture、PixelTexture、MovieTexture、Normal等顏色紋理明暗節(jié)點(diǎn)以及ointLight、DirectionalLight、SpotLight等控制光源的節(jié)點(diǎn),可以對(duì)模型表面屬性進(jìn)行渲染;運(yùn)用Viewpoint、NavigationInfo控制視點(diǎn)節(jié)點(diǎn)和Transform、scale、rotation造型定位、旋轉(zhuǎn)、縮放節(jié)點(diǎn)進(jìn)行交互控制。VRML模型文件應(yīng)以擴(kuò)展名WRL結(jié)尾的文本文件形式保存,運(yùn)用IE或Netscape Navigator 等專(zhuān)門(mén)瀏覽器與用戶(hù)交互。下面利用VRML節(jié)點(diǎn)建造的一個(gè)簡(jiǎn)單三維模型:
#VRML V2.0 utf8
Group {
children [
Shape {
appearance Appearance {
material Material { diffuseColor 1 0 0 }
}
geometry Cone {}
}
]
}
2.運(yùn)用3DMAX構(gòu)建形體相對(duì)復(fù)雜的商品模型
3DSMAX是現(xiàn)在PC系統(tǒng)上比較流行的三維建模工具,其建模過(guò)程相對(duì)簡(jiǎn)單、直觀。對(duì)虛擬場(chǎng)景的渲染效果質(zhì)量較高。在3DSMAX中可以通過(guò)組合建模,生成不規(guī)則的、復(fù)雜的幾何形狀和設(shè)備,而且對(duì)象的構(gòu)造效率比較高。3DMAX三維模型的建立要注意以下幾個(gè)方面:
(1)要有相對(duì)準(zhǔn)確的建模數(shù)據(jù),靜態(tài)實(shí)體外觀幾何形狀尺寸數(shù)據(jù)主要來(lái)自產(chǎn)品生產(chǎn)圖紙,包括平面圖、剖面圖、三視圖等,保證商品模型尺寸比例的協(xié)調(diào),紋理數(shù)據(jù)主要是來(lái)自于靜態(tài)實(shí)體的正向照片或商品分解后各部分正向照片等,保證模型外觀視覺(jué)上的真實(shí)性。
(2)對(duì)于相對(duì)復(fù)雜的商品要注意考慮三維模型的層次結(jié)構(gòu),建模之前要對(duì)收集的建模信息進(jìn)行全面的分析,對(duì)模型有了整體的了解之后,按照商品模型的層次結(jié)構(gòu)來(lái)分解靜態(tài)實(shí)體,再對(duì)靜態(tài)實(shí)體的每一部分進(jìn)行分別建模,最后把所有的模型進(jìn)行整合完成整個(gè)模型的建設(shè)。
(3)要靈活運(yùn)用3DMAX中的基本幾何體建模、擴(kuò)展幾何體建模、布爾運(yùn)算(并、交和差運(yùn)算)建模、拉伸(或擠壓)建模、旋轉(zhuǎn)建模、放樣建模、NURBS 建模、貼圖建模和混合建模等三維建模技術(shù)。建模時(shí)盡量使用較少的多邊形,能合并的面應(yīng)該要盡量合并,以?xún)?yōu)化模型、提高響應(yīng)速度。
(4)要盡量刪除冗余的幾何元素,降低整個(gè)三維模型的復(fù)雜度。模型構(gòu)建中要盡量利用最少的幾何元素獲得視覺(jué)效果相同的三維模型,但在建模過(guò)程中,往往存在不必要的幾何元素,如一些模型中不可見(jiàn)的點(diǎn)、線、面、體等幾何元素,即冗余的幾何元素,冗余幾何元素的存在一方面會(huì)使模型文件數(shù)據(jù)增大,同時(shí),模型交互時(shí)會(huì)頻繁出現(xiàn)閃爍的現(xiàn)象。
三、三維模型的優(yōu)化技術(shù)
優(yōu)化技術(shù)是三維虛擬建模過(guò)程中至關(guān)重要的一個(gè)環(huán)節(jié),優(yōu)化結(jié)果的好壞將直接影響三維商品展示網(wǎng)站的運(yùn)行效率、顯示速度和商品交互效果。在運(yùn)用VRML在構(gòu)建三維模型的過(guò)程中和運(yùn)用3DMAX模型導(dǎo)出VRML文件后要充分注意優(yōu)化程序,所以這里三維模型的優(yōu)化分為VRML程序優(yōu)化和3DMAX模型優(yōu)化兩個(gè)部分。
3DMAX模型優(yōu)化要注意對(duì)結(jié)構(gòu)、紋理和模型的優(yōu)化。結(jié)構(gòu)優(yōu)化是指盡量按照模型分塊原則建立層次結(jié)構(gòu),按照調(diào)整層次建模原則進(jìn)行處理,進(jìn)行結(jié)構(gòu)調(diào)整??梢圆捎脝卧指罴夹g(shù),單元分割是將虛擬模型分割成較小的單元,只有在當(dāng)前模型中的實(shí)體才被渲染,因此極大地減少了處理模型的復(fù)雜度。
紋理優(yōu)化是指將三維模型表面需要表現(xiàn)的紋理,按照建模的實(shí)際需求進(jìn)行處理,紋理優(yōu)化方法一般有使用簡(jiǎn)單分量紋理、紋理格式優(yōu)化和紋理拼接等。在貼圖紋理選擇上盡量使用小面積的紋理。紋理的幾何尺寸越小,文件的數(shù)據(jù)量也就越小,使用灰度圖像紋理通常要比使用RGB圖像更為有效,把灰度圖像紋理與物體的基本材質(zhì)顏色綜合起來(lái)運(yùn)用能實(shí)現(xiàn)很好的三維模型表面視覺(jué)效果。在紋理格式優(yōu)化方面3dsmax提供了多種可以節(jié)省內(nèi)存的內(nèi)部紋理格式,實(shí)際操作中應(yīng)盡量采用8位紋理圖像,采用jpeg格式壓縮圖像。
三維模型優(yōu)化可以使用外部引用技術(shù),外部引用是指直接把所需的文件或紋理等引入到當(dāng)前的模型中,并將它們進(jìn)行重新定位。在建模過(guò)程中可以將場(chǎng)景中起輔助作用的模型導(dǎo)入到當(dāng)前場(chǎng)景中來(lái)。這樣可以在一定程度上節(jié)省內(nèi)存,提高渲染的速度和機(jī)器運(yùn)行的速度。
VRML程序優(yōu)化是要充分利用VRML提供的高級(jí)造型技術(shù),如使用內(nèi)聯(lián)技術(shù)(Inline)來(lái)減少文件的長(zhǎng)度;利用原型構(gòu)造技術(shù)(PROTO和EXTERN PROTO)來(lái)創(chuàng)建擴(kuò)展節(jié)點(diǎn),盡量為各相同類(lèi)別的商品建立模型資源庫(kù),這樣可以減少相同代碼的重復(fù)編寫(xiě);對(duì)于比較復(fù)雜的模型,采用LOD節(jié)點(diǎn)來(lái)控制一些復(fù)雜模型的重現(xiàn)程度,它可以減少重現(xiàn)時(shí)多邊形的數(shù)目,對(duì)于結(jié)構(gòu)相同或相似的模型,采用DEF/USE來(lái)重用場(chǎng)景以避免進(jìn)行重復(fù)的設(shè)計(jì)工作。
四、網(wǎng)站中三維模型顯示與交互實(shí)現(xiàn)技術(shù)
在三維商品模型建立好后,三維模型的顯示與交互技術(shù)是電子商務(wù)網(wǎng)站中實(shí)現(xiàn)商品三維動(dòng)態(tài)展示的重要途徑。依托VRML本身強(qiáng)大的顯示和交互功能,利用現(xiàn)有比較成熟的HTML、JAVA、JavaScript、ASP、Dreamweaver等網(wǎng)站開(kāi)發(fā)技術(shù)實(shí)現(xiàn)商品三維虛擬模型在網(wǎng)站上的展示和動(dòng)態(tài)交互,其中應(yīng)用Dreamweaver調(diào)用VRML文件是通過(guò)Vrmlsuite插件實(shí)現(xiàn)的,這里不作論述。
1.利用VRML實(shí)現(xiàn)商品三維虛擬模型的動(dòng)態(tài)呈現(xiàn)與交互
VRML文件的瀏覽器本身就具備觀察點(diǎn)上、下、左、右平動(dòng),前進(jìn)、后退、左右轉(zhuǎn)動(dòng),放大、縮小物體造型等多種交互功能。VRML也提供了和瀏覽者進(jìn)行交互的空間傳感節(jié)點(diǎn),通過(guò)這些節(jié)點(diǎn)可以有效創(chuàng)建出交互性很強(qiáng)的三維展示效果。VRML中空間傳感節(jié)點(diǎn)包括TouchSensor節(jié)點(diǎn)、PlaneSensor節(jié)點(diǎn)、SphereSensor 節(jié)點(diǎn)、CylinderSensor節(jié)點(diǎn)、VisiblitySeneor 節(jié)點(diǎn)、ProximitySensor節(jié)點(diǎn)、和Collison節(jié)點(diǎn)等,用來(lái)控制瀏覽者與三維商品模型進(jìn)行交互的動(dòng)作,并將這些動(dòng)作轉(zhuǎn)換成適于空間造型的模型輸出,使瀏覽者象是在觀看一個(gè)真實(shí)的商品一樣。
2.運(yùn)用JAVA或JavaScript語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)交互
VRML為JavaScript、Java等語(yǔ)言提供了調(diào)用接口,可以應(yīng)用JAVA或JavaScript語(yǔ)言編寫(xiě)的程序來(lái)擴(kuò)展VRML的交互特性,JAVA或JavaScript語(yǔ)言通過(guò)Script節(jié)點(diǎn)可以創(chuàng)建出新的內(nèi)插和傳感節(jié)點(diǎn)來(lái)更加靈活有效地控制驅(qū)動(dòng)和控制整個(gè)虛擬空間。在運(yùn)用Script節(jié)點(diǎn)的過(guò)程中同時(shí)運(yùn)用ROUTE能更好的體現(xiàn)人—機(jī)交互的靈活性。VRML的Script 節(jié)點(diǎn)中能直接使用JavaScript語(yǔ)言,事件傳遞到Script節(jié)點(diǎn)時(shí)可以通過(guò)JavaScript程序中的函數(shù)進(jìn)行計(jì)算處理,然后把結(jié)果通過(guò)Script節(jié)點(diǎn)發(fā)送事件使模型發(fā)生變化。這樣網(wǎng)頁(yè)上陳列的三維模型就可以感應(yīng)瀏覽者的鼠標(biāo)動(dòng)作,從而達(dá)到控制三維模型的效果。例如下面是JavaScript語(yǔ)言通過(guò)HTML的Onload屬性在指定窗口中調(diào)用VRML三維實(shí)體模型。
<SCRIPT>
function viewpoint() {
top.vrml.location.href=\"book.wrl\"
}
</SCRIPT>
<BODY onLoad=\"viewpoint()\"></BODY>
3.在HTML中嵌入VRML文件實(shí)現(xiàn)商品展示
HTML可以二維網(wǎng)頁(yè)上進(jìn)行超級(jí)鏈接,VRML是在VRML頁(yè)面上實(shí)現(xiàn)VRML父節(jié)點(diǎn)控制其他VRML節(jié)點(diǎn)的活動(dòng)。實(shí)現(xiàn)三維商品模型交互性操作的具體位置有HTML頁(yè)面的控件以及VRML頁(yè)面的節(jié)點(diǎn),一個(gè)VRML 文件可以采用超級(jí)鏈接的方式把HTML文件和VRML 文件鏈接到一起,這對(duì)三維模型的虛擬展示具有十分重要意義。HTML文件格式的標(biāo)準(zhǔn)并不支持對(duì)VRML文檔的嵌入,但非標(biāo)準(zhǔn)HTML提供<EMBED>標(biāo)記可實(shí)現(xiàn)VRML文檔的嵌入,例如下面語(yǔ)句實(shí)現(xiàn)了VRML文檔book.wrl在HTML文件中的嵌入,其中SRC 域指定關(guān)聯(lián)的URL ,“book. wrl ”是一個(gè)VRML 文件。
<EMBED NAME=bodyvrml SRC=”book.wrl”HEIGHT=300WIDTH=400 ALIGN=LEFT>
也可以在HTML 文件中直接使用VRML對(duì)象,例如下面Value 的參數(shù)指定一個(gè)VRML文件。
<OBJ ECT WIDTH =″300″HEIGHT=″300″>
<PARAM NAME =″Scene″value =″book.wrl″>
</OBJ ECT>
4.應(yīng)用ASP技術(shù)實(shí)現(xiàn)虛擬動(dòng)態(tài)網(wǎng)頁(yè)
ASP是微軟公司推出的位于服務(wù)器端的腳本運(yùn)行環(huán)境。通過(guò)這種環(huán)境,用戶(hù)可以創(chuàng)建和運(yùn)行動(dòng)態(tài)的交互式WEB服務(wù)器應(yīng)用程序。ASP還可利用ADO數(shù)據(jù)訪問(wèn)模型實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)。在ASP腳本文件中結(jié)合VRML技術(shù),可以在虛擬現(xiàn)實(shí)環(huán)境下實(shí)現(xiàn)ASP動(dòng)態(tài)網(wǎng)頁(yè)。下面是嵌入了一個(gè)VRML瀏覽組件的asp腳本:
<embedwidth=\"460\"height=300 src=\"book.wrl\"style=\"HEIGHT:300px;WIDTH:460px\">。
參考文獻(xiàn):
[1]鄧朝暉:利用VRML和Java實(shí)現(xiàn)三維交互研究.科學(xué)技術(shù)與工程,2007.8
[2]黃正軍:基于X3D 的虛擬場(chǎng)景動(dòng)態(tài)交互技術(shù)研究.計(jì)算機(jī)工程與科學(xué),2007.7
[3]崔會(huì)峰:應(yīng)用于虛擬現(xiàn)實(shí)中的船體可視化建模技術(shù).大連海事大學(xué)學(xué),2005.3