本發(fā)明涉及虛擬現(xiàn)實技術領域,具體涉及一種三維模型的設計方法和設計裝置。
背景技術:
虛擬現(xiàn)實系統(tǒng)是一種可以創(chuàng)建、體驗虛擬世界的計算機仿真系統(tǒng),涉及到計算機圖形學、人機交互技術、傳感技術以及人工智能等領域,通過計算機產(chǎn)生逼真的視聽等感覺來使用戶產(chǎn)生沉浸式體驗仿佛真的身處于虛擬世界之中。
現(xiàn)有的三維模型設計方案是通過二維平面方式來進行三維的模型設計,一般利用PC機的二維平面屏幕通過操作轉換不同的視角來觀察三維模型并進行設計,設計者不能夠直接觀察到設計的最終三維立體效果,設計過程不夠直觀、便捷。
技術實現(xiàn)要素:
本發(fā)明提供了一種三維模型的設計方法和設計裝置,以便于更加直觀、便捷地進行三維模型的設計工作。
根據(jù)本發(fā)明的一個方面,本發(fā)明提供了一種三維模型的設計方法,包括:
將三維模型導入到虛擬現(xiàn)實場景中;
在虛擬現(xiàn)實場景中展示所述三維模型,并對所述三維模型進行修改以得到所需的三維模型;
將修改后的三維模型從虛擬現(xiàn)實場景中導出并保存。
可選地,所述將三維模型導入到虛擬現(xiàn)實場景中,具體包括:
使用Unity-VR的Resource.Load()方法讀取保存有三維模型的模型文件,將所述模型文件中的三維模型加載到內(nèi)存中;
將所述三維模型在虛擬現(xiàn)實場景中的預設位置實例化。
可選地,所述在虛擬現(xiàn)實場景中展示所述三維模型,具體包括:
調(diào)整Unity-VR中分別用于模擬左眼視角和右眼視角的左相機和右相機的位置,使所述三維模型位于所述左相機和右相機的視野中;
將所述左相機和右相機與用戶頭部的位置跟蹤數(shù)據(jù)相關聯(lián),使所述左相機和右相機隨用戶頭部運動。
可選地,所述對所述三維模型進行修改以得到所需的三維模型,具體包括:
根據(jù)虛擬現(xiàn)實設備的外設數(shù)據(jù),獲取用戶的操作;
根據(jù)用戶的操作對所述三維模型進行相應的修改。
可選地,所述將所述三維模型從虛擬現(xiàn)實場景中導出并保存,具體包括:
將所述三維模型通過FBX SDK打包,輸出FBX格式的模型文件;
或者,根據(jù)所述三維模型的幾何信息以及OBJ模型文件格式的標準,將所述三維模型保存為OBJ格式的模型文件。
根據(jù)本發(fā)明的另一個方面,本發(fā)明提供了一種三維模型的設計裝置,包括:模型導入單元、模型設計單元和模型導出單元;
所述模型導入單元,用于將三維模型導入到虛擬現(xiàn)實場景中;
所述模型設計單元,用于在虛擬現(xiàn)實場景中展示所述三維模型,并對所述三維模型進行修改以得到所需的三維模型;
所述模型導出單元,用于將修改后的三維模型從虛擬現(xiàn)實場景中導出并保存。
可選地,所述模型導入單元具體用于:使用Unity-VR的Resource.Load()方法讀取保存有三維模型的模型文件,將所述模型文件中的三維模型加載到內(nèi)存中,并將所述三維模型在虛擬現(xiàn)實場景中的預設位置實例化。
可選地,所述模型設計單元包括展示模塊,用于調(diào)整Unity-VR中分別用于模擬左眼視角和右眼視角的左相機和右相機的位置,使所述三維模型位于所述左相機和右相機的視野中,并將所述左相機和右相機與用戶頭部的位置跟蹤數(shù)據(jù)相關聯(lián),使所述左相機和右相機隨用戶頭部運動。
可選地,所述模型設計單元還包括修改模塊,用于根據(jù)虛擬現(xiàn)實設備的外設數(shù)據(jù),獲取用戶的操作,并根據(jù)用戶的操作對所述三維模型進行相應的修改。
可選地,所述模型導出單元具體用于:將所述三維模型通過FBX SDK打包,輸出FBX格式的模型文件;或者根據(jù)所述三維模型的幾何信息以及OBJ模型文件格式的標準,將所述三維模型保存為OBJ格式的模型文件。
本發(fā)明的有益效果是:本發(fā)明實施例通過將三維模型導入到已有的虛擬現(xiàn)實場景中,在虛擬現(xiàn)實場景中展示三維模型并進行修改,最后將修改后的三維模型從虛擬現(xiàn)實場景中導出并保存,使用戶可以在虛擬現(xiàn)實場景中,一邊對三維模型進行修改,一邊實時觀察三維模型在虛擬現(xiàn)實環(huán)境中的立體視覺效果,直觀、便捷地對三維模型進行讀取、修改、導出等工作。
附圖說明
圖1是本發(fā)明一個實施例提供的一種三維模型的設計方法的流程圖;
圖2是本發(fā)明一個實施例提供的一種三維模型的設計裝置的功能框圖。
具體實施方式
本發(fā)明的設計構思是:現(xiàn)有的三維模型設計方案是通過二維平面方式來進行三維的模型設計,一般利用PC機的二維平面屏幕通過操作轉換不同的視角來觀察三維模型并進行設計,不夠直觀、便捷。本發(fā)明從傳統(tǒng)二維平面的設計模式轉向虛擬現(xiàn)實三維空間的設計模式,通過將三維模型導入到已有的虛擬現(xiàn)實場景中,在虛擬現(xiàn)實場景中展示三維模型并進行修改,最后將修改后的三維模型從虛擬現(xiàn)實場景中導出并保存,使用戶可以在虛擬現(xiàn)實場景中,一邊對三維模型進行修改,一邊實時觀察三維模型在虛擬現(xiàn)實環(huán)境中的立體視覺效果,直觀、便捷地對三維模型進行讀取、修改、導出等工作。
實施例一
圖1是本發(fā)明一個實施例提供的一種三維模型的設計方法的流程圖,如圖1所示,本實施例提供的三維模型的設計方法包括:
步驟S110:將三維模型導入到虛擬現(xiàn)實場景中。
Unity是Unity Technologies開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內(nèi)容的多平臺的游戲開發(fā)平臺。通常,三維模型以模型文件的形式保存,應當首先動態(tài)加載三維模型,獲取模型數(shù)據(jù),即將模型文件中保存的三維模型導入到虛擬現(xiàn)實場景中。
本實施例利用Untiy-VR應用通過Unity自身的本地資源動態(tài)加載方法Resource.Load(),根據(jù)指定的文件名讀取模型文件,將模型文件中的三維模型加載到內(nèi)存中,然后指定三維模型在Unity場景坐標系中的坐標,即可讀取三維模型將其實例化,并在已有的虛擬現(xiàn)實場景中的預設位置展示。
步驟S120:在虛擬現(xiàn)實場景中展示三維模型,并對三維模型進行修改以得到所需的三維模型。
Unity-VR通過左相機和右相機來模擬對應的左右眼視角,根據(jù)步驟S120中動態(tài)加載的三維模型在Unity場景坐標系中的坐標,調(diào)整左相機和右相機的位置,以便于模型出現(xiàn)在左相機和右相機的視野中,然后設置左相機和右相機的相對位置模擬雙眼的視差,在Unity坐標系中一般為0.063,用戶便可以在虛擬現(xiàn)實場景中直觀地獲取三維模型的立體視覺效果。為了使用戶能夠從不同的距離、不同的角度觀察三維模型的立體效果,本實施例將左相機和右相機與用戶頭部的位置跟蹤數(shù)據(jù)相關聯(lián),使左相機和右相機可以隨用戶頭部運動,用戶可以通過佩戴虛擬現(xiàn)實頭戴設備,進行旋轉位移,此時虛擬現(xiàn)實頭戴設備上報的位置跟蹤數(shù)據(jù)將同步作用于Unity的左相機和右相機,這樣便可使用戶通過虛擬現(xiàn)實設備自由地觀察虛擬場景以及其中的三維模型了。
在進行三維模型設計的過程中,Unity需要接收用戶修改模型的指令,在現(xiàn)有的設計方案中,用戶通常是通過鼠標、鍵盤等設備向Unity發(fā)送指令,不便于在虛擬現(xiàn)實場景中進行操作。因此本實施例通過虛擬現(xiàn)實設備的外設進行交互數(shù)據(jù)輸入,根據(jù)虛擬現(xiàn)實設備的外設數(shù)據(jù),獲取用戶的操作,對三維模型進行相應的修改。例如當用戶操作虛擬現(xiàn)實設備的手柄的方向鍵時,系統(tǒng)控制鼠標指針相應地移動;當用戶按下手柄上的“確定”按鍵時,對三維模型進行某一項修改等。
步驟S130:將修改后的三維模型從虛擬現(xiàn)實場景中導出并保存。
對三維模型修改完畢得到目標三維模型之后,本實施例通過FBX SDK對目標三維模型進行打包,輸出生成為FBX格式的模型文件。FBX SDK是一款用于跨平臺的免費三維創(chuàng)作與交換格式的軟件,通過FBX用戶能訪問大多數(shù)三維供應商的三維文件。或者,也可以導出為OBJ格式的模型文件,只需要對目標三維模型進行解析,參照OBJ文件格式的標準,將目標三維模型對應的法線向量、頂點等模型解析結果寫入文件即可。
本實施例從傳統(tǒng)二維平面的設計模式轉向虛擬現(xiàn)實三維空間的設計模式,用戶可以在虛擬現(xiàn)實場景中,一邊對三維模型進行修改,一邊實時觀察三維模型在虛擬現(xiàn)實環(huán)境中的立體視覺效果,直觀、便捷地對三維模型進行讀取、修改、導出等工作。
實施例二
圖2是本發(fā)明一個實施例提供的一種三維模型的設計裝置的功能框圖。如圖2所示,本實施例提供的三維模型的設計裝置包括:模型導入單元210、模型設計單元220和模型導出單元230。
模型導入單元210將三維模型導入到虛擬現(xiàn)實場景中,模型設計單元220在虛擬現(xiàn)實場景中展示三維模型,并對三維模型進行修改以得到所需的三維模型,模型導出單元230將修改后的三維模型從虛擬現(xiàn)實場景中導出并保存。用戶可以在虛擬現(xiàn)實場景中,一邊對三維模型進行修改,一邊實時觀察三維模型在虛擬現(xiàn)實環(huán)境中的立體視覺效果,直觀、便捷地對三維模型進行讀取、修改、導出等工作。
在一個優(yōu)選實施例中,模型導入單元210具體用于:使用Unity-VR的Resource.Load()方法讀取保存有三維模型的模型文件,將模型文件中的三維模型加載到內(nèi)存中,并將三維模型在虛擬現(xiàn)實場景中的預設位置實例化。
在另一個優(yōu)選實施例中,模型設計單元220包括展示模塊221和修改模塊222。展示模塊221用于調(diào)整Unity-VR中分別用于模擬左眼視角和右眼視角的左相機和右相機的位置,使三維模型位于左相機和右相機的視野中,并將左相機和右相機與用戶頭部的位置跟蹤數(shù)據(jù)相關聯(lián),使左相機和右相機隨用戶頭部運動。修改模塊222用于根據(jù)虛擬現(xiàn)實設備的外設數(shù)據(jù),獲取用戶的操作,并根據(jù)用戶的操作對三維模型進行相應的修改。
在又一個優(yōu)選實施例中,模型導出單元230具體用于:將三維模型通過FBX SDK打包,輸出FBX格式的模型文件;或者根據(jù)三維模型的幾何信息以及OBJ模型文件格式的標準,將三維模型保存為OBJ格式的模型文件。
以上所述,僅為本發(fā)明的具體實施方式,在本發(fā)明的上述教導下,本領域技術人員可以在上述實施例的基礎上進行其他的改進或變形。本領域技術人員應該明白,上述的具體描述只是更好的解釋本發(fā)明的目的,本發(fā)明的保護范圍應以權利要求的保護范圍為準。
需要說明的是:
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
本發(fā)明的三維模型的設計裝置傳統(tǒng)上包括處理器和以存儲器形式的計算機程序產(chǎn)品或者計算機可讀介質(zhì)。存儲器可以是諸如閃存、EEPROM(電可擦除可編程只讀存儲器)、EPROM、硬盤或者ROM之類的電子存儲器。存儲器具有用于執(zhí)行上述方法中的任何方法步驟的程序代碼的存儲空間。例如,用于程序代碼的存儲空間可以包括分別用于實現(xiàn)上面的方法中的各種步驟的各個程序代碼。這些程序代碼可以從一個或者多個計算機程序產(chǎn)品中讀出或者寫入到這一個或者多個計算機程序產(chǎn)品中。這些計算機程序產(chǎn)品包括諸如硬盤,緊致盤(CD)、存儲卡或者軟盤之類的程序代碼載體。這樣的計算機程序產(chǎn)品通常為便攜式或者固定存儲單元。該存儲單元可以類似布置的存儲段、存儲空間等。程序代碼可以例如以適當形式進行壓縮。通常,存儲單元包括用于執(zhí)行根據(jù)本發(fā)明的方法步驟的計算機可讀代碼,即可以由例如處理器讀取的代碼,這些代碼被運行時,導致該三維模型的設計裝置執(zhí)行上面所描述的方法中的各個步驟。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。單詞“包括”不排除存在未列在權利要求中的元件或步驟。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下被實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。本說明書中使用的語言主要是為了可讀性和教導的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。