国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

虛擬商城漫游系統(tǒng)設(shè)計(jì)模式及應(yīng)用

2016-05-14 00:24李輝
現(xiàn)代電子技術(shù) 2016年8期
關(guān)鍵詞:商城漫游鼠標(biāo)

李輝

摘 要: 對(duì)虛擬商城漫游系統(tǒng)設(shè)計(jì)模式與流程進(jìn)行分析,以3DS MAX和Virtools為開發(fā)工具進(jìn)行了系統(tǒng)開發(fā)與實(shí)現(xiàn)。根據(jù)漫游系統(tǒng)的特點(diǎn)和需求,采用了多邊形建模技術(shù)、紋理貼圖技術(shù)和烘焙技術(shù)實(shí)現(xiàn)商城場(chǎng)景和模型細(xì)節(jié)制作?;赩irtools內(nèi)嵌腳本語(yǔ)言和內(nèi)置行為交互模塊相結(jié)合的方式,實(shí)現(xiàn)了商城漫游、商品展示、碰撞檢測(cè)等交互性能,有助于節(jié)約系統(tǒng)資源,提高系統(tǒng)開發(fā)效率,提升系統(tǒng)程序的復(fù)用性和可維護(hù)性,增強(qiáng)用戶沉浸感、交互性、構(gòu)想性。

關(guān)鍵詞: 虛擬商城漫游系統(tǒng); 3DS MAX軟件; Virtools工具; 設(shè)計(jì)模式

中圖分類號(hào): TN911?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)08?0045?03

Design mode of virtual mall roaming system and its application

LI Hui

(Department of Information Technology, Chengdu Agricultural College, Chengdu 611130, China)

Abstract: The design pattern and process of virtual mall roaming system are analyzed in this paper. The development and implementation of system are completed by 3DS MAX and Virtools. According to the characteristics and demand of roaming system, polygon modeling, texture mapping technology and baking technology are adopted to realize mall scenarios and model details. interactive performances of mall roaming, commodity exhibition and collision detection, were realized based on a combination of Virtools embedded scripting language (VSL) and built?in behavior (BB) interaction module. It is conductive to system resources saving, improvement ment of system development efficiency, reusability and maintainability of the system program, and enhancement of the user immersion and interaction.

Keywords: virtual mall roaming system; 3DS MAX software; Virtools tool; design mode

虛擬現(xiàn)實(shí)技術(shù)是一種集合多傳感器技術(shù)、仿真技術(shù)、多媒體技術(shù)、人工智能技術(shù)等為一體的工具,借助計(jì)算機(jī)建立比較真實(shí)的虛擬環(huán)境,設(shè)置人機(jī)接口,確保用戶與虛擬環(huán)境直接交互,用戶感受更直觀、立體的現(xiàn)實(shí)場(chǎng)景[1]。虛擬商城漫游系統(tǒng)能展現(xiàn)逼真的商城環(huán)境和商品信息,支持用戶借助網(wǎng)絡(luò)展開遠(yuǎn)程訪問(wèn),在商城產(chǎn)品環(huán)境、對(duì)外宣傳方面起著重要的作用。

1 設(shè)計(jì)虛擬商場(chǎng)漫游系統(tǒng)所用工具

1.1 3DS MAX軟件

3DS MAX是基于PC系統(tǒng)開發(fā)出現(xiàn)的三維動(dòng)畫制作軟件,該軟件廣泛應(yīng)用于廣告、動(dòng)漫、建筑設(shè)計(jì)、游戲開發(fā)、教學(xué)等多個(gè)領(lǐng)域。相比較而言,我國(guó)采用3DS MAX軟件設(shè)計(jì)建筑效果圖、動(dòng)畫技術(shù)比較成熟,該軟件具有擴(kuò)展性能好、插件豐富、便于操作、功能強(qiáng)大等優(yōu)點(diǎn),成為設(shè)計(jì)、開發(fā)虛擬環(huán)境的必然選擇。

1.2 Virtools軟件

Virtools軟件是包含多種功能的三維開發(fā)工具,可以把已有的檔案格式進(jìn)行整合,主要由開發(fā)、生成、發(fā)布三個(gè)模塊相互組合完成。開發(fā)模塊包含大量的應(yīng)用程序、軟件開發(fā)的工具包,其中主要的創(chuàng)作工具有Virtools Dev。在上述開發(fā)環(huán)境中,用戶能夠快速、準(zhǔn)確地建立應(yīng)用程序,并依據(jù)自身需求,對(duì)三維模型、圖片、聲音等對(duì)象展開各項(xiàng)操作[2]。

