李廣麗,張紅斌
(華東交通大學(xué) 1.信息工程學(xué)院;2.軟件學(xué)院,江西 南昌 330013)
虛擬現(xiàn)實(shí)(Virtual Reality,也稱VR)技術(shù)是融合了人工智能技術(shù)、多媒體技術(shù)、計算機(jī)圖形學(xué)技術(shù)和計算機(jī)網(wǎng)絡(luò)技術(shù)而發(fā)展起來的一種全新的計算機(jī)人機(jī)交互技術(shù)[1],用戶可以體驗(yàn)由計算機(jī)生成的三維虛擬環(huán)境,并自然地與虛擬環(huán)境進(jìn)行視覺、聽覺甚至是觸覺和味覺的實(shí)時交互,獲取與真實(shí)世界相似或相仿的操作體驗(yàn)。
近年來,隨著Web的普及,電子商務(wù)也得到了飛速的發(fā)展,人們足不出戶就可以通過Web完成商品的瀏覽、選購、下訂單等電子交易。文中的虛擬展示平臺也是一個基于Web的電子商務(wù)系統(tǒng),它融虛擬現(xiàn)實(shí)技術(shù)和電子商務(wù)技術(shù)于一體,在Web環(huán)境中為用戶提供多感知、深度沉浸感的人機(jī)交互界面,突出了產(chǎn)品的展示效果,加深用戶對產(chǎn)品的理性認(rèn)識,為電子商務(wù)網(wǎng)站獲取更大的銷售回報創(chuàng)造基本條件。
虛擬展示平臺設(shè)計的基礎(chǔ)是三維模型的構(gòu)建。由于Virtools沒有建模功能,故需要采用第三方的建模軟件來完成三維建模。3DMax是一款三維建模軟件,它已經(jīng)成為游戲開發(fā)、電影電視、動畫制作等行業(yè)的必備工具軟件[2]。本文采用它來制作系統(tǒng)所需的三維模型,并保存為.nmo格式,方便在Virtools中導(dǎo)入,構(gòu)建虛擬展示平臺的三維交互環(huán)境。
Virtools將三維建模工具創(chuàng)建的3D對象作為單獨(dú)的組件,分配獨(dú)立的制作任務(wù)[3]。在任務(wù)制作過程中,由于Virtools的架構(gòu)十分開放,故它允許設(shè)計者使用BuildingBlocks(行為交互模塊,簡稱BB)來設(shè)計用戶與3D對象交互的行為腳本。設(shè)計者只要在圖形化交互界面上將BB賦予到3D對象或虛擬角色上,并通過流程圖方式?jīng)Q定BB中前后行為的處理順序,實(shí)現(xiàn)交互腳本的設(shè)計[4]?;谔摂M現(xiàn)實(shí)的商品展示平臺需借助Virtools來整合所有的三維模型,并完成最關(guān)鍵的行為交互設(shè)計。
基于虛擬現(xiàn)實(shí)的商品展示平臺是一個以展示商品為核心的Web服務(wù)平臺。Web用戶根據(jù)自己的偏好,觀察商品的三維模型外觀,并了解商品的主要性能參數(shù),若要進(jìn)一步熟知商品的主要功能,還可通過更復(fù)雜的虛擬交互體驗(yàn)獲取[5]。因此,商品的三維建模力求逼真,而虛擬交互體驗(yàn)則借助人的視覺或聽覺提供趣味性極強(qiáng)的在線商品操作,如“翻轉(zhuǎn)”、“打開”、“關(guān)閉”、“聽音樂”、“觀視頻”等操作。消費(fèi)者足不出戶就可獲取對商品的真實(shí)感官,從而激發(fā)對商品采購的熱情。本系統(tǒng)以設(shè)計一個銷售電腦的網(wǎng)上門店為例。
考慮到電腦采購者的電腦知識水平參差不齊,故在電腦三維模型展示時,既要提供直觀、平民化的交互體驗(yàn),還需提供專業(yè)的電腦性能參數(shù)供專業(yè)的電腦使用者體驗(yàn)。此外,要讓用戶充分地沉浸于虛擬現(xiàn)實(shí)場景中,并可自由漫游。故系統(tǒng)包括如下主要功能:
(1)設(shè)計一個虛擬的電腦銷售門店。該門店銷售的所有電腦都可通過虛擬環(huán)境進(jìn)行展示,而用戶可與之進(jìn)行交互,獲取與真實(shí)電腦銷售門店相仿的漫游感官。
(2)設(shè)計電腦三維模型。它是虛擬電腦銷售門店的核心元素。它的建模與貼圖要求十分細(xì)致,且必須加入人機(jī)交互。因此,電腦的三維建模將更加靈活細(xì)膩,外觀更加精細(xì)美觀。此外,在人機(jī)交互中加入視頻、聲音、動畫等感官刺激,為漫游者演示電腦的“視頻播放”、“圖像顯示”、“聲音播放”等功能,使漫游者可更加深入地認(rèn)識電腦商品的性能。
(3)設(shè)計電腦銷售門店中的其它虛擬物體。包括桌子、椅子、展示臺等家具,豐富視覺感官和漫游體驗(yàn)的真實(shí)感。
(4)設(shè)計場景中的燈光。攝影機(jī)的布置及數(shù)量要合理,以貼近人的真實(shí)感覺。
基于虛擬現(xiàn)實(shí)的商品展示平臺的總體架構(gòu)如圖1所示。
圖1 三維虛擬展示平臺的總體架構(gòu)圖
系統(tǒng)需要進(jìn)行建模的對象有虛擬門店的場景(包括墻、天花板、地面、展示臺、桌椅柜等)和虛擬電腦商品(包括電腦,電腦配件等)。系統(tǒng)采用3DMax7作為三維模型設(shè)計的工具。三維模型創(chuàng)建的流程[6]如下:
第1步:3D模型的生成,主要利用3DMax進(jìn)行建模;
第2步:在3DMax中對模型賦材質(zhì)與貼圖,需要利用PhotoShop修改和制作材質(zhì)貼圖;第3步:改進(jìn)設(shè)計出來的虛擬場景。
2.2.1 虛擬模型的三維設(shè)計
一般采用兩種方法來構(gòu)建三維模型:基于模型的三維建模和基于圖像繪制的三維建模。設(shè)計人員可靈活選擇適合自己的建模方法[7]。以電腦商品中的“筆記本”為例,在建模時需要把它拆分成若干簡潔的模塊,然后分別建模每個模塊,最后再將模塊拼貼起來構(gòu)成一個完整的筆記本三維模型。圖2是3D Max中筆記本電腦的三維建模,其它電腦的建模同理,不再贅述。
圖2 筆記本電腦的建模
圖3 貼圖后的筆記本電腦
2.2.2 材質(zhì)與貼圖
模型建立完成之后就為模型賦予材質(zhì)和貼圖[8]。材質(zhì)的作用是形成物體的反射特性。一般使用3種顏色及對物體高光區(qū)的控制,就可構(gòu)造出絕大部分的反射材質(zhì)[9]。該材質(zhì)簡單,但效果非常好。不同的虛擬對象有不同的賦予材質(zhì)的方案。貼圖則是盡可能逼真地模擬物體表面的紋理,增加三維模型的復(fù)雜度,豐富其細(xì)節(jié),使其能更加逼真、更加精細(xì)地再現(xiàn)實(shí)物。
本系統(tǒng)采用PhotoShop完成貼圖工作。Virtools中使用65536色或24位色的貼圖,且貼圖大小必須是2的次方,如64*64、512*512等,但不能超過512*512。貼圖最好是正方形,這樣可加快3D實(shí)時處理的速度[5]。貼圖使用的文件格式很多,如.jpg,.bmp等,但在同一個場景中最好使用同一種文件格式。可選擇有較高壓縮比的.jpg圖像貼圖。貼圖后的筆記本電腦如圖3所示。
第一人稱相機(jī)即從漫游者的角度來獲取對虛擬場景的認(rèn)識,它包括前進(jìn)、后推、上移、下移、俯視、仰視、左轉(zhuǎn)、右轉(zhuǎn)、物體滑動等漫游體驗(yàn)。故需使用第一人稱相機(jī)做控制,且加入碰撞屬性,以增加交互的真實(shí)性,用戶漫游時會具有很強(qiáng)的切身觀察感。第一人稱相機(jī)的Building Blocks模塊設(shè)計如下:
(a)Set As Active Camera-Cameras/Montage/Set As Active Camera設(shè)置此相機(jī)為當(dāng)前活動相機(jī)
(b)Switch On Key-Controllers/Keyboard/Switch On Key按鍵切換
(c)Translate-3D Transformations/Basic/Translate移動
(d)Rotate-3D Transformations/Basic/Rotate旋轉(zhuǎn)
(e)Object Slider-Collisions/3D Entity/Object Slider物體滑動
第一人稱相機(jī)的腳本圖如圖4。鍵盤控制相機(jī)移動,控制鍵分別為鍵盤上的↑、↓、←、→、Shift、Ctrl,它們的意義分別為鏡頭:前進(jìn)、后退、左移、右移、上移、下移。每一次按鍵,移動單位為各個方向上的1單位距離,腳本實(shí)現(xiàn)如圖5。鍵盤控制相機(jī)旋轉(zhuǎn),控制鍵分別為鍵盤上的G,V,C,B,F,H,它們的意義分別為鏡頭:俯視,仰視,左轉(zhuǎn),右轉(zhuǎn),左傾,右傾。每一次按鍵,移動單位為各個方向上的0.5弧度,腳本實(shí)現(xiàn)如圖6。對象碰撞設(shè)計:設(shè)定Camera的碰撞屬性Group Obstacles,Radius為碰撞半徑。
圖4 第一人稱相機(jī)的整體腳本
圖5 鍵盤控制相機(jī)鏡頭的移動
圖6 鍵盤控制相機(jī)鏡頭的旋轉(zhuǎn)
用戶在漫游過程中,可通過單擊電腦商品完成與電腦三維模型的交互。可對商品進(jìn)行鍵盤的移動和旋轉(zhuǎn)展示,達(dá)到每個角度都能展示的目的,當(dāng)再次單擊商品后,商品歸回原位,等待下次被用戶單擊拾取。具體程序流程如圖7所示。
圖7 電腦商品的多方位展示控制流程
電腦商品的Building Blocks模塊設(shè)計如下:
(a)Switch On Key-Controllers/Keyboard/Switch On Key按鍵切換
(b)Translate-3D Transformations/Basic/Translate移動
(c)Rotate-3D Transformations/Basic/Rotate旋轉(zhuǎn)
(d)Wait Message-Logics/Message/Wait Message等待消息
(e)Deactivate Script-Narratives/Script Management/Deactivate Script禁用腳本
(f)Activate Script-Narratives/Script Management/Activate Script激活腳本
(g)Set Quaternion Orientation-3D Transformations/Basic/Set Quaternion Orientation設(shè)置朝向
(h)Set Position-3D Transformations/Basic/Position設(shè)置位置
其按鍵切換、移動、旋轉(zhuǎn)等的腳本類似于第一人稱相機(jī)腳本,不再贅述。僅給出等待鼠標(biāo)左擊恢復(fù)初始狀態(tài)的實(shí)現(xiàn):商品接受鼠標(biāo)左鍵點(diǎn)擊后,設(shè)置成它在三維場景里的初始坐標(biāo),同時設(shè)置它的四元參數(shù)朝向(初始朝向)。然后禁止移動和旋轉(zhuǎn)的進(jìn)行,進(jìn)而觸發(fā)腳本,返回初始處于等待被選取的狀態(tài)。設(shè)置如圖8所示。
圖8 等待鼠標(biāo)左擊恢復(fù)初始狀態(tài)腳本
1)點(diǎn)擊按鈕播放聲音。腳本描述:通過觸發(fā)按鈕或者三維實(shí)體播放一段音樂。Building Blocks如下,腳本如圖9所示。
(a)Wave Player-Sounds/Basic/Wave Player聲音播放器
(b)Wait Message-Logics/Message/Wait Message等待消息
2)點(diǎn)擊按鈕播放電影片段。腳本描述:通過觸發(fā)按鈕或者三維實(shí)體播放一電影。Building Blocks如下,腳本同圖9,故省略。
(a)Move Player-Materials-Textures/Animation/Move Player影片播放器
(b)Wait Message-Logics/Message/Wait Message等待消息
3)筆記本電腦的翻開和閉合。腳本描述:單擊筆記本屏幕部分的虛擬實(shí)體,讓屏幕繞著中軸(參照物)轉(zhuǎn)動一個特定的角度,即完成閉合。翻開只需繞負(fù)方向的軸轉(zhuǎn)相同的角度即可。Building Blocks如下,腳本如圖10所示。
(a)Rotate Around-3D Transformations/Basic/Rotate Around圍繞旋轉(zhuǎn)
(b)Wait Message-Logics/Message/Wait Message等待消息
圖9 等待鼠標(biāo)左擊播放音樂
圖10 筆記本電腦的蓋子翻開與閉合的腳本
運(yùn)用3DMax的Explorer軟件將3DMax中構(gòu)建的三維模型以.nmo的格式輸出。.nmo文件是Virtools默認(rèn)的用于存儲漫游角色、三維場景以及三維模型等的文件格式,它可以被Virtools識別,以便文件導(dǎo)入。三維模型被默認(rèn)導(dǎo)入到Virtools的資源庫中,當(dāng).nmo文件被導(dǎo)入之后,即可添加實(shí)現(xiàn)交互的腳本。
用戶成功登錄之后即進(jìn)入三維虛擬場景,IE中的3D播放插件自動加載三維場景,載入電腦銷售門店的三維虛擬場景,如圖11所示。作為實(shí)驗(yàn),只在三維場景中放置了一臺筆記本電腦的樣品,若漫游用戶單擊該商品即選中該商品,如圖12所示。接著,漫游用戶就可以與該虛擬電腦完成多種不同的交互。
圖11 電腦銷售門店的虛擬場景主界
圖12 單擊選中一臺筆記本電腦
漫游用戶可以選擇從不同的角度或距離來觀察該商品,獲取對商品外觀的感性認(rèn)識,如圖13所示。此外,漫游用戶還可以嘗試打開或關(guān)閉筆記本電腦,獲取對商品的操作體驗(yàn),如圖14所示。漫游用戶還可以選擇欣賞播放視頻、音樂等,獲取對商品功能的更深層次的認(rèn)識。
圖13 任選角度和距離觀察商品
圖14 筆記本的閉合
借助Virtools把交互、特效、動畫、燈光等設(shè)計完成后,即可將作品發(fā)布。Virtools有兩種發(fā)布形式:Web網(wǎng)頁格式和exe格式??紤]在Web環(huán)境上應(yīng)用本系統(tǒng),故選擇將其打包成Web網(wǎng)頁格式。具體發(fā)布過程:利用Virtools中的Create Web Page命令把.cmo文件(Virtools默認(rèn)保存的工程文件)直接發(fā)布成HTML的網(wǎng)頁格式并且附帶生成.vmo格式的文件。發(fā)布之后,作為瀏覽器客戶端還需要安裝Virtools的Web Player插件,保證虛擬現(xiàn)實(shí)場景的正常瀏覽,該插件可從Web免費(fèi)獲取。
此外,對系統(tǒng)運(yùn)行過程中的流暢性、運(yùn)行時間進(jìn)行了簡單的測試,測試的環(huán)境分單機(jī)測試和內(nèi)部100M局域網(wǎng)測試。單機(jī)測試時建議CPU采用AMD 3200+或以上CPU,內(nèi)存128MB以上,顯示器支持800*600或以上分辨率,16位高彩色,顯卡則要求64MB以上的獨(dú)立顯卡,最好支持Direct 3D或OpenGL圖形加速。表1是本系統(tǒng)在三臺不同配置的PC機(jī)上的單機(jī)測試情況。測試表明,單機(jī)環(huán)境下系統(tǒng)能正常運(yùn)轉(zhuǎn),系統(tǒng)加載速度基本可以接受,軟件運(yùn)行的效果良好。
表1 系統(tǒng)在不同硬件環(huán)境下的測試
作為實(shí)驗(yàn),目前僅在局域網(wǎng)范圍內(nèi)進(jìn)行了網(wǎng)絡(luò)訪問可行性的測試,把生成的網(wǎng)頁放置在100M局域網(wǎng)內(nèi)的一臺Web Server上,然后在其它客戶端機(jī)器通過IE訪問該虛擬現(xiàn)實(shí)平臺主頁,以進(jìn)行測試。測試結(jié)果:場景加載時間較長,超過30秒,運(yùn)行比較流暢,運(yùn)行效果良好。
本軟件的開發(fā)為消費(fèi)類電子商品的虛擬展示平臺的設(shè)計提供了良好的思路:首先,設(shè)計商品的3D模型,然后,運(yùn)用Virtools為3D模型加入互動腳本,最后,把虛擬展示系統(tǒng)導(dǎo)出為Web網(wǎng)頁格式,在Web上發(fā)布,即可為Web用戶提供商品的三維虛擬交互體驗(yàn)。
[1]陳定方,羅亞波,等.虛擬設(shè)計[M].北京:機(jī)械工業(yè)出版社,2007.
[2]王梅艷.虛擬現(xiàn)實(shí)技術(shù)的歷史與未來[J].中國現(xiàn)代教育裝備,2007(1):108-110.
[3]李昌國,朱福全,譚良,等.基于3D和Virtools技術(shù)的虛擬實(shí)驗(yàn)開發(fā)方法研究[J].計算機(jī)工程與應(yīng)用.2006(31):84-86.
[4]王龍江,荊旭,焦學(xué)健,等.基于虛擬現(xiàn)實(shí)技術(shù)的校園漫游系統(tǒng)[J].山東理工大學(xué)學(xué)報:自然科學(xué)版,2007,21(4):89-93.
[5]王方,王崢.3dsMax模型及動畫輸出為Virtools格式的方法[J].現(xiàn)代電影技術(shù)應(yīng)用技術(shù)研究,2007(10):49-54.
[6]劉明昆.3維游戲設(shè)計師寶典——VIRTOOLS開發(fā)工具篇[M].成都:四川電子音像出版中心,2005:173-183.
[7]王煒,包衛(wèi)東,張茂軍,等.虛擬仿真系統(tǒng)導(dǎo)論[M].北京:國防科技大學(xué)出版社,2006.
[8]劉曉艷,林琿,張宏.虛擬城市建設(shè)原理與方法[M].北京:科學(xué)出版社,2003:105-139.
[9]方小峰.基于虛擬現(xiàn)實(shí)的城市規(guī)劃三維仿真設(shè)計系統(tǒng)[J].計算機(jī)仿真,2007,24(3):230-234.