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

        ?

        基于移動終端的家具互動展示系統(tǒng)的應用研究

        2018-07-28 07:18:52謝新慧司占軍尚博
        電腦知識與技術 2018年15期
        關鍵詞:虛擬現(xiàn)實

        謝新慧 司占軍 尚博

        摘要:該研究實現(xiàn)了基于移動終端的家居互動展示系統(tǒng)。通過Auto CAD創(chuàng)建房屋的戶型圖,利用3d max創(chuàng)建建筑物以及所有家具的三維模型,并在Photo shop中對家具及建筑物貼圖進行修飾,最后導入到unity中實現(xiàn)房屋漫游以及其他交互功能。在最終的展示系統(tǒng)中,用戶可以任意進入家具城、品牌家具的網上展廳,并以第一人稱的角度對家具城里的家具進行參觀。同時,用戶可以根據自己的意愿選擇某個家具,對其進行移動,旋轉等操作,實現(xiàn)近距離觀看家具的功能。

        關鍵詞:虛擬現(xiàn)實;家具互動;房屋漫游

        中圖分類號:TP319 文獻標識碼:A 文章編號:1009-3044(2018)15-0209-03

        隨著科技飛速發(fā)展,人們的生活質量不斷提高[1]。人們早已不能滿足二維的平面世界,虛擬現(xiàn)實技術(VR技術)應運而生[2]。虛擬現(xiàn)實技術是把現(xiàn)實世界構建成一個新的3D虛擬立體模型,用戶可以借用第三方設施或設備體驗身臨其境的處于所構建的3D模型中[1]。VR技術打破了很久以來的平面展示系統(tǒng)的限制,它利用自己所創(chuàng)建的立體仿真環(huán)境的優(yōu)點在很多領域占有一席之地。比如現(xiàn)在的房地產業(yè),客戶看到的不僅僅是簡單的戶型圖,或者是房屋的室內照片,而是以第一人稱的視角,真正進入到自己喜歡的房屋內進行游覽、觀看。對房屋的各個部位和角落都可以清楚地了解。另外,對家具的擺放和布局也可以有一個清楚地了解。

        基于移動終端的家具互動展示系統(tǒng),顧名思義,就是把某一個戶型和家具在移動終端上展示出來的系統(tǒng)[2],這里的移動終端可以是平板電腦,手機等。在向用戶展示的過程中,用戶可以完成與家具的簡單交互,比如對家具進行簡單的移動,旋轉等。在該系統(tǒng)中,人們可以全方位地了解自己喜歡的戶型,并且對戶型里面的家具也可以有比較明確的了解。

        1 開發(fā)環(huán)境與軟件

        制圖環(huán)境: Windows 8系統(tǒng),Intel(R) Core(TM)i7 CPU ,4G內存,64位操作系統(tǒng)

        建模環(huán)境:Windows 8系統(tǒng),Intel(R) Core(TM)i7 CPU ,4G內存,64位操作系統(tǒng)

        開發(fā)環(huán)境:Windows 7系統(tǒng),Intel(R) Core(TM)i7 CPU ,4G內存,64位操作系統(tǒng)

        制作軟件: Auto CAD 2014、3ds Max 2014、Unity 5.6.1f1 (64-bit)、Photo shop cc

        2 設計思路

        首先進行市場調研,了解虛擬家裝的應用市場,確定所要建立的戶型結構以及搜集相關的貼圖素材。然后在3ds Max中進行建模并實現(xiàn)相應的渲染效果。在Unity3D中實現(xiàn)后期交互功能,并進行發(fā)布及性能的測試。

        3 設計與實現(xiàn)

        3.1 前期準備工作

        對整個虛擬家裝市場進行調研,根據市場需求制定出相應的策劃方案。同時通過書籍的查閱和互聯(lián)網查詢來收集相關貼圖和模型素材,并下載相關軟件,儲備相關知識,為后期制作做好充分準備[3]。

        3.2 房屋模型的構建

        房屋模型構建過程分為三部分,房子的戶型建立、門窗的建立、家具及電器模型的建立。

        房子的戶型建立。首先在3D MAX設置毫米為基本單位。然后,將CAD戶型圖拖入3D MAX的透視圖中,先描輪廓,并選擇校準工具將描好的輪廓進行校準,使用捕捉工具將所有點的橫坐標和縱坐標對齊到一個點上。將戶型圖描好并且校準之后,選中戶型圖,右鍵選擇“轉換為可編輯多邊形”,然后選擇“邊”工具,隨后選擇“擠出”工具,將戶型擠出為立體狀,高度設置為2550mm,房屋的墻體則建立完畢。如圖2所示。

        門窗的建立。在建立門模型時,為了整個門呈現(xiàn)動態(tài),需要制作為打開的狀態(tài),首先要選中這個門,利用“捕捉”工具,將門旋轉,并且移動到門框的邊上,即可實現(xiàn)。如圖3所示。在建立窗戶時,關鍵在于玻璃材質的參數設置,為了渲染出逼真的玻璃效果,在這里要指定Vray渲染器并選用Vray材質。具體參數如下:漫反射設置為116,141,196;反射參數為22,22,22;反射高光為0.95;折射參數為200,200,200;折射光澤度為0.9。

        部分家具及電器模型的建立。為了在展示系統(tǒng)中呈現(xiàn)逼真的效果,家具的建模需要精細一些,對每個家具進行建模之前要了解其構造,進行有步驟有層次地建模過程。如圖4所示是制作完成的椅子。

        3.3 模型的貼圖重建

        在家具互動展示系統(tǒng)中,主要對以下四部分進行貼圖:房屋內部墻體的貼圖、門和窗戶的貼圖、所有的家具以及部分電器的貼圖以及地面的貼圖。貼圖需要“材質編輯器”命令來實現(xiàn)。在3D MAX中可以執(zhí)行“渲染”—“材質編輯器”命令,或者在主工具欄中單擊“材質編輯器”命令按鈕。目前材質編輯器有“材質編輯器”和“Slate材質編輯器”兩種。在這里使用“精簡材質編輯器”,然后將提前搜集好的貼圖素材賦予不同的模型,實現(xiàn)最終的貼圖效果。

        3.4 場景設計與相關腳本的編寫

        將模型導入到unity中后,可能會存在貼圖大量丟失等問題,這時就需要進行重新貼圖。首先在assets文件夾的models文件夾下建立新的文件夾,命名為materials,然后把所有貼圖素材放在文件夾里面,用英文名稱命名。完成之后,將materials貼圖文件夾復制到unity的根目錄下,然后再導入由3D MAX生成的 fbx格式的文件,模型就自動恢復成先前的貼圖。

        建模過程和貼圖渲染過程結束后,需要在Unity3D中實現(xiàn)房屋漫游和交互效果。房屋漫游是第一人稱攝像機的自由移動過程,在該過程的設置中要注意的是房屋和家具要設置“碰撞”效果,這樣可以防止人物的“穿墻”效果和“掉落”現(xiàn)象。交互過程是用戶和家具的交互,用戶可以通過點擊家具實現(xiàn)家具的簡單移動和旋轉[4]。而漫游和交互功能需要通過編寫腳本代碼來實現(xiàn),腳本如下:

        1)漫游腳本:

        using System.Collections;

        using System.Collections.Generic;

        using UnityEngine;

        public class MoveObject : MonoBehaviour {

        public Vector3 pos;

        public Quaternion rot;

        // Use this for initialization

        void Start () {

        pos = this.transform.position;

        rot = this.transform.rotation;

        }

        }

        2)交互效果腳本:

        using System.Collections;

        using System.Collections.Generic;

        using UnityEngine;

        public class PlayerMovement : MonoBehaviour {

        public GameObject OBJECTS, PROPS, target, btn_quit;

        public Transform this_cam;

        public Rigidbody this_rigid;

        public EasyJoystick stick_move, stick_rotate;

        public bool isMobileControl = false, canMove = true;

        private Vector3 pos;

        private Quaternion rot;

        private float speed = 3.0f, sideSpeed = 1.5f;

        // Use this for initialization

        void Start () {

        pos = this.transform.localPosition;

        rot = this.transform.localRotation;

        }

        // Update is called once per frame

        void Update () {

        if (!isMobileControl)

        MovePlayer ();

        Shoot ();

        }

        private void MovePlayer(){

        if (canMove) {

        Screen.lockCursor = true;

        if (Input.GetKey (KeyCode.W)) {

        this.transform.Translate (Vector3.forward * speed * Time.deltaTime);

        } else if (Input.GetKey (KeyCode.S)) {

        this.transform.Translate (Vector3.back * speed * Time.deltaTime);

        }

        if (Input.GetKey (KeyCode.A)) {

        this.transform.Translate (Vector3.left * sideSpeed * Time.deltaTime);

        } else if (Input.GetKey (KeyCode.D)) {

        this.transform.Translate (Vector3.right * sideSpeed * Time.deltaTime);

        }

        } else {

        Screen.lockCursor = false;

        }

        }

        private void Shoot(){

        if (Input.GetMouseButtonDown (0)) {

        Ray ray = new Ray();

        RaycastHit hit;

        if (!isMobileControl) {

        ray = new Ray (this_cam.position, this_cam.forward);

        } else {

        ray = this_cam.transform.GetComponent ().ScreenPointToRay (Input.mousePosition);

        }

        if (Physics.Raycast (ray, out hit, 100.0f, ~(1 << 5))) {

        if (hit.collider.transform.GetComponent () != null) {

        target = hit.collider.gameObject;

        OBJECTS.SetActive (false);

        for (int i = 0; i < PROPS.transform.childCount; i++) {

        PROPS.transform.GetChild (i).gameObject.SetActive (false);

        }

        target.SetActive (true);

        btn_quit.SetActive (true);

        canMove = false;

        this_rigid.useGravity = false;

        this_rigid.isKinematic = true;

        stick_move.XAxisTransform = target.transform;

        stick_move.YAxisTransform = target.transform;

        stick_rotate.XAxisTransform = target.transform;

        stick_rotate.YAxisTransform = target.transform;

        } else if (hit.collider.tag == "UI") {

        return;

        }

        }

        }

        }

        public void QuitEditMode(){

        target.transform.position = target.transform.GetComponent ().pos;

        target.transform.rotation = target.transform.GetComponent ().rot;

        target = null;

        //this.transform.localPosition = pos;

        //this.transform.localRotation = rot;

        OBJECTS.SetActive (true);

        for (int i = 0; i < PROPS.transform.childCount; i++) {

        PROPS.transform.GetChild (i).gameObject.SetActive (true);

        }

        btn_quit.SetActive (false);

        canMove = true;

        this_rigid.useGravity = true;

        this_rigid.isKinematic = false;

        stick_move.XAxisTransform = this.transform;

        stick_move.YAxisTransform = this.transform;

        stick_rotate.XAxisTransform = this.transform;

        stick_rotate.YAxisTransform = this_cam;

        }

        }

        3.5 測試及發(fā)布

        功能實現(xiàn)后在工具欄中點擊“播放”按鈕進行場景的初步測試,觀察模型與貼圖是否符合實際情況[5]。保存之后,使用快捷鍵“CTRL+ALT+B”, 導出“EXE”文件。然后運行“EXE”文件,測試軟件是否能夠正常運行,同時注意內容是否完整以及所有的功能是否都能實現(xiàn)。在檢查無誤后,選擇文件左上角的file工具欄,點擊Build Settings,然后點擊Android,把作品發(fā)布到Android手機上。

        4 總結

        本設計利用Auto CAD 、3ds MAX、Unity3D軟件對家具展示系統(tǒng)App進行設計及開發(fā),實現(xiàn)了家具的虛擬交互展示[6]。在后續(xù)開發(fā)中,可以使用VR眼鏡,達到更好的沉浸式的漫游體驗?;贏ndroid平臺的App應用程序,讓使用者可以更生動和直觀的展示家具工藝、造型、裝飾等藝術風格。

        參考文獻:

        [1] 石寧. 淺談建筑施工管理創(chuàng)新策略[J]. 房地產導刊, 2015(34).

        [2] 趙鵬程. 虛擬現(xiàn)實中三維動畫建模方法的研究[J]. 信息與電腦, 2016(19): 59-60.

        [3] 張姣姣, 董明治, 司占軍. 兒童三維互動讀物的設計與制作[J]. 電腦知識與技術, 2017.

        [4] 唐蕾, 林作新, 張亞池. 家具產品互動設計中的行為本質研究[J]. 家具與室內裝飾, 2016(10): 20-23.

        [5] 董春俠, 司占軍. 基于Unity3D的虛擬校園App設計與開發(fā)[J]. 軟件導刊, 2017(2): 94-96.

        [6] 郭海新. 基于Unity3D的在線家具展示系統(tǒng)的實現(xiàn)[J]. 商情, 2017(47).

        猜你喜歡
        虛擬現(xiàn)實
        虛擬現(xiàn)實技術在中學校園中的應用
        甘肅教育(2020年4期)2020-09-11 07:41:22
        國外虛擬現(xiàn)實(VR)教育研究與啟示
        論虛擬現(xiàn)實藝術的“沉浸”
        REALITY BITES
        REALITY BITES
        漢語世界(2017年3期)2017-06-05 15:01:42
        風口上的虛擬現(xiàn)實
        商周刊(2017年24期)2017-02-02 01:42:55
        虛擬現(xiàn)實技術向科幻小說借靈感
        海外星云(2016年7期)2016-12-01 04:18:00
        虛擬現(xiàn)實:另一個真實世界
        HTC斥資千萬美元入股虛擬現(xiàn)實設備商WEVR
        IT時代周刊(2015年8期)2015-11-11 05:50:37
        虛擬現(xiàn)實炫酷來襲走出實驗室坎坷漫長
        IT時代周刊(2015年7期)2015-11-11 05:49:56
        人人摸人人搞人人透| av网址不卡免费在线观看| 国产av一区二区制服丝袜美腿| 亚洲av高清一区二区三| 日韩亚洲欧美中文在线| 日韩在线观看你懂的| 亚洲中文字幕诱惑第一页| av在线免费观看网站免费| 无码少妇一区二区性色av| 免费视频一区二区| 最新日韩精品视频免费在线观看| 青青草在线免费视频播放| 成 人免费va视频| 亚洲最大在线精品| 中文字幕日本五十路熟女| 中文字幕无码成人片| 8ⅹ8x擦拨擦拨成人免费视频| 香蕉视频免费在线| 亚洲av极品尤物不卡在线观看| 国产精品国产三级国产av剧情| 日韩成人极品在线内射3p蜜臀| 在线亚洲AV不卡一区二区| 久久久人妻精品一区bav| 色婷婷亚洲一区二区三区| 国产精品久久久久久久久KTV| 中文字幕人妻少妇美臀| 日本午夜理论片在线观看| 成人a级视频在线观看| 91热久久免费精品99| 日本啪啪视频一区二区| 妺妺窝人体色www看人体| 国内少妇自拍区免费视频| 国产av一区二区三区国产福利 | 国产精品狼人久久久影院| 亚洲国产精品高清在线| 中文亚洲欧美日韩无线码| 久久中国国产Av秘 入口| 亚洲成熟中老妇女视频| 国产精品三级av及在线观看| 午夜片无码区在线| 久久综合久中文字幕青草|