在Virtools開發(fā)模塊中,用戶能夠快速、簡(jiǎn)便地創(chuàng)建應(yīng)用程序,并依據(jù)自身的需要,生成模塊主要有行為引擎、渲染引擎兩個(gè)部分。行為引擎實(shí)現(xiàn)管理、處理對(duì)象、輸入?yún)?shù)、設(shè)置屬性等操作。發(fā)布模塊主要包括EXE文件生成器、Web播放器,前者可將應(yīng)用程序直接打包成為EXE文件,后者能夠創(chuàng)建以B/S為基礎(chǔ)的網(wǎng)絡(luò)虛擬環(huán)境,如圖1所示。Virtools軟件具有強(qiáng)大、方便的交互、實(shí)時(shí)響應(yīng)能力,但其自身不具備為三維實(shí)體建?;蛑谱鲃?dòng)畫能力,因此,開發(fā)3D產(chǎn)品時(shí),該軟件必須與Maya,3DS MAX軟件結(jié)合使用。

2 設(shè)計(jì)虛擬商場(chǎng)漫游系統(tǒng)的步驟

虛擬商場(chǎng)漫游系統(tǒng)設(shè)計(jì)主要流程如圖2所示。

2.1 三維場(chǎng)景建模

對(duì)整個(gè)虛擬場(chǎng)景建設(shè)是進(jìn)行商場(chǎng)漫游系統(tǒng)設(shè)計(jì)的基礎(chǔ),場(chǎng)景建模質(zhì)量與系統(tǒng)運(yùn)行效果、三維畫面的逼真程度密切相關(guān),必須對(duì)真實(shí)的商場(chǎng)場(chǎng)景布局進(jìn)行研究、分析,確定設(shè)計(jì)的漫游系統(tǒng)所需的場(chǎng)景和范圍[3]。采用3DS MAX軟件中的點(diǎn)、線、面、體等工具,逐步構(gòu)建虛擬場(chǎng)景的各個(gè)區(qū)域。對(duì)于必須精細(xì)建模的物體,必須采用精確的幾何圖形進(jìn)行創(chuàng)建,如圖3所示。

部分非重點(diǎn)對(duì)象在確保其視覺不失真的基礎(chǔ)上,構(gòu)建一系列簡(jiǎn)單的模型,盡量使用參數(shù)化辦法進(jìn)行構(gòu)建。必須注意,構(gòu)建對(duì)象時(shí),盡量減少使用幾何體分段數(shù),復(fù)雜的幾何對(duì)象可以采用紋理貼圖進(jìn)行代替,并將場(chǎng)景內(nèi)部不可見的面展開刪除操作。在圖4中,場(chǎng)景中建設(shè)的盆栽,借助貼圖方式替代傳統(tǒng)建模形式,并將該虛擬場(chǎng)景內(nèi)家具不可見面進(jìn)行刪除,基于不影響整體效果狀態(tài)下,有效節(jié)省創(chuàng)建場(chǎng)景所用時(shí)間,提升場(chǎng)景的實(shí)時(shí)渲染效果和渲染速度。使用3DS MAX軟件操作時(shí),一般借助復(fù)制的方式增多相同物體數(shù)量。進(jìn)行復(fù)制操作時(shí),主要采用Copy(復(fù)制)、Reference(參考)、Instance(實(shí)例)三種復(fù)制方法。文中使用Instance對(duì)物體進(jìn)行復(fù)制,如圖3中的設(shè)計(jì)的床頭柜,借助Instance形式對(duì)物體實(shí)施復(fù)制操作,所復(fù)制的物體可隨原物體的改變而變化[4]。因此,根據(jù)一個(gè)物體就能合理控制所有復(fù)制物體,進(jìn)而輸出成為.nmo模式,編輯器自行把上述復(fù)制的物體包含原物體輸出一個(gè)物體狀態(tài)展開存儲(chǔ)操作,能夠縮減編譯所用時(shí)間,緩解或解決存儲(chǔ)文件過(guò)大、過(guò)小的問(wèn)題。

