建模完成後如何把這個3D模型放入虛擬現實環境中然後能用HTC vive觀看?

單位買了一套vive但是貌似現在就能用來打打遊戲…我平時做結構設計,用的UG NX軟體,平時做的一些3D模型能用vive觀看或者用手柄做一些簡單的操作(比如移動)嗎?應該怎麼做呢?


這需要你先掌握一個遊戲引擎來實現,unity或unreal都行,詳細的過程很難說清楚,建議找一些官方教程來接觸一下。


基本主流三維軟體都有插件可以實現


開了專欄具體說一下這個問題,主要可能更多偏向建築專業VR表達以及一些建築相關的事兒,還在慢慢完善中:Small Dots - 知乎專欄

-----------------原答案的分割線-----------------

答主建築學背景,因為工作原因過去一年來也做了些VR展示的項目,雖然可能和結構設計(UG NX)的工作流程不完全一致,但大的思路應該是一樣的。

要把三維模型導入VR環境中,簡單來說有兩種思路:

  1. 藉助第三方的平台或者插件,通過建模軟體導出或者上傳實現快速VR體驗。
  2. 藉助遊戲引擎來自己編輯VR展示/體驗。

第一種優點是簡單直接,通常只需要簡單幾個步驟就可以實現VR效果,但同樣因為操作簡單快捷,這類平台或插件通常所能達到的效果也比較有限。這類建築方面用到的有Enscape, IrisVR等。

(在所有使用過的插件里,基於UE引擎的Enscape所能達到的效果是最好的,但目前似乎只支持Revit導出)

而遊戲引擎編輯的方式則可以提供更好的效果以及更多交互的可能性,當然也意味著更多的時間。我使用的是Unity,所以接下來主要講的也都是基於Unity的流程。

(去年年底參與的一個項目,在Unity中調整模型,材質以及光環境)

------------------乾貨時間------------------

1.文件準備

在最初準備的階段,最重要的問題是要問問自己在最終的VR成果里想要看到的是哪些東西,哪些需要被導入進遊戲引擎來編輯而哪些則是不重要甚至可以忽略不計的。

因為VR是一個非常computational expensive的事情,很多在後期拼死拼活優化半天解決的問題其實根本在一開始都沒有存在的必要,比如可能你只是要展示一個大廳而已,但樓梯間里樓梯扶手欄杆各種三角面卻消耗掉一大部分的計算量。

在想清楚需要什麼之後就可以著手導出文件了。Unity支持.FBX, .dae (Collada), .3DS, .dxf and .obj等格式的文件,通常我使用的是.FBX,因為大部分建模軟體都支持.FBX並且導出的文件一般都相對較小。如果對材質編輯有需要,推薦將.FBX再導入3D MAX進行整理編輯。

2. Unity Project setup

打開Unity,新建自己將要編輯的項目,然後將導出得到的.FBX模型文件放入到項目下的Assets文件夾中(Unity會自動讀取所有這個文件夾目錄下的所支持的格式的文件 ),這樣模型就導入到這項目中了。

文件準備就緒,現在可以開始進入到Unity中進行編輯:

接下來把模型直接從Project窗口拖拽到Scene中來建立自己想要的場景:

這樣場景就已經設置完畢,也已經可以導出成為一個獨立的「遊戲」了。但此時採用的還是系統自帶的一個靜態主相機,如果運行遊戲除了可以看到一個靜態的劉看山什麼也做不了。

為了能夠使用HTC Vive來看到VR效果的劉看山,我們需要還下載一個plugin (SteamVR: https://www.assetstore.unity3d.com/en/#!/content/32647 ), 在Prefab中找到[CameraRig]並把它導入到場景中之後,我們就得到了一個新的相機以及兩個控制手柄:

不需要更多額外的調整或者編程,HTC Vive VR的一切基本設置都在這裡了。點擊上方的開始按鈕,Unity便會採用HTC Vive頭顯的空間位置作為相機的位置(刪除或者關閉掉默認的主相機),這樣一個最簡單的VR場景就設置完畢了(當然之前需要正確設置HTC Vive和房間設置)。

3. 導出文件

如果不希望每次都是在Unity中以預覽模式來體驗VR,當然可以導出為獨立的可執行文件。要注意的是,在導出前,在Edit &>&> Project Settings &>&> Player &>&> Other Setting中,確定 Virtual Reality Supported 被勾選上,對於HTC Vive來說,在這個選項下面應該顯示著Open VR。

接著在File &>&> Build Setting… 中選擇合適需要的平台並添加要導出的場景,點擊Build就大功告成了。

-------------------------------------------

以上這些都是最基本的流程,基本回答了怎樣從三維建模軟體的模型到VR的過程。但在具體的應用中,針對不同的情況,還有很多複雜的編輯過程,比如:collider的設置,NavMesh的設置,材質的設置,光影的設置以及lightmap baking(材質光源這一部分通常會花費很多的時間),如何能在VR中漫步甚至跳躍至不同場景,以及如何優化最終VR展示的幀率和效果等等。

如果還需要一些個性化的功能,則還需要更進一步的編程(Unity採用的是C#)來實現,比如移動調整模型,顯示切換不同的options等等。

大致就是這個樣子。


建議簡單學習一下UE4,達成你的要求比較簡單,建一個VR項目模板,然後把模型導進去就行了。

想要更強大的功能,甚至還有VREditor,在VR裡面編輯場景。

只是使用的話,很容易學。


Unity3D環境+SteamVR插件+VRTK操作功能包

可進群下載:121463857


模型導出到Unity。裝上SteamVR插件。把SteamVR/Prefab目錄里的兩個文件拖到場景中。QED

Unity實在是太傻瓜化了。。。啥代碼都不寫也可以玩得很開心。


還有一種更適合的方案 我們用的是revit+fuzor


自己搜文檔就好,問問題多花時間


想學底層細節的話不藉助ue或unity裸寫:

- mesh導出文件

- dx11構造基本框架,先做個model viewer出來。藉助相應的geometry format SDK。

- VR SDK找個最簡單的sample先調通。

- render to eye texture,打通兩者。

用ue或unity太容易了按下不表。


推薦閱讀:

VR為什麼不能做成簡單的3D顯示器?
如何看待 HTC Vive 發布的 1499 元無線傳輸模塊?
如何評價索尼PSVR、HTC Vive、Oculus Rift 三者之間的價格差異和市場競爭力?
有可能架設一個全球的精神網路,把人類的意識上傳上去,然後毀滅肉體嗎?
VR應用開發需要什麼知識?

TAG:虛擬現實VR | 虛擬技術 | HTCVive | 虛擬現實技術 | 虛擬現實平台 |