亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Unity3D的虛擬現(xiàn)實(shí)家裝系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2022-11-25 13:07:47陳春暉
        無(wú)線(xiàn)互聯(lián)科技 2022年17期
        關(guān)鍵詞:虛擬現(xiàn)實(shí)坐標(biāo)系物品

        陳春暉

        (福建農(nóng)業(yè)職業(yè)技術(shù)學(xué)院,福建 福州 350000)

        0 引言

        虛擬現(xiàn)實(shí)技術(shù)是現(xiàn)代科學(xué)技術(shù)發(fā)展中的重要產(chǎn)物,因?yàn)槠洫?dú)特的技術(shù)優(yōu)勢(shì),比如仿真性、互動(dòng)性等,已經(jīng)廣泛應(yīng)用于多個(gè)行業(yè)和領(lǐng)域。通過(guò)將虛擬現(xiàn)實(shí)技術(shù)與家庭裝修系統(tǒng)進(jìn)行融合,能夠?qū)彝パb修方案進(jìn)行仿真模擬,在該系統(tǒng)的應(yīng)用過(guò)程中,用戶(hù)能夠通過(guò)選擇裝修材料、布置方案等直觀地看到裝修效果。對(duì)于裝修企業(yè)以及設(shè)計(jì)人員而言,不再需要花費(fèi)大量資金新建樣板房,具有良好的經(jīng)濟(jì)效益,可以采用科學(xué)的系統(tǒng)設(shè)計(jì)方案,提高系統(tǒng)應(yīng)用實(shí)效性。

        1 基于Unity3D的虛擬現(xiàn)實(shí)家裝系統(tǒng)功能與架構(gòu)設(shè)計(jì)

        通常情況下,用戶(hù)對(duì)于家庭裝修系統(tǒng)具有如下幾項(xiàng)功能要求:(1)用戶(hù)管理功能。需要為用戶(hù)提供基礎(chǔ)的用戶(hù)注冊(cè)、用戶(hù)登錄以及密碼管理等功能。(2)家庭管理功能。需要為用戶(hù)提供家庭房間增加、房間刪除、房間查詢(xún)以及房間修改等功能。(3)房間物品管理功能。需要為用戶(hù)提供房間內(nèi)的物品移動(dòng)、物品旋轉(zhuǎn)、物品張貼、物品懸掛、顏色更換、材質(zhì)更換等多項(xiàng)功能。(4)保存與加載功能。需要為用戶(hù)提供隨時(shí)保存房間的設(shè)計(jì)方案與效果加載功能,還需要提供不同方案的對(duì)比功能。(5)其他功能。為用戶(hù)提供留言、通信、評(píng)論等社交功能,在成本規(guī)劃完成后將這部分功能移動(dòng)到其他應(yīng)用程序中[1]。

        本次基于Unity3D的虛擬現(xiàn)實(shí)家裝系統(tǒng)采用經(jīng)典的模塊化設(shè)計(jì)方案,主要包括UI模塊、業(yè)務(wù)邏輯模塊以及數(shù)據(jù)訪問(wèn)模塊。在UI模塊中,主要包括用戶(hù)信息、房間信息、物體信息列表以及當(dāng)前信息,通過(guò)動(dòng)畫(huà)控制器對(duì)物體狀態(tài)進(jìn)行模擬與設(shè)計(jì);旋轉(zhuǎn)物體、張貼物體、懸掛物體、解綁物體、綁定物體、保存場(chǎng)景以及加載場(chǎng)景等通過(guò)射線(xiàn)控制模塊進(jìn)行調(diào)整;系統(tǒng)基礎(chǔ)為數(shù)據(jù)訪問(wèn)模塊,數(shù)據(jù)加載類(lèi)模塊用于獲取和保存Json公式數(shù)據(jù),針對(duì)模型、圖片以及圖形等資源采用資源加載模塊進(jìn)行交互;中間模塊為業(yè)務(wù)邏輯模塊,其中核心為GameController,通過(guò)該控制器能夠?qū)崿F(xiàn)對(duì)當(dāng)前房間中的物體控制,比如移動(dòng)、旋轉(zhuǎn)等,MonoBehavior能夠?qū)φw房間場(chǎng)景進(jìn)行加載與保存;GameController中每個(gè)房間或物品都能夠?qū)⒖刂祁?lèi)作為組件;控制類(lèi)組件能夠記錄房間中物體的位置、材質(zhì)以及顏色等,通過(guò)對(duì)物體顏色的操作實(shí)現(xiàn)物體狀態(tài)改變;同時(shí)提供射線(xiàn)類(lèi)控制模式,主要功能是選擇當(dāng)前房間中的物體;動(dòng)畫(huà)控制器用戶(hù)將當(dāng)前的物品狀態(tài)調(diào)整與UI動(dòng)畫(huà)相結(jié)合;GameControlle中的OnGUI以及Update等內(nèi)置程序能夠用于人機(jī)界面交互[2]。

        2 系統(tǒng)核心問(wèn)題及解決方法

        2.1 家庭裝修中房間物品的選取

        在用戶(hù)利用計(jì)算機(jī)或智能手機(jī)訪問(wèn)基于Unity3D的虛擬現(xiàn)實(shí)家裝系統(tǒng)時(shí),采用鼠標(biāo)、手柄等對(duì)物體進(jìn)行交互,邏輯與在2D平面中的操作存在一定差異,鼠標(biāo)、手柄在操作過(guò)程中得到的數(shù)據(jù)為屏幕中的二維坐標(biāo),場(chǎng)景中物體采用三維坐標(biāo),因此,需要對(duì)二維坐標(biāo)進(jìn)行處理。系統(tǒng)中應(yīng)用Unity3D所提供的射線(xiàn)類(lèi)Ray控制,具有模擬人眼視線(xiàn)的功能,Camera能夠向場(chǎng)景中發(fā)射一條射線(xiàn),為了能夠明確射線(xiàn)遇到房間物品的具體情況,需要對(duì)房間中的物品增加Collide組件,保證能夠?qū)崿F(xiàn)物品與射線(xiàn)的碰撞效果,能夠?yàn)橛脩?hù)提供模擬場(chǎng)景。針對(duì)射線(xiàn)碰撞到的物體可以更改其外觀,還可以模擬出物品的選擇[3]。

        2.2 預(yù)制件問(wèn)題

        在虛擬現(xiàn)實(shí)場(chǎng)景中,為了能夠展現(xiàn)出房間物品的具體情況,在本次系統(tǒng)設(shè)計(jì)中采用了多項(xiàng)細(xì)節(jié)處理方式,主要包括材質(zhì)、貼圖、腳本處理邏輯以及動(dòng)畫(huà)等內(nèi)容。以虛擬現(xiàn)實(shí)場(chǎng)景中的人物為例,需要從3DMax中導(dǎo)出fbx格式人物模型,將其增加到虛擬現(xiàn)實(shí)場(chǎng)景中,在場(chǎng)景中導(dǎo)出材質(zhì)與貼圖,并設(shè)置動(dòng)畫(huà)控制器與動(dòng)畫(huà),將對(duì)應(yīng)的控制代碼以組件形式增加到人物模型中,從而構(gòu)成一個(gè)虛擬現(xiàn)實(shí)人物,但是該過(guò)程對(duì)于用戶(hù)而言,只需要對(duì)場(chǎng)景中人物進(jìn)行移動(dòng)。為了能夠提高系統(tǒng)開(kāi)發(fā)便利性,在人物及其元素構(gòu)成中將其預(yù)制成為一個(gè)整體,同時(shí)Unity3D提供了預(yù)制件的整體設(shè)計(jì)方案[4]。

        2.3 坐標(biāo)調(diào)整問(wèn)題

        在用戶(hù)采用鼠標(biāo)、手柄等輸入設(shè)備對(duì)物體進(jìn)行操作的過(guò)程中,需要完成二維坐標(biāo)向三維坐標(biāo)的調(diào)整。在Unity3D中具有多種不同的坐標(biāo)系,比如本地坐標(biāo)、視圖坐標(biāo)等,世界坐標(biāo)對(duì)應(yīng)真實(shí)的東、西、南、北4個(gè)方向,本地坐標(biāo)以物體自身作為基礎(chǔ),對(duì)應(yīng)真實(shí)的物品前、后、左、右,屏幕坐標(biāo)為二維坐標(biāo),在用戶(hù)操作時(shí)能夠自動(dòng)化實(shí)現(xiàn)對(duì)二維坐標(biāo)的轉(zhuǎn)換,視圖坐標(biāo)為虛擬現(xiàn)實(shí)場(chǎng)景中攝像機(jī)輸出的Viewport坐標(biāo)。因?yàn)楦鱾€(gè)坐標(biāo)系存在差異,在對(duì)應(yīng)場(chǎng)景中物體的位移、旋轉(zhuǎn)等操作能夠?qū)崿F(xiàn)自動(dòng)化坐標(biāo)換算。

        2.4 結(jié)果保存

        在虛擬家庭裝修完成后,需要將模擬方案保存,若存儲(chǔ)的為整體場(chǎng)景,因?yàn)檎w虛擬現(xiàn)實(shí)場(chǎng)景中存在大量物品,每個(gè)物品還包含不同材質(zhì)、顏色以及位置信息等,整體存儲(chǔ)量較大,根據(jù)計(jì)算,常規(guī)的家庭裝修虛擬現(xiàn)實(shí)結(jié)果模擬方案一般能達(dá)到500 M以上,采用以虛擬現(xiàn)實(shí)為基礎(chǔ)的保存方式不利于存儲(chǔ)與還原,為此,本次系統(tǒng)設(shè)計(jì)中應(yīng)用Json實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的保存。Json是一項(xiàng)輕量級(jí)的數(shù)據(jù)格式,相比于XML,其靈活性較好,輸出存儲(chǔ)時(shí)間更長(zhǎng),從而能夠減少數(shù)據(jù)存儲(chǔ)與傳送;Json針對(duì)數(shù)組和對(duì)象采用不同的形式,數(shù)組采用“[]”,格式比如[“java”,”javascript”,”vb”],數(shù)值存儲(chǔ)時(shí)采用索引格式進(jìn)行讀??;對(duì)象存儲(chǔ)采用{}格式,格式采用鍵值對(duì)的方式,比如{key:value,key:value,…},Unity3D支持Json功能。

        3 系統(tǒng)實(shí)現(xiàn)

        3.1 物體選取功能實(shí)現(xiàn)方式

        在虛擬現(xiàn)實(shí)場(chǎng)景中,選擇物體需要采用射線(xiàn)與碰撞檢測(cè),在Unity3D中能夠采用RaycastHit實(shí)現(xiàn),使用Cameta向屏幕射出一條射線(xiàn)后,在遇到碰撞檢測(cè)物體時(shí),能夠從RaycastHit的屬性中獲取碰撞物體的信息。示例代碼為:

        RaycastHithit;

        Vector3 pos = Input.GetTouch(0).position

        Ray ray Camera.Main.ScreenPointToRay (pos);

        if(Physics.Raycast(ray,outhit)){

        return hit.transform;

        }

        Else return null;

        在上述代碼中,若射線(xiàn)為左手觸碰屏幕區(qū)域發(fā)出的射線(xiàn),碰撞到物體后會(huì)返回物體中,反之返回null,從而實(shí)現(xiàn)對(duì)虛擬現(xiàn)實(shí)物體的選取。

        3.2 預(yù)制組件實(shí)現(xiàn)方式

        預(yù)制組件功能呈現(xiàn)出本次系統(tǒng)設(shè)計(jì)精益求精的思想,能夠?yàn)橛脩?hù)提供更高質(zhì)量的設(shè)計(jì)方案,通過(guò)采用更多的預(yù)制組件能夠有效提高系統(tǒng)質(zhì)量以及開(kāi)發(fā)效率。家庭裝修系統(tǒng)中包括家具、壁紙、地板以及電器等多項(xiàng)元素,難以將所有元素事先制作,因此,在系統(tǒng)應(yīng)用過(guò)程中需要不斷豐富,可以采用預(yù)制件的方式實(shí)現(xiàn)。在選擇對(duì)應(yīng)物品后,需要對(duì)物體進(jìn)行移動(dòng)處理,為了實(shí)現(xiàn)坐標(biāo)中的效果,需要完成以下幾項(xiàng)動(dòng)作:(1)從3DMax中導(dǎo)出fbx格式圖形。(2)在虛擬現(xiàn)實(shí)場(chǎng)景中增加Cylinder組件,并對(duì)其屬性進(jìn)行更改,使其成為符合要求的圖形。(3)組合兩個(gè)圖形使其構(gòu)成單個(gè)坐標(biāo)軸。(4)將fbx格式圖形添加攪拌Cone.cs,該腳本能夠使得用戶(hù)操作在圖形中更改圖形的顏色或材質(zhì)。(5)對(duì)坐標(biāo)軸進(jìn)行復(fù)制與旋轉(zhuǎn),使其構(gòu)成x,y,z3個(gè)方向,并對(duì)其他坐標(biāo)軸材質(zhì)進(jìn)行調(diào)整,使得不同的坐標(biāo)軸能夠表現(xiàn)為不同的顏色狀態(tài)。(6)提供ConeMan-ager,在選擇某個(gè)物品時(shí),創(chuàng)建坐標(biāo)軸副本,該副本與選種目標(biāo)結(jié)合,同時(shí)在移動(dòng)坐標(biāo)軸時(shí)還能夠移動(dòng)選定的物品。

        在上述流程結(jié)束后,能夠直接在Unity3D開(kāi)發(fā)場(chǎng)景中將坐標(biāo)軸拖動(dòng)到Assert中,Assert中能夠顯示出制作完成的預(yù)制物品,預(yù)制物品還能夠在其他場(chǎng)景中使用;除三維坐標(biāo)系之外,場(chǎng)景中的其他元素比如電器、家具等,都能夠采用預(yù)制件制作的方式,按照用戶(hù)的具體需求將其添加到場(chǎng)景中加載[5]。

        3.3 坐標(biāo)系調(diào)整實(shí)現(xiàn)方式

        用戶(hù)在虛擬現(xiàn)實(shí)場(chǎng)景中對(duì)家庭裝修方案進(jìn)行模擬時(shí),需要對(duì)各種物品進(jìn)行擺放,所以需要對(duì)物品的坐標(biāo)系進(jìn)行轉(zhuǎn)化與調(diào)整。其轉(zhuǎn)換流程為:(1)按照屏幕坐標(biāo)機(jī)計(jì)算各點(diǎn)在世界坐標(biāo)系中的位置。(2)將物品的本地坐標(biāo)系前進(jìn)方向量轉(zhuǎn)化為世界坐標(biāo)系中的單體向量。(3)將物品的世界坐標(biāo)系位置與向量融合。以上流程實(shí)現(xiàn)代碼為:

        Vector3 screenSpace = mCamera.WorhlToSereenPoint(transforni.position);

        floatx = Input.mousePosition.X;

        floatY =Input.mousePosition.Y;

        Veeror3 vector = new Vector3 (X,Y,screenSpace.z);

        Vector3 startPos = inCanlel,a.ScreenToW orldPoint (veetoF);

        while(Input.GetMouseBulton(0))

        {

        Vector3curScreenSpace=new Vector3(Input.mousePositio.X,Input.mousePosition.Y,screenSpace.z);

        //求出偏移量

        var offset = mCamera.ScreenToWorldPoint (curScreenSpace)- startPos;

        //將兩點(diǎn)之間向量投影到物體的上方

        offset= Vector3.Project(ofset,GetMoveDirection());

        //對(duì)目標(biāo)位置增加一個(gè)偏移量得到新位置

        Transform.position+=offset;

        //重置開(kāi)始點(diǎn),為下一幀做準(zhǔn)備

        startPos = transform.Position;

        //等待下一幀

        Yield return new WaitForFixedUpdate();

        }

        3.4 結(jié)果存儲(chǔ)實(shí)現(xiàn)方式

        在對(duì)家庭裝修的虛擬現(xiàn)實(shí)結(jié)果進(jìn)行存儲(chǔ)的過(guò)程中,采用Json數(shù)據(jù)格式,因?yàn)榧彝パb修系統(tǒng)需要與遠(yuǎn)程服務(wù)連接與交互,實(shí)現(xiàn)對(duì)多種模型的下載,所以,需要在系統(tǒng)中記錄模型ID,不用將所有數(shù)據(jù)存儲(chǔ),同時(shí)不需要保存模型細(xì)節(jié)。在模型之間對(duì)坐標(biāo)系進(jìn)行轉(zhuǎn)化,需要記錄物品的三維坐標(biāo);物品需要旋轉(zhuǎn)處理,所以需要記錄物品在各個(gè)軸的旋轉(zhuǎn)角度。最重要的是,物品需要和其他物品保持一定關(guān)系,比如圖片貼在墻面上、書(shū)籍放在書(shū)桌上等,這種位置關(guān)系也需要存儲(chǔ)[6]。以書(shū)籍放在書(shū)桌上的Json數(shù)據(jù)格式片段為例,即:{“ID”:”SO132”,”Name”:”Book1,”X”:” 200”,”Y”:”300”,”Z”:”165”,”RotateX”:”0”.” RotateY”:”0”,”RotateZ”:”0”,”Action”:” Put”,”Target:”Desk1”}

        在上述片段的最后一部分中,Action和Target表示與對(duì)象之間具體關(guān)系,在虛擬場(chǎng)景中存儲(chǔ)可以通過(guò)以下代碼流程實(shí)現(xiàn):

        for(objectobjin場(chǎng)景 中的所有物體)

        {

        if(obj已經(jīng)生成過(guò) json)continue;

        if(obj有關(guān)聯(lián)對(duì)象)

        生成關(guān)聯(lián)對(duì)象的json

        生成當(dāng)前對(duì)象的json;

        }

        若需要按照生成的Json對(duì)場(chǎng)景進(jìn)行還原,按照物品的ID從網(wǎng)絡(luò)緩存中進(jìn)行記載,如果網(wǎng)絡(luò)緩存不存在,則可以從服務(wù)器中進(jìn)行加載,從而減少數(shù)據(jù)加載量,有效提升系統(tǒng)運(yùn)行速度。

        4 系統(tǒng)評(píng)價(jià)

        本文所設(shè)計(jì)的基于Unity3D的虛擬現(xiàn)實(shí)家裝系統(tǒng),在實(shí)踐應(yīng)用中具有良好的效果,用戶(hù)能夠通過(guò)系統(tǒng)功能對(duì)家庭裝修方案進(jìn)行實(shí)時(shí)調(diào)整,更加直觀地明確家庭裝修效果,且能夠靈活地對(duì)各項(xiàng)家具、電器等物品進(jìn)行調(diào)整,還能夠?qū)ρb修材料進(jìn)行材質(zhì)、顏色等內(nèi)容的挑選,家庭裝修模擬方案存儲(chǔ)結(jié)果數(shù)據(jù)較小,能夠提高各項(xiàng)資源加載速度,對(duì)于用戶(hù)以及裝修公司具有重要作用。因此,可以將本文所設(shè)計(jì)的系統(tǒng)應(yīng)用在家庭裝修工作中,并結(jié)合實(shí)際情況對(duì)系統(tǒng)功能進(jìn)一步完善,確保虛擬現(xiàn)實(shí)系統(tǒng)能夠發(fā)揮出更好的效果。

        5 結(jié)語(yǔ)

        綜上所述,本文設(shè)計(jì)開(kāi)發(fā)了一套基于Unity3D的虛擬現(xiàn)實(shí)家裝系統(tǒng),對(duì)其系統(tǒng)設(shè)計(jì)以及實(shí)現(xiàn)方式進(jìn)行了全面闡述,希望能夠?qū)ξ覈?guó)家庭裝修行業(yè)起到一定的借鑒和幫助作用,利用虛擬現(xiàn)實(shí)技術(shù)進(jìn)一步促進(jìn)家庭裝修行業(yè)發(fā)展,為用戶(hù)以及裝修企業(yè)提供更加便利的工作條件。

        猜你喜歡
        虛擬現(xiàn)實(shí)坐標(biāo)系物品
        稱(chēng)物品
        “雙十一”,你搶到了想要的物品嗎?
        誰(shuí)動(dòng)了凡·高的物品
        解密坐標(biāo)系中的平移變換
        坐標(biāo)系背后的故事
        基于重心坐標(biāo)系的平面幾何證明的探討
        風(fēng)口上的虛擬現(xiàn)實(shí)
        商周刊(2017年24期)2017-02-02 01:42:55
        虛擬現(xiàn)實(shí)技術(shù)向科幻小說(shuō)借靈感
        海外星云(2016年7期)2016-12-01 04:18:00
        HTC斥資千萬(wàn)美元入股虛擬現(xiàn)實(shí)設(shè)備商WEVR
        找物品
        国内精品久久久久久久久齐齐| 我和丰满妇女激情视频| 午夜男女很黄的视频| 成人国产精品免费视频| 国产乱子伦农村xxxx| 亚洲精品国产av成拍色拍| 亚洲av无码一区二区三区鸳鸯影院| 国产精品9999久久久久| 麻豆国产av尤物网站尤物| 精品黄色一区二区三区| 国产午夜激无码av毛片不卡| 无码中文字幕日韩专区视频| 超碰Av一区=区三区| 日韩伦理av一区二区三区| 欧美v国产v亚洲v日韩九九| 67194熟妇在线永久免费观看| 在线视频中文字幕乱人伦| 性感的小蜜桃在线观看| 亚洲色精品三区二区一区| 少妇厨房愉情理伦片免费| 少妇熟女淫荡丰满| 中文字幕人妻日韩精品| 成人免费直播| 欧美激情区| 久久夜色精品国产亚洲av老牛| 丰满女人猛烈进入视频免费网站| 18禁裸男晨勃露j毛免费观看| 亚洲区偷拍自拍29p| 久久婷婷综合色一区二区| 国内精品久久久人妻中文字幕| 99这里只有精品| 成人影院免费观看在线播放视频| 日韩中文字幕有码午夜美女| 亚洲熟女乱色综合亚洲图片| 2022国内精品免费福利视频| 久久精品av在线视频| 亚洲香蕉成人av网站在线观看| 欧美人成人亚洲专区中文字幕| 国产精品三级自产拍av| 伊人久久综合无码成人网| 双乳被一左一右吃着动态图|