創(chuàng)建好上述模型后,觀看模型發(fā)現(xiàn)其逼真度較低。因此,在導(dǎo)入Virtools操作前,必須對(duì)創(chuàng)建的模型進(jìn)行材質(zhì)、貼圖、烘焙等各項(xiàng)操作。材質(zhì)具有模擬各種材料視覺效果的功能,貼圖作為物體表面紋理,采用增設(shè)模型紋理、質(zhì)地、色彩等操作,確保模型具有較強(qiáng)的真實(shí)感。在3DS MAX軟件中,建立、編輯模型材質(zhì)或貼圖均借助材質(zhì)編輯器(Meterial)進(jìn)行操作。因Virtools Dev工具缺少雙重材質(zhì)導(dǎo)入功能,換句話來(lái)說(shuō),對(duì)多維、多面材質(zhì)模型展開操作,實(shí)施烘焙后即可順利將材料導(dǎo)入Virtools中。烘焙是指將模型場(chǎng)景內(nèi)的光照等信息渲染形成一張貼圖的方式,之后將烘焙完成的貼圖重新貼到場(chǎng)景內(nèi)的技術(shù),上述操作可在實(shí)時(shí)3D應(yīng)用系統(tǒng)中降低渲染器負(fù)擔(dān),提高操作的幀速率。常見的烘焙方式主要包括Complete Map,Lighting Map兩種形式。本文使用Complete Map方式展開烘焙操作,該工具幾乎支持3DS MAX多數(shù)材質(zhì),例如:復(fù)合材質(zhì)、多維材質(zhì)等,烘焙完成的圖片光感效果極好。必須注意,想要獲得最佳的烘焙效果,需合理設(shè)計(jì)烘焙尺寸,盡可能做大一些,否則比較模糊,效果不佳。若烘焙完成的物體曝光度過(guò)大,必須再次調(diào)整燈光倍增值、材質(zhì)高光等各項(xiàng)參數(shù)。物品再次實(shí)施烘焙操作時(shí),必須清除上一次物體烘焙結(jié)果,不然會(huì)出現(xiàn)烘焙貼圖錯(cuò)誤的情況。烘焙操作流程如下:將編輯器內(nèi)自動(dòng)出現(xiàn)的貼圖坐標(biāo)進(jìn)行刪除操作,如果在Render To Textures面板中對(duì)烘焙結(jié)果實(shí)施清除。合理設(shè)置再次烘焙各項(xiàng)參數(shù),導(dǎo)出并存儲(chǔ)相關(guān)數(shù)據(jù)信息[5]。

3 虛擬商城漫游系統(tǒng)實(shí)現(xiàn)效果

3.1 場(chǎng)景模型導(dǎo)入到Virtools

對(duì)模型或角色動(dòng)畫進(jìn)行導(dǎo)出操作前,必須在3DS MAX軟件中安裝相應(yīng)的3DS MAX Exporer.exe,同時(shí)對(duì)是否安裝MAX2 Virtools.DLE文件加載項(xiàng)進(jìn)行檢測(cè)。對(duì)所創(chuàng)建的模型或角色動(dòng)畫進(jìn)行數(shù)據(jù)轉(zhuǎn)換,保存成Virtools Dev工具默認(rèn)的.nmo格式文件。導(dǎo)入Virtools后,若發(fā)現(xiàn)導(dǎo)入的圖片或模型顯示黑色,需在材質(zhì)設(shè)置選項(xiàng)中合理調(diào)整自發(fā)光參數(shù),即能恢復(fù)正常的貼圖效果[6]。

3.2 商城漫游場(chǎng)景的交互實(shí)現(xiàn)

基于Virtools的虛擬現(xiàn)實(shí)系統(tǒng)交互方式主要有內(nèi)置的行為交互模塊(Building Blocks,BB)和Virtools腳本語(yǔ)言(VSL)兩種。BB方法操作簡(jiǎn)便,流程清晰,但模塊及功能有限,容易出現(xiàn)參數(shù)繁瑣,程序臃腫,復(fù)用性差等問(wèn)題;VSL靈活自由,復(fù)用率高,有助于提高系統(tǒng)運(yùn)行效率。本系統(tǒng)中較為常見、簡(jiǎn)單的交互,采用內(nèi)置BB實(shí)現(xiàn);對(duì)于繁雜場(chǎng)景下靈活多變,可重用性需求高的交互功能,采用VSL實(shí)現(xiàn)。

