基于虛擬現(xiàn)實(shí)的三維戶型展示系統(tǒng)
摘要:通過3D Studio MAX結(jié)合Cosmo World、VrmlPad和Java語言制作虛擬場景,嵌入網(wǎng)頁來展示小區(qū)戶型及其周邊環(huán)境,在二維導(dǎo)航圖中實(shí)現(xiàn)視點(diǎn)跳轉(zhuǎn)、實(shí)時導(dǎo)航,在虛擬環(huán)境中進(jìn)行交互操作,使人們對三維小區(qū)戶型和其周邊環(huán)境具有強(qiáng)烈的身臨其境感,增強(qiáng)了宣傳效果。
關(guān)鍵詞:虛擬現(xiàn)實(shí);導(dǎo)航;人機(jī)交互;三維戶型
1 引言
隨著計(jì)算機(jī)技術(shù)的發(fā)展,虛擬現(xiàn)實(shí)在社會生活中的應(yīng)用越來越廣泛。虛擬現(xiàn)實(shí)技術(shù)具有強(qiáng)烈的“身臨其境”沉浸感,友好親切的人機(jī)交互性,激發(fā)人想象的刺激性。人機(jī)交互系統(tǒng)不斷創(chuàng)新,為虛擬現(xiàn)實(shí)系統(tǒng)的發(fā)展打下了良好的基礎(chǔ);與Web技術(shù)的結(jié)合更使虛擬現(xiàn)實(shí)技術(shù)引起人們更為廣泛的關(guān)注,利用虛擬現(xiàn)實(shí)技術(shù)人們可在三維虛擬環(huán)境下更深入地交流。
建筑微縮模型、效果圖、三維動畫是傳統(tǒng)的建筑表現(xiàn)方法。其中,建筑微縮模型只能獲得建筑鳥瞰模型,無法以人的視角來感受建筑空間;效果圖只能提供靜態(tài)局部的視覺體驗(yàn);三維動畫雖有較強(qiáng)的動態(tài)三維表現(xiàn)力,但不具備實(shí)時的交互性。而利用虛擬現(xiàn)實(shí)演示三維戶型,人們能夠在虛擬的三維環(huán)境中,以動態(tài)交互的方式對未來的房屋或小區(qū)作身臨其境的全方位審視:可從任意角度、距離和細(xì)致程度觀察場景;可選擇并自南切換多種運(yùn)動模式,如:行走、跑步等,并可自由控制瀏覽路線;漫游過程中,還可實(shí)時切換比較多種設(shè)計(jì)方案、多種環(huán)境效果。將虛擬現(xiàn)實(shí)技術(shù)引入戶型遠(yuǎn)程展示,為房產(chǎn)公司、裝修公司等相關(guān)企業(yè)開辟了一種新的產(chǎn)品展示方法。
2 三維戶型的遠(yuǎn)程展示及系統(tǒng)簡介
2.1 系統(tǒng)模塊
三維戶型遠(yuǎn)程展示系統(tǒng)可分為虛擬場景和導(dǎo)航圖兩大模塊,其中,虛擬場景又可分為住宅小區(qū)周邊環(huán)境的三維虛擬展示和多種房屋戶型及其裝修效果的三維虛擬展示兩部分。虛擬場景的制作步驟如下:首先,在3D SMAX中建立房屋或室外樓盤的三維模型,并將其轉(zhuǎn)化為.wrl文件導(dǎo)出;然后,用Cosmo Worlds打開.wrl文件,設(shè)置其材質(zhì)、導(dǎo)航、視點(diǎn);同時也可打開VrmlPad 2.0精確定位各個虛擬對象,編寫代碼設(shè)置燈光、背景、腳本語言等;最后,將其嵌入到網(wǎng)頁中,安裝CortvrmlPlayer后即可打開瀏覽。使用鍵盤、鼠標(biāo)或Cortvrml Player自帶的按鈕在場景中自由走動,與虛擬場景進(jìn)行互動。制作導(dǎo)航圖時,首先轉(zhuǎn)換事先準(zhǔn)備的房屋戶型圖,由原來的.bmp文件轉(zhuǎn)化為.gif的動態(tài)文件,然后再制作1張只有“@”符號的.gif圖片,添加相應(yīng)的HTMEL語言和VRML語言即可實(shí)現(xiàn)時時導(dǎo)航,同時添加相應(yīng)的按鈕,以便在各個場景之間進(jìn)行跳轉(zhuǎn)。
2.2 關(guān)鍵節(jié)點(diǎn)設(shè)置
虛擬現(xiàn)實(shí)建模語言VRML(Virtual Realitv Modeling Lan-guage)可實(shí)現(xiàn)各個虛擬對象和場景的精確定位,對三維環(huán)境設(shè)置變換節(jié)點(diǎn)、視點(diǎn)節(jié)點(diǎn)、導(dǎo)航節(jié)點(diǎn)和Script節(jié)點(diǎn),這是三維導(dǎo)航的基本條件。
2.2.1 Transform(變換)節(jié)點(diǎn)的設(shè)置
在虛擬場景中的每個造型都是基于當(dāng)前的坐標(biāo)系創(chuàng)建的,如果希望場景中的造型改變空間位置和空間朝向,就需要變換造型創(chuàng)建所基于的空間坐標(biāo)系。Transform是為其子項(xiàng)定義坐標(biāo)系統(tǒng)的組節(jié)點(diǎn)。常用的Transform節(jié)點(diǎn)格式如下:
其中,translation表示平移,其后的3個數(shù)字分別表示在X軸,Y軸和Z軸方向平移的坐標(biāo)位數(shù);rotation表示旋轉(zhuǎn)量,其后的3個數(shù)字表示新坐標(biāo)系的原點(diǎn)坐標(biāo),最后1位數(shù)字表示旋轉(zhuǎn)角度,單位是rad,兩原點(diǎn)的連線是旋轉(zhuǎn)的軸;scale表示縮放,它設(shè)定了造型在子坐標(biāo)系3個坐標(biāo)方向的縮放因子,3個值分別表示在X,Y,Z軸方向的縮放,該域值始終大于0.0,當(dāng)小于1.0時是縮小,大于1.0時是放大。其默認(rèn)值1.0表示不發(fā)生縮放。translation域指定變換量,允許將transform的子節(jié)點(diǎn)移動到其他位置。rotation域指定旋轉(zhuǎn)的軸和角度。scale域指定縮放比例,各軸向縮放比值可不相等。
2.2.2 Viewpoint(視點(diǎn))節(jié)點(diǎn)
Viewpoint視點(diǎn)節(jié)點(diǎn)定義了處于局部坐標(biāo)系中的一個指定位置,用戶可以從該點(diǎn)觀察場景。設(shè)置此節(jié)點(diǎn),用以控制三維場景中的起始位置。常用的Viewpoint格式如下:
公共域position值為一個三維坐標(biāo),用于當(dāng)前坐標(biāo)系中視點(diǎn)的定位。公共域orientation值提供了一個視點(diǎn)繞其旋轉(zhuǎn)的旋轉(zhuǎn)軸,旋轉(zhuǎn)角度指定了繞此軸旋轉(zhuǎn)的數(shù)值。公共域fieldOfView的值表示一個角度,單位是rad,指定了視點(diǎn)的展開角度。
2.2.3 Navigationinfo(導(dǎo)航信息)節(jié)點(diǎn)
導(dǎo)航信息節(jié)點(diǎn)和視點(diǎn)節(jié)點(diǎn)分工協(xié)作,視點(diǎn)節(jié)點(diǎn)描述如何去看一個空間,而導(dǎo)航信息節(jié)點(diǎn)則描述如何在這個空間中移動。下面結(jié)合一個導(dǎo)航信息節(jié)點(diǎn)的實(shí)例,來解釋其中的參數(shù)。
avatarSize域是對虛擬環(huán)境中的替身的外表描述,它在VRML中可創(chuàng)建豐富的動畫效果,而動畫的完成則借助于傳感器節(jié)點(diǎn)和插補(bǔ)器節(jié)點(diǎn),其中,最重要的傳感器節(jié)點(diǎn)是時間傳感器TimeSenor,插補(bǔ)器則包括顏色插補(bǔ)器、坐標(biāo)插補(bǔ)器、法線插補(bǔ)器、朝向插補(bǔ)器、位置插補(bǔ)器及標(biāo)量插補(bǔ)器等。headLight域設(shè)置VRML場景中系統(tǒng)缺省使用的替身頭燈,缺省為TRUE,表示使用替身頭燈,若為FALSE,表示關(guān)閉該系統(tǒng)默認(rèn)的頭燈。speed域表示替身在場景中的漫游速度,單位是unit/s。type域?yàn)閷?dǎo)航類型,共有5種方式:FLY(飛行方式)、WALK(行走方式)、EXAMINE(觀察方式)、ANY(任意方式)及NONE(不使用任何方式)。visibilityLimit域表示觀察者在最大觀察距離內(nèi)沒有觀察到任何對象,瀏覽器只顯示空間背景。
2.2.4 Script節(jié)點(diǎn)
Script節(jié)點(diǎn)描述一個創(chuàng)建用戶自定義的檢測器和捕補(bǔ)器,它使用一個接口來定義一個用戶自定義節(jié)點(diǎn)的field,eventIn事件和eventOut事件。程序腳本定義處理這些事件的動作,程序腳本可由任何語言編寫,一般常用的是javaScript和VRMLScript。Script節(jié)點(diǎn)的mustEvaluate域決定程序腳本的求值方式,而directOutput域則說明程序腳本的輸出是否受限。
3 系統(tǒng)展示
三維戶型遠(yuǎn)程展示平臺可采用HTML和VRML,HTML語言開發(fā)一個網(wǎng)頁,VRML實(shí)現(xiàn)三維漫游功能,借助于插件提供的交互功能,用戶可在選中的住宅小區(qū)或是套房內(nèi)部漫游,詳細(xì)查看其結(jié)構(gòu)、設(shè)計(jì)、裝潢及周邊環(huán)境。場景還提供豐富的多媒體信息,如3D聲音、視頻、圖象和文本等,模擬虛擬現(xiàn)實(shí),充分滿足人們的感官要求,讓用戶體驗(yàn)一種置身其中的感覺,同時在二維矢量圖中顯示用戶當(dāng)前的位置。展示功能如表1所示。
整個系統(tǒng)展示分為系統(tǒng)與房型界面兩部分,主界面(圖1)為室外周邊環(huán)境,點(diǎn)擊戶型演示,可進(jìn)入具體的房屋(圖2為一套四室二廳一衛(wèi)的房屋),可在房屋中瀏覽,點(diǎn)擊返回按鈕,即可返回主界面,再點(diǎn)擊戶型演示二,又可進(jìn)入另一套房屋。
4 系統(tǒng)分析
基于虛擬現(xiàn)實(shí)的三維戶型遠(yuǎn)程展示系統(tǒng)集合了VRML語言的眾多優(yōu)點(diǎn),具體表現(xiàn)在:
(1)交互性強(qiáng) 在基于虛擬現(xiàn)實(shí)的三維戶型遠(yuǎn)程展示系統(tǒng),通過交互節(jié)點(diǎn)可以實(shí)現(xiàn)與瀏覽者的實(shí)時交互,VRMAL提供Java、Javascript、Xml、Flash等網(wǎng)絡(luò)對象的支持,VRML也支持MPG、Flash、Realplayer等流媒體視頻格式;系統(tǒng)場景的渲染是實(shí)時的,完全不同于基于關(guān)鍵幀三維動畫,應(yīng)用霧、立體聲、實(shí)時燈光渲染等特效,增強(qiáng)了場景的真實(shí)感和用戶的切身體驗(yàn)感。系統(tǒng)提供的常用交互方式有:飛行、行走、自動導(dǎo)覽等瀏覽方式;碰撞、重力等動力物理學(xué)模擬;導(dǎo)航地圖;背景音樂、語音提示;場景物體互動(開、關(guān)門等);視頻文件播放(.swf、.mpg、.rm格式支持);網(wǎng)頁鏈接;三維場景切換。
(2)可支持多種運(yùn)行環(huán)境、視覺效果好 系統(tǒng)中的場景瀏覽系統(tǒng)可運(yùn)行于PC、MAC、Unix等機(jī)型;同時支持多種主流操作系統(tǒng);運(yùn)行環(huán)境包括單機(jī)、局域網(wǎng)、廣域網(wǎng),即系統(tǒng)經(jīng)簡單修改甚至無需修改就可在各種環(huán)境中運(yùn)行,這與前期的場景設(shè)計(jì)有關(guān);VRML瀏覽器支持IE、網(wǎng)景等主流瀏覽器;支持Directx、OpenGL三維API,同時Vrml瀏覽器內(nèi)置硬件、軟件渲染切換,在速度較慢的計(jì)算機(jī)中,將自動降低場景特效,以保證場景瀏覽的流暢性。
(3)系統(tǒng)后期維護(hù)方便 由于VRML文件格式為文本文件格式,可直接在任何文本編輯軟件中修改,Vrml腳本為JavaScript腳本,也可在文本編輯軟件中編輯、修改,方便現(xiàn)場調(diào)試和增加新的功能;另外Vrml文件也提供二進(jìn)制文件格式,其大小約為文本格式的1/10,可由專業(yè)VRML開發(fā)軟件再編輯、開發(fā)。
5 結(jié)語
虛擬現(xiàn)實(shí)技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合,有著非常廣闊的發(fā)展前景,其發(fā)展將給互聯(lián)網(wǎng)帶來全新的變革,這將是一次從二維到三維的飛躍。開發(fā)一個虛擬的場景并將其嵌入到網(wǎng)頁來演示小區(qū)戶型及其周邊環(huán)境,通過二維導(dǎo)航圖來實(shí)現(xiàn)視點(diǎn)跳轉(zhuǎn)和實(shí)時導(dǎo)航,將虛擬現(xiàn)實(shí)技術(shù)引入三維戶型遠(yuǎn)程展示,將提升建筑開發(fā)公司的市場拓展方法,有利于宣傳效果。
評論