国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

三維場景模型構(gòu)建研究與實現(xiàn)

2017-09-05 00:45王瑜
軟件導(dǎo)刊 2017年7期
關(guān)鍵詞:三維建模

王瑜

摘 要:虛擬漫游系統(tǒng)是計算機仿真與虛擬現(xiàn)實技術(shù)的綜合應(yīng)用,創(chuàng)建具有真實感的三維場景是實現(xiàn)虛擬漫游系統(tǒng)的基礎(chǔ),場景構(gòu)建離不開三維建模,模型質(zhì)量好壞將直接影響到用戶體驗。在設(shè)計開發(fā)基于Virtools的虛擬小區(qū)漫游系統(tǒng)時,采用3DS MAX對場景中各物品進(jìn)行建模,在探討模型構(gòu)建及優(yōu)化的基礎(chǔ)上,具體介紹三維場景中物品建模的實現(xiàn)方法,并對模型的導(dǎo)入與整合進(jìn)行說明。

關(guān)鍵詞:virtools;虛擬場景;三維建模

DOIDOI:10.11907/rjdk.171243

中圖分類號:TP317.4

文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2017)007-0199-03

0 引言

虛擬漫游系統(tǒng)是計算機仿真與虛擬技術(shù)的綜合應(yīng)用,創(chuàng)建具有真實感的三維場景是實現(xiàn)虛擬漫游系統(tǒng)的基礎(chǔ),場景構(gòu)建離不開三維建模,模型質(zhì)量好壞將直接影響虛擬場景的真實與否,而虛擬場景的真實性又是虛擬漫游系統(tǒng)的顯著特點,漫游能否真實靠的就是建模技術(shù)。

以一般居住型小區(qū)為例,構(gòu)建虛擬場景時建模方法很多,可以使用DirectX或OpenGL的圖形函數(shù)庫由底層建立,但更實用的辦法是用專業(yè)的建模工具根據(jù)實際情況自行設(shè)計。以一般居住型小區(qū)為例,采用3DS MAX配合AutoCAD進(jìn)行建模,將小區(qū)內(nèi)所有建筑、環(huán)境甚至相關(guān)室內(nèi)場景、人物角色等仿制出來,再將其導(dǎo)入Virtools中加以呈現(xiàn),用戶使用過程中與其中的特定場景發(fā)生交互,打破以往的傳播手段和宣傳方式,不僅生動活潑、形式新穎,而且制作出來的成品還可以進(jìn)行網(wǎng)上瀏覽或直接下載,以全新的視角帶領(lǐng)用戶參觀整個場景。

1 三維模型構(gòu)建的總體思路

一般居住型小區(qū)的虛擬三維場景建模包括小區(qū)的地形地貌、小區(qū)內(nèi)的樓群建筑和水系植物等,是整個虛擬現(xiàn)實的基礎(chǔ),在使用3DS MAX進(jìn)行建模時,應(yīng)充分考慮到硬件的限制和虛擬系統(tǒng)實時性的要求,在保證視覺效果不失真的前提下,盡量采用最簡單的方式。對于小區(qū)地形地貌建模,道路廣場等相對平坦地形可通過一個平面簡單拉伸、擠壓獲得,山峰臺階等具有起伏變化的地形,可采用層疊法、灰度圖法、整體生成法等方式得到;對于樓群建筑建模則要根據(jù)系統(tǒng)展示的側(cè)重點,可不必將每面墻體全部顯示出來,采用精細(xì)建模、次精細(xì)建模和粗略建模等方式完成[1],模型數(shù)量要盡量簡化;對于水系建模主要表現(xiàn)水面的波紋、漣漪和倒影,通常的辦法是整體貼圖,動態(tài)水體要盡量少用,以減少系統(tǒng)負(fù)荷;對于植物建模因其場景范圍較大,考慮到實時漫游的需求,盡量避免構(gòu)建真正的實體模型,植物的種類不宜過多,控制Mesh的數(shù)量,如在3D Spriters中完成一棵樹后,只需復(fù)制若干數(shù)量的3D Spriters,然后對其進(jìn)行樹木紋理綁定,就可以在增加物體數(shù)量的同時極大地降低場景的復(fù)雜度。