系統(tǒng)采用鍵盤控制角色動(dòng)作,一旦用戶觸發(fā)相應(yīng)按鍵,系統(tǒng)就會(huì)完成用戶指令響應(yīng)。為實(shí)現(xiàn)虛擬角色站在地面上,并避免其在行走過(guò)程中與墻壁等障礙物發(fā)生碰撞,通過(guò)Virtools內(nèi)置BB實(shí)現(xiàn)。增設(shè)Character Controler至虛擬角色的Script內(nèi),對(duì)虛擬角色各項(xiàng)參數(shù)實(shí)施編輯。增加Prevent Collision,Object Slider至虛擬場(chǎng)景角色的Script,并對(duì)各項(xiàng)輸入?yún)?shù)展開編輯。這時(shí),應(yīng)該對(duì)地面設(shè)置“Floor”屬性,并對(duì)可能出現(xiàn)的碰撞物體賦予“Obstacles”屬性[7]。

系統(tǒng)采用一個(gè)第一人稱攝像機(jī)作為用戶視角,為角色和攝像機(jī)創(chuàng)建Parent關(guān)系,攝像機(jī)跟隨角色產(chǎn)生運(yùn)動(dòng),通過(guò)鍵盤控制角色運(yùn)動(dòng)方向,通過(guò)鼠標(biāo)動(dòng)作控制漫游視角變化。虛擬角色漫游交互采用VSL實(shí)現(xiàn),主要代碼如下:

