專利名稱:一種基于三維虛擬平臺的實體材質(zhì)置換方法
技術領域:
本發(fā)明屬于計算機虛擬現(xiàn)實技術領域,具體涉及一種基于三維虛擬平臺的實體材質(zhì)置換方法。
背景技術:
1、虛擬現(xiàn)實是利用電腦模擬產(chǎn)生一個三維空間的虛擬世界,提供使用者關于視覺、聽覺、觸覺等感官的模擬,可以及時、沒有限制地觀察三維空間內(nèi)的事物。然而操作系統(tǒng)和應用軟件通常不能直接去使用顯卡和其中的3D加速功能,必須通過OpenGL (OpenGL是個專業(yè)的圖形程序接口,是一個功能強大,調(diào)用方便的底層圖形庫)和Direct3D (Direct3D是微軟公司在Microsoft Windows操作系統(tǒng)上所開發(fā)的一套3D繪圖編程接口)的一個接口去調(diào)用。2、三維空間的虛擬世界場景中的實體是由模型和材質(zhì)組成。實體必須連接到一個結(jié)點上才真正成為場景的一部分。在每個實體中都包含著一些子實體的實現(xiàn),這些子實體是真正的可渲染對象,它們維護著具體的材質(zhì)特性。模型是物體結(jié)構(gòu)特性(幾何數(shù)據(jù))的集合。材質(zhì)中有一個或多個通道,通道是指可渲染對象用來標示自己渲染狀態(tài)的基本單元。通道中包含了紋理單元、光照數(shù)據(jù)、反射參數(shù)、法線數(shù)據(jù)等。紋理單元中包含了紋理貼圖、紋理參數(shù)等。3、如今,虛擬現(xiàn)實在在家裝領域幾乎一塊空白。廠家,經(jīng)銷商在對產(chǎn)品進行介紹時,需要較大量的樣品間、展示廳等,消耗很大的成本。假如我們能用軟件在三維場景中渲染出一個樣板間,并能隨意改變物體外形和位置。那么對于廠家,能大大的減少成本,并能節(jié)省大量人力物力。對客戶來說,也能得到良好的即時場景體驗,更直觀的,更全面的加深了對產(chǎn)品的理解和感受。然而在場景即時體驗中,客戶在對一個實體進行外表圖案花紋替換時,也就是說系統(tǒng)對一個實體的材質(zhì)進行替換時,需要處理大量光照參數(shù),這會占用很長的渲染時間,達不到即時渲染的目的。
發(fā)明內(nèi)容
發(fā)明目的針對上述現(xiàn)有技術存在的問題和不足,本發(fā)明的目的是提供一種基于三維虛擬平臺的實體材質(zhì)置換方法,達到即時渲染的目的,減少了程序運算時間,提高效率。技術方案為實現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術方案為一種基于三維虛擬平臺的實體材質(zhì)置換方法,包括如下步驟(I)初始化三維渲染引擎;(2)設置虛擬攝像機在場景中的初始位置;(3)設置視口的大小,以確定渲染窗口中的場景的大小;(4)用戶選定場景后,從場景組織文件中讀取場景數(shù)據(jù),從素材文件中讀取實體數(shù)據(jù);
(5)加載場景的光照效果;(6)初始化軟件界面,顯示紋理貼圖菜單,所述紋理貼圖菜單包含多個不同種類的可拖移的紋理貼圖的縮略圖;(7)用戶從所述紋理貼圖菜單中選擇紋理貼圖,并將選擇的紋理貼圖拖移到場景中,軟件通過用戶的拖移操作確定所需位置的場景三維坐標,然后通過場景三維坐標確定需要被替換的材質(zhì);(8)當材質(zhì)確定時,實體材質(zhì)中的紋理貼圖被在菜單中選擇的紋理貼圖所替換;(9)保存場景。進一步的,所述場景數(shù)據(jù)指實體在場景坐標系下的場景三維坐標,所述實體數(shù)據(jù)包括紋理單元數(shù)據(jù)和構(gòu)建實體的坐標。進一步的,在步驟(9)之前,重復步驟(7)和步驟⑶。進一步的,所述步驟(8)中,先將菜單中選擇的紋理貼圖進行縮放,使得所述紋理貼圖在實體上相應面的覆蓋的面積和所述相應面的面積的比例與實際一致,然后替換場景中實體材質(zhì)的紋理貼圖。有益效果在用計算機進行三維場景展示時,樣板間里的實體都是默認的配置了紋理貼圖。假如需要改變實體的外表圖案花紋,利用本發(fā)明,可以僅通過鼠標拖動紋理貼圖的縮略圖至需替換的實體上,就可以完成替換。在替換過程中對紋理貼圖進行適當?shù)目s放,光照參數(shù)保持不變,從而達到即時渲染的目的,減少了程序運算時間,提高效率。本發(fā)明能實現(xiàn)高精度即時渲染,三維展示效果達到照片級仿真效果,同一場景可展示600萬面數(shù)的實體,精確表現(xiàn)復雜的曲線、雕花、水晶燈、窗簾等復雜物體;支持自發(fā)光、環(huán)境光、漫反射、高光、透明等多種特效,精確展現(xiàn)布藝、木材、瓷磚、玻璃、金屬、油漆、皮革等材質(zhì)。
圖1為本發(fā)明的流程圖。
具體實施例方式下面結(jié)合附圖和具體實施例,進一步闡明本發(fā)明,應理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領域技術人員對本發(fā)明的各種等價形式的修改均落于本申請所附權利要求所限定的范圍。本發(fā)明能將現(xiàn)實中的家具物品等在虛擬場景中展示出來,用戶對這些實體進行簡單快捷操作,比如改變家具的材質(zhì),這樣可以達到一種真實的場景體驗效果。本發(fā)明旨在僅僅對同一物體同種材質(zhì)的紋理貼圖進行替換,能大大減少渲染的時間,避免處理大量的光照參數(shù)等。并能通過觸摸展示屏等移動終端進行展示,給用戶進行最直觀,最快捷的場景體驗。本發(fā)明是基于OpenGL和Direct3D通過三維渲染引擎,負責將材質(zhì)的紋理貼圖實時渲染。本發(fā)明在材質(zhì)的通道中定義了三個基本的紋理單元,第一個紋理單元為材質(zhì)的花型貼圖,如木紋、布料、瓷磚的無縫貼圖;第二個紋理單元為實體在場景中的烘焙貼圖,通過預先烘焙,形成實體的基本光影效果;第三個紋理單元為實體的環(huán)境貼圖,根據(jù)實體的材質(zhì)屬性,給予環(huán)境貼圖,以增強材質(zhì)的表面反射。第一個紋理單元的紋理貼圖被作為材質(zhì)的基本紋理貼圖。如圖1所示,本發(fā)明具體包括如下步驟(I)基于OpenGL和Direct3D初始化三維渲染引擎;(2)選擇場景并進入,設置虛擬攝像機在場景中的位置;(3)設置視口(攝像機所呈現(xiàn)的區(qū)域就是視口)的大小,以確定渲染窗口中的場景的大??;(4)用戶選定場景后,從場景組織文件中讀取場景數(shù)據(jù),從素材文件中讀取實體數(shù)據(jù);場景數(shù)據(jù)指實體在場景坐標系下的場景三維坐標,實體數(shù)據(jù)讀取以.mesh結(jié)尾的實體數(shù)據(jù)文件,里面保存著組成實體的重要數(shù)據(jù),如紋理單元數(shù)據(jù)和構(gòu)建實體的坐標等。(5)加載場景預先設定的光照效果;比如材質(zhì)的自發(fā)光、環(huán)境光、高光、漫反射等即時渲染參數(shù),從而對場景中光線、陰影等進行視覺優(yōu)化。(6)初始化軟件界面,顯示紋理貼圖菜單,所述紋理貼圖菜單包含多個不同種類的可拖移的紋理貼圖的縮略圖,用戶只需將縮略圖拖至到場景中的實體上,就可以替換實體的紋理貼圖;(7)用戶從所述紋理貼圖菜單中選擇紋理貼圖,并將選擇的紋理貼圖拖移到場景中的某個位置后松開鼠標,軟件通過用戶的拖移操作確定所需位置的場景三維坐標,然后通過場景三維坐標到某個具體的實體上的某塊材質(zhì),從而確定需要被替換的材質(zhì);(8)當材質(zhì)確定時,將需要替換的紋理貼圖與被替換的基本紋理貼圖按比例進行縮放,使得紋理貼圖在實體上覆蓋的面積與實際相符。比例計算方法如下本發(fā)明通過.xml文件定義了用戶需要替換的紋理貼圖代表的實際長寬尺寸,即寬度值ua與長度值va,本發(fā)明在場景制作中第一個紋理單元全部使用寬度值ub為1800毫米,長度值vb為1800毫米的標準貼圖(或稱“基本紋理貼圖”),并根據(jù)實體相應面的實際尺寸(即寬度值u0與長度值vO)與其在UV圖中所占比例計算出使用標準貼圖的UV值,即UC值與vc值uc=ub/uO, vc = vb/vO,在用戶替換紋理貼圖時,只替換第一個紋理單元的紋理貼圖,得到新的 u 值和 V 值u= (ua/ub) *uc = ua/uO, v=(va/vb)*vc = va/vO,可以看出,u 和 v 都是沒有單位的量,即得出了用戶替換的紋理貼圖在寬度和長度方向上能覆蓋的實體相應面的個數(shù)。根據(jù)這個U值和V值進行比例縮放,也即得到實體相應面需要的用戶替換的紋理貼圖的個數(shù),實現(xiàn)了替換后新的紋理貼圖在實體上相應面的覆蓋的面積和所述相應面的面積的比例與實際一致。在替換過程中,第二個、第三個紋理單元與材質(zhì)通道屬性保留了原有的設置,保留了原有光影關系,節(jié)省了渲染消耗的大量時間,實現(xiàn)快速貼換、即時渲染。(9)用戶替換紋理貼圖后,瞬間就可以看到替換后的場景效果。可以重復步驟七到步驟八。(10)保存場景。
權利要求
1.一種基于三維虛擬平臺的實體材質(zhì)置換方法,包括如下步驟(1)初始化三維渲染引擎;(2)設置虛擬攝像機在場景中的初始位置;(3)設置視口的大小,以確定渲染窗口中的場景的大?。?4)用戶選定場景后,從場景組織文件中讀取場景數(shù)據(jù),從素材文件中讀取實體數(shù)據(jù);(5)加載場景的光照效果;(6)初始化軟件界面,顯示紋理貼圖菜單,所述紋理貼圖菜單包含多個不同種類的可拖移的紋理貼圖的縮略圖;(7)用戶從所述紋理貼圖菜單中選擇紋理貼圖,并將選擇的紋理貼圖拖移到場景中,軟件通過用戶的拖移操作確定所需位置的場景三維坐標,然后通過場景三維坐標確定需要被替換的材質(zhì);(8)當材質(zhì)確定時,實體材質(zhì)中的紋理貼圖被在菜單中選擇的紋理貼圖所替換;O)保存場景。
2.根據(jù)權利要求1所述一種基于三維虛擬平臺的實體材質(zhì)置換方法,其特征在于所述場景數(shù)據(jù)指實體在場景坐標系下的場景三維坐標,所述實體數(shù)據(jù)包括紋理單元數(shù)據(jù)和構(gòu)建實體的坐標。
3.根據(jù)權利要求1所述一種基于三維虛擬平臺的實體材質(zhì)置換方法,其特征在于在步驟(9)之前,重復步驟(7)和步驟⑶。
4.根據(jù)權利要求1所述一種基于三維虛擬平臺的實體材質(zhì)置換方法,其特征在于所述步驟(8)中,先將菜單中選擇的紋理貼圖進行縮放,使得所述紋理貼圖在實體上相應面的覆蓋的面積和所述相應面的面積的比例與實際一致,然后替換場景中實體材質(zhì)的紋理貼圖。
全文摘要
本發(fā)明公開了一種基于三維虛擬平臺的實體材質(zhì)置換方法,包括如下步驟初始化三維渲染引擎;設置虛擬攝像機在場景中的初始位置;設置視口的大??;用戶選定場景后,從場景組織文件中讀取場景數(shù)據(jù),從素材文件中讀取實體數(shù)據(jù);加載場景的光照效果;初始化軟件界面,顯示紋理貼圖菜單,所述紋理貼圖菜單包含多個不同種類的可拖移的紋理貼圖的縮略圖;用戶從所述紋理貼圖菜單中選擇紋理貼圖,并將選擇的紋理貼圖拖移到場景中,軟件通過用戶的拖移操作確定所需位置的場景三維坐標,然后通過場景三維坐標確定需要被替換的材質(zhì);當材質(zhì)確定時,實體材質(zhì)中的紋理貼圖被在菜單中選擇的紋理貼圖進行適當?shù)目s放后所替換;保存場景。本發(fā)明實現(xiàn)即時渲染。
文檔編號G06T15/00GK103035024SQ201210532059
公開日2013年4月10日 申請日期2012年12月11日 優(yōu)先權日2012年12月11日
發(fā)明者陳利民, 劉赟, 石巍巍 申請人:南京我樂我居數(shù)碼科技有限公司