通常情況下,初步建立出來的模型可能存在數(shù)據(jù)量大、比例不協(xié)調(diào)、實時顯示效能低等問題,這就要求在建模時注意各個物體的比例協(xié)調(diào),貼圖尺寸要盡量小且保持為2的冪次方,多用紋理貼圖,少用幾何貼圖,模型建好導(dǎo)入到Virtools軟件中注意觀察,根據(jù)實際情況刪除場景中不可見的面,還可用其它軟件對模型進(jìn)行調(diào)整和優(yōu)化,確保系統(tǒng)運行的速度和流暢性。

2 場景模型創(chuàng)建方法

2.1 樓房建模

樓房建模一般利用小區(qū)原有的AutoCAD平面圖進(jìn)行構(gòu)建。在取得原始平面圖以后,因小區(qū)內(nèi)同式建筑較多,所以首先要通過對場景和現(xiàn)場需求的分析,確定建模區(qū)塊結(jié)構(gòu),即將所有樓房劃分成精細(xì)建模樓群、次精細(xì)建模樓群和粗略建模樓群,這樣有利于對模型進(jìn)行組織與管理。接下來,為了盡可能準(zhǔn)確、直觀地進(jìn)行室內(nèi)建模,需要對房屋進(jìn)行實際丈量,根據(jù)采集來的數(shù)據(jù)對真實面積的大小進(jìn)行一定比例的縮放,如有必要還需要獲取相應(yīng)樓房或房間的照片及影像資料,照片一般分辨率較高,可對精細(xì)建模樓群細(xì)節(jié)部分建模,并作為紋理貼圖的主要來源,影像資料分辨率相對較差,可用以顯示樓群的大致輪廓及樓群與樓群之間的位置關(guān)系。當(dāng)大小位置確定以后,即可將CAD文件導(dǎo)入3DS MAX之中,根據(jù)對層次結(jié)構(gòu)的分析,采用先簡后繁、由下及上的原則,通過擠壓的方式先搭建粗略的樓層框架,再根據(jù)不同樓房的不同特色,如單元門的朝向、窗戶的朝向、樓房頂層的結(jié)構(gòu)、戶型等,逐層逐塊利用3DS MAX進(jìn)行建模。

在建模時,一方面要區(qū)別不同類別模型,對精細(xì)建模樓群采用精確幾何體構(gòu)建,而對次精細(xì)、粗略建模樓群盡量使用面數(shù)較少的幾何體構(gòu)建即可;另一方面,還要注意模型面的數(shù)量,即無論什么類型樓群,在構(gòu)建時面的數(shù)量要有所控制,數(shù)量如果太大,會產(chǎn)生漫游速度過慢、場景不真實的問題,嚴(yán)重時還會在虛擬漫游中出現(xiàn)“穿越”或“眨眼”現(xiàn)象,在成品渲染時也會因面數(shù)過多而導(dǎo)致渲染速度過慢以及渲染后文件體積過大的問題,所以在建模時要注意刪除冗余的多邊形。對樓房建模情況如圖1所示。

2.2 房間建模