Void main( ){GUID inputguid=GetInputManagerGuid();

InputManager iM=InputManager.Cast(bc.GetManagerByGuid(inputguid);

Vector oldPos,newPos;

Vector SpeedW(0,0,-0.2), SpeedL(-0.2,0,0), SpeedY(0, -0.2,0), SpeedZ(0,0,-0.2)); //定義各個(gè)方向的轉(zhuǎn)動(dòng)速度

Float rotateAngle=0.02; //定義轉(zhuǎn)動(dòng)的角度系數(shù)

Vector2D MPin;

Vector MosPos;

iM.GetMouseRelativePosition(MosPos);

//獲取鼠標(biāo)實(shí)時(shí)位移向量MosPos

iM.GetMousePosition(MPin,false); //獲取鼠標(biāo)當(dāng)前坐標(biāo)

bool IsMosIn;

if(Mpin.x>=0&&Mpin.x<=800&& Mpin.y>=0&&Mpin.y<=600) IsMosIn=true;

else IsMosIn=false; //判定鼠標(biāo)是否在窗口內(nèi)

if(iM.IsMouseButtonDown(CK_MouseButton_Left)&& IsMosIn)

{Vector AxisY(0,1,0);

floatRotateAngleX=MosPos.x*(-0.005);

floatRotateAngleY=MosPos.y*(-0.005);

Man.rotate(AxisY,RotateAngleX); //Man為VSL模塊的輸入

參數(shù),類型為Character,控制人物在左右方向上移動(dòng)

VectorAxis;

MyCamera.GetOrientation(Null, Null,Axis, Null);

MyCamera.Rotate(Axis, -rotateAngleY);

//MyCamera為VSL模塊輸入?yún)?shù),類型為Camera??刂茢z像

機(jī)在上下方向上轉(zhuǎn)動(dòng)

}

//當(dāng)鼠標(biāo)在窗口內(nèi),且按下鼠標(biāo)左鍵時(shí),控制視角方向變動(dòng)

If(iM.isKeyDown(CKKEY_W)) Man.Translate(SpeedW, Man); //當(dāng)按下W鍵,人物向前移動(dòng)

…… //其他方向移動(dòng),同理 }}

3.3 虛擬商品模型三維交互展示實(shí)現(xiàn)

商品模型三維展示交互效果包括模型移動(dòng)、旋轉(zhuǎn)、縮放等。例如:用戶進(jìn)行商品觀摩時(shí),可通過(guò)鼠標(biāo)按鍵對(duì)模型進(jìn)行旋轉(zhuǎn)觀看,有助于全方位、多角度了解商品外觀和特點(diǎn)。模型角度旋轉(zhuǎn)操作使用基于VSL開發(fā)的自定義BB“MouseRotate”和“While”循環(huán),可實(shí)現(xiàn)用鼠標(biāo)按一定軸向(“1”為y軸)和單位角度來(lái)旋轉(zhuǎn)模型。

inputManager iM =InputManager.Cast(bc.GetManagerByGuid(GetInputManagerGuid()));

RenderContext rc=bc.GetPlayerRenderContext();

IntersectionDesc desc;

rcx.Pick(x,y,desc);

//根據(jù)鼠標(biāo)的位移來(lái)旋轉(zhuǎn)模型,x和y是鼠標(biāo)的位置坐標(biāo)

ent=desc.Object; //當(dāng)鼠標(biāo)左鍵點(diǎn)選模型,先將“ent”初始

化為模型的位移

iM.GetMouseRelativePosition(speed);

speed.x*=RSpeed; //RSpeed為單位旋轉(zhuǎn)角度

float delta=bc.GetDeltaTime()/1000;

If(axis==1){ ent.Rotate(1,0,0,0,ent);

//以y軸為旋轉(zhuǎn)軸方向,對(duì)模型進(jìn)行旋轉(zhuǎn)

ent.Rotate(0,1,0,speed.x*delta,ent);

ent.Rotate(0,0,1,0,ent); }

3.4 虛擬商場(chǎng)中自動(dòng)開關(guān)門的實(shí)現(xiàn)

采用虛擬場(chǎng)景行為模塊內(nèi)的Proximity判定創(chuàng)設(shè)角色與商城門兩者間的距離,如果虛擬對(duì)象和門之間距離比設(shè)置閾值小,自動(dòng)執(zhí)行“開門”操作。如果兩者距離明顯大于所設(shè)定閾值,實(shí)施“關(guān)門”操作。采用“Rotate”對(duì)門旋轉(zhuǎn)狀態(tài)進(jìn)行控制,如圖5所示。

系統(tǒng)以VMO文件格式保存,發(fā)布成HTML網(wǎng)頁(yè)格式,用戶可以在瀏覽器上進(jìn)行多視點(diǎn)、多場(chǎng)景的交互式漫游瀏覽,最大程度地提高漫游的真實(shí)感,對(duì)商城的宣傳發(fā)揮著重要作用。

4 結(jié) 語(yǔ)

本文對(duì)虛擬商城漫游系統(tǒng)設(shè)計(jì)模式與流程進(jìn)行分析總結(jié),基于3DS MAX和Virtools開發(fā)工具進(jìn)行了系統(tǒng)開發(fā)與實(shí)現(xiàn)。對(duì)復(fù)雜場(chǎng)景的虛擬漫游研究是計(jì)算機(jī)圖形學(xué)領(lǐng)域的一個(gè)重要課題,在確保在線實(shí)時(shí)漫游速度和漫游真實(shí)感的同時(shí),漫游系統(tǒng)的場(chǎng)景優(yōu)化策略和碰撞檢測(cè)技術(shù)將是本文下一步的研究方向。

參考文獻(xiàn)

[1] 朱玉.基于 Unity3D 漫游系統(tǒng)的設(shè)計(jì)與研究[J].信息安全與技術(shù),2014,23(12):78?81.

[2] 陳山.基于街景地圖服務(wù)的虛擬實(shí)景漫游系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2015,13(6):1121?1124.

[3] 唐菲菲,果連成,張珣.智能家居系統(tǒng)全景界面可控點(diǎn)自動(dòng)識(shí)別的研究[J].現(xiàn)代電子技術(shù),2013,36(2):32?35.

[4] 歐陽(yáng)攀,李強(qiáng),盧秀慧.基于Unity3D的虛擬校園開發(fā)研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(4):19?22.

[5] 肖君,霍超塵.基于3DS MAX與VRP的虛擬商城漫游系統(tǒng)的優(yōu)化[J].中國(guó)電子商務(wù),2013,11(2):61?62.

[6] 于力超,張賢鋒.基于WebGL的網(wǎng)上虛擬太陽(yáng)系漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與信息技術(shù),2015,23(1):49?53.

[7] 胡春花,陳曉梅.基于虛擬現(xiàn)實(shí)的3D演出場(chǎng)館漫游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014,37(31):7473?7476.

猜你喜歡
商城漫游鼠標(biāo)
Progress in Neural NLP: Modeling, Learning, and Reasoning
霹靂漫游堂
商城
NASA漫游記
悅居商城
悅居商城shop
51,商城
邊走邊看:漫游海底 夢(mèng)想成真
45歲的鼠標(biāo)
超能力鼠標(biāo)
香港| 香河县| 甘洛县| 巴青县| 高陵县| 辽阳县| 麻阳| 岑溪市| 鹰潭市| 日土县| 万荣县| 绥化市| 华容县| 禄丰县| 古交市| 射阳县| 安陆市| 万盛区| 华宁县| 同心县| 朝阳区| 花莲市| 台湾省| 麟游县| 荆州市| 海门市| 固安县| 永登县| 泌阳县| 博爱县| 通州区| 水城县| 乐陵市| 潼关县| 榆树市| 临澧县| 防城港市| 安泽县| 大厂| 南木林县| 新平|