樓房建模完畢以后,需要對每款不同樣式的房間進(jìn)行建模,因為最終需要漫游的是具體房間,而不是樓房,所以對室內(nèi)建模屬于精細(xì)建模,也是漫游系統(tǒng)的重點。房間測量需要進(jìn)行實地勘察,在弄清楚基本樣式以后,可先將其草圖大致描繪出來,主要是為了分清墻壁及窗戶、門、過道等分布情況,然后在軟件中按實際尺寸縮小比例,采用多種建模方式建出房屋模型效果,在表現(xiàn)出必要細(xì)節(jié)的前提下盡量減少場景繁雜度。模型建立完畢后,將各模型按要求進(jìn)行合并,對其進(jìn)行材質(zhì)貼圖和燈光照射,材質(zhì)用來表現(xiàn)物體表面屬性,燈光用來表現(xiàn)物體表面的顏色、光亮程度和不透明度,兩者緊密相聯(lián),不單獨調(diào)節(jié)另一種,在燈光運用較繁雜的情況下,模型渲染前可能需要調(diào)節(jié)光能傳遞[2],將各參數(shù)調(diào)至最佳,保證渲染質(zhì)量和渲染時間,最終效果如圖2所示。

2.3 室內(nèi)家電建模

房間建模完成以后需要再依次完成屋內(nèi)家具、吸頂燈、電視機、電視柜、沙發(fā)等建模,這些物品建模仍需按標(biāo)準(zhǔn)尺寸完成,但需要注意的是建模過程中必須對所有對象事先進(jìn)行分析,也就是說,要對所建模對象進(jìn)行位置、大小、是否需要交互等情況進(jìn)行預(yù)判,對某些又近又大的對象來說,建模時要求的精度要高一些;而對某些又遠(yuǎn)又小的對象來說,建模精度要求就低一些。另外建立的對象是否需要進(jìn)行交互也是值得關(guān)注的問題,比如電視機是否能打開、沙發(fā)是否進(jìn)行碰撞偵測、吸頂燈能否點亮等,如果需要交互,建模時就必須將這些物品的明顯標(biāo)志以獨立面的形式建立。一般來說,鑒于室內(nèi)設(shè)計屬于比較繁雜的場景,所有需要交互的物品在建模時最好不要超過800個面[3]。endprint

雖然,建模時不同的模型可采用不同的建模方式,但由于Virtools只支持Polygon(多邊形)建模方式,所以無論初始建模用何種方式,完成后都要轉(zhuǎn)換成多邊形后再輸出。多邊形建模時還要注意其它細(xì)節(jié)部分,如要控制角度以免視角發(fā)生偏移,建模時控制模型面數(shù)以免容量過大,要盡可能減小計算量,需要交互的對象每個部分必須單獨呈現(xiàn),不能群組,否則將給交互帶來影響,建模房間內(nèi)物品效果如圖3、圖4所示。

2.4 其它設(shè)施建模

小區(qū)內(nèi)路燈僅在位置、方向、大小上有所差異,如果將所有路燈全部建模完成,勢必會造成計算機內(nèi)存增加、渲染時間過長,對于小區(qū)內(nèi)數(shù)量較多、款式相近的路燈,可先只建立一個范例,再采用拷貝的方式,運用實例化技術(shù)通過縮放、旋轉(zhuǎn)得到其它所需模型,從而大大節(jié)省內(nèi)存空間。小區(qū)內(nèi)的樹木也是建模場景中的重要組成部分,樹木的真實度將直接影響場景質(zhì)量的高低,作為場景中數(shù)量最多的模型,用一般的建模方法顯然行不通,樹木建??刹捎肂illboard多邊形面的方法進(jìn)行模擬[4],Billboard 多邊形面主要是利用旋轉(zhuǎn)軸和法線對齊的方法來完成,無論用戶視點如何改變,只要保證所構(gòu)建樹木圖像的法線能繞著軸進(jìn)行旋轉(zhuǎn),在用戶眼里相關(guān)多邊形面就始終對準(zhǔn)視點,從而造成郁郁蔥蔥的表象,這種方法簡單,占用內(nèi)存空間小。路燈和樹木建模效果如圖5所示。

3 模型導(dǎo)入與整合

在3DS MAX中制作好三維模型后,將模型導(dǎo)入到Virtools中。Virtools默認(rèn)用于存儲角色、場景以及物體等信息的文件格式是.nmo,但在3DS MAX中不能直接將文件導(dǎo)出為此格式,需要安裝3DS MAX Exporter.exe插件,這種插件版本要與使用的3DS MAX版本保持一致,并要安裝在同一個文件夾下,安裝完畢后點選3DS MAX中File/Export菜單命令,文件類型選擇Virtools Export(*.Nmo,*.Vmo),自定義文件名后即可確定輸出保存。需要注意的是,在輸出文件時一定要將文件名設(shè)置為英文,否則在Virtools中會出現(xiàn)命名錯誤,模型導(dǎo)出時對話框如圖6所示。

最上方導(dǎo)出類型選擇輸出為虛擬角色(Export as a Character),在虛擬角色名稱(Chatacter Name)中輸入“Microwave”,在下面的控制器輸出(Controller Output)中將樣本采幀率(Frame per sample)設(shè)置為1,動畫物體(Animated objects)也為1,最后點擊確認(rèn)即可完成操作。

保存的.nmo文件需要導(dǎo)入到Virtools中才可使用,啟用Virtools點選Resources/Import File菜單命令,找出并導(dǎo)入剛剛保存的.nmo文件,就可以看到整個三維場景,調(diào)整和排列模型的位置比例,設(shè)置一些必要的屬性和參數(shù),最后再添加實行交互的模塊腳本,在項目保存成可編輯的工程文件以后,就可以在Virtools自帶的程序開發(fā)包SDK下進(jìn)行.exe文件開發(fā)。

4 結(jié)語

虛擬現(xiàn)實技術(shù)在各個領(lǐng)域中的應(yīng)用越來越廣泛,構(gòu)建沉浸感強、交互速度快的三維場景離不開成熟穩(wěn)定的建模技術(shù)。后續(xù)將著重研究貼圖、渲染,嘗試多種幾何建模方法相結(jié)合,適當(dāng)引入新的算法,更好地保證三維場景中各物體建模的質(zhì)量和實際運行效果。

參考文獻(xiàn):

[1] 張志強,袁野.精細(xì)化城市三維建模技術(shù)在數(shù)字城市中的應(yīng)用[J].測繪,2014(4):158-160,177.

[2] 張婷.景觀設(shè)計中3Dmax的運用[J].曲靖師范學(xué)院學(xué)報,2016,35(4):112-115.

[3] 李尚林,李琳,曹明偉,劉曉平.面向真實構(gòu)建的徽州建筑快速建模方法[J].軟件學(xué)報,2016,27(10):2542-2556

[4] 仲于姍.基于Unity的3D虛擬校園漫游系統(tǒng)的開發(fā)[D].昆明:云南大學(xué),2015.

[5] 吳桐桐,周國輝.基于虛擬現(xiàn)實的三維建模技術(shù)的研究[J].智能計算機與應(yīng)用,2016(4):113-115.

[6] 姬洪強,呂敬敏.虛擬校園漫游開發(fā)中的關(guān)鍵技術(shù)研究[J].電腦知識與技術(shù),2013(8):1799-1800.endprint

猜你喜歡
三維建模
maya教學(xué)中存在的問題及解決對策
3D虛擬仿真技術(shù)在體育館購票系統(tǒng)開發(fā)中的應(yīng)用研究
農(nóng)用風(fēng)力發(fā)電機葉片設(shè)計
數(shù)控仿真系統(tǒng)三維建模技術(shù)研究
育儿| 仙居县| 嘉黎县| 香港| 阜康市| 北川| 广东省| 五河县| 盘山县| 全南县| 郸城县| 略阳县| 澎湖县| 鞍山市| 灌云县| 庆云县| 丰宁| 孝义市| 石门县| 和平县| 新乡县| 广饶县| 新安县| 洛宁县| 东至县| 江陵县| 枞阳县| 宁化县| 同仁县| 武冈市| 勃利县| 托里县| 安陆市| 阿勒泰市| 梁平县| 枣庄市| 华亭县| 宣武区| 拜泉县| 讷河市| 宁化县|