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

?

基于多軟件的Collada 模型轉(zhuǎn)換應(yīng)用研究

2011-03-12 00:39:34胡軍強(qiáng)
關(guān)鍵詞:建模流程軟件

胡軍強(qiáng)

(福建江夏學(xué)院,福州 350108)

0 引言

2006年3月,Google公司推出了完全免費(fèi)的Google Sketch Up建模軟件。該建模軟件是一個(gè)建筑草圖軟件,能使用戶快速建立簡單的3D建筑模型(Collada模型),而且它還包含了一個(gè)插件,允許Google Earth用戶直接將Collada模型導(dǎo)入Google Earth中,并與Google Earth中的三維地形數(shù)據(jù)整合,實(shí)現(xiàn)虛擬環(huán)境的構(gòu)建。

然而,Google Sketch Up對(duì)規(guī)則構(gòu)造物(如建筑模型)的建模較為方便,而在制作線形復(fù)雜多變的模型時(shí)則較為煩瑣。因此,建立復(fù)雜的Collada模型可以借助于建模功能強(qiáng)大的3ds Max,Maya等進(jìn)行建模,然后轉(zhuǎn)換為Collada模型。

本文以此為出發(fā)點(diǎn),詳細(xì)分析如何利用當(dāng)前格式的3D模型向Collada模型轉(zhuǎn)換。

1 三維模型轉(zhuǎn)換方法

1.1 三維模型轉(zhuǎn)換方法研究

目前,對(duì)各種各樣三維數(shù)據(jù)格式的轉(zhuǎn)換方法有很多,主要分為2種類型:商業(yè)的模型轉(zhuǎn)換工具和自主開發(fā)的轉(zhuǎn)換程序。

商業(yè)的模型轉(zhuǎn)換軟件如3D Trans Vidia、Converter、3D Explorer等簡單易用,效率很高,然而在轉(zhuǎn)換3D文件的時(shí)候,只能保存和轉(zhuǎn)換模型的幾何信息,而所有的紋理信息則在轉(zhuǎn)換過程中全部丟失[1]。

自主開發(fā)的轉(zhuǎn)換程序的主要原理是:將被轉(zhuǎn)換的三維數(shù)據(jù)通過解析程序提取關(guān)鍵要素,然后按要求轉(zhuǎn)化為其它三維數(shù)據(jù)的對(duì)應(yīng)關(guān)鍵元素并構(gòu)建虛擬系統(tǒng)。然而,有些三維軟件如3Ds Max生成的文件格式難以被程序全部解析,而且依靠解析文件獲取建模信息的方法最終并沒有生成三維模型[2];利用3Ds Max中模型數(shù)據(jù)的方法是將其導(dǎo)出為3DS、VRML、OBJ等文件格式,然后在虛擬現(xiàn)實(shí)系統(tǒng)中解析這些文件格式,但這種方法在導(dǎo)出過程中模型信息不能被全部保存,會(huì)損失部分模型信息[3]。

Google Earth構(gòu)建的虛擬環(huán)境中的模型只能是Collada模型或kmz文件(包含有Collada模型與kml文件),而3Dtrans Vidia等軟件不支持Collada模型與kmz文件,難以符合虛擬環(huán)境所需三維模型的要求;程序轉(zhuǎn)換模式中的幾種方法都是通過提取三維模型中的關(guān)鍵元素而重建虛擬系統(tǒng),最終并沒有生成三維模型,也不適用于本虛擬系統(tǒng)的需求。因此,筆者選擇通過三維建模軟件多次轉(zhuǎn)換方式生成Collada模型或kmz文件。

1.2 三維模型轉(zhuǎn)換方案設(shè)計(jì)

綜合三維模型轉(zhuǎn)換方式的優(yōu)點(diǎn)與本論文模型轉(zhuǎn)換的目的,本節(jié)設(shè)計(jì)一種三維模型轉(zhuǎn)換方案,如圖1所示。其中,各種DCC(Dimension Content Creator三維內(nèi)容制作軟件)生成的模型首先轉(zhuǎn)化成通用的3D交互格式,然后經(jīng)三維模型數(shù)據(jù)轉(zhuǎn)換器轉(zhuǎn)換并修改后生成kmz文件(包含有kml文件與Collada模型)。數(shù)據(jù)轉(zhuǎn)換器是指具體的三維建模轉(zhuǎn)換過程。由于原模型格式不同,具體的轉(zhuǎn)換過程也不同。

本文設(shè)計(jì)圖1所示方案將不同格式的三維模型轉(zhuǎn)換生成Collada模型,其理由如下:3DS文件都是比較通用的3D交換格式。3Ds Max、Maya等軟件創(chuàng)建的原文件的數(shù)據(jù)結(jié)構(gòu)復(fù)雜,對(duì)其文件直接進(jìn)行轉(zhuǎn)化將會(huì)十分困難。在其轉(zhuǎn)化前先進(jìn)行模型預(yù)處理,即轉(zhuǎn)化為文件格式相對(duì)簡單的VRML文件或者3DS文件。這2種格式作為中介進(jìn)行三維建筑模型的轉(zhuǎn)化將大大提高轉(zhuǎn)化效率[4]。

圖1 三維模型轉(zhuǎn)換方案設(shè)計(jì)圖

2 模型轉(zhuǎn)換流程

三維數(shù)據(jù)的直接轉(zhuǎn)換模式就是通過三維軟件系統(tǒng)自己建立的數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換。在這種模式下,異構(gòu)數(shù)據(jù)格式經(jīng)專門的數(shù)據(jù)轉(zhuǎn)換工具進(jìn)行格式轉(zhuǎn)換后復(fù)制到當(dāng)前系統(tǒng)文件中[5]。本文即以這種轉(zhuǎn)換模式將Maya生成的OBJ模型轉(zhuǎn)換為Collada模型(即kmz文件)。

2.1 轉(zhuǎn)換流程設(shè)計(jì)

根據(jù)上節(jié)對(duì)三維模型轉(zhuǎn)換方法與方案的研究,筆者設(shè)計(jì)了一種3DS-Collada三維模型轉(zhuǎn)換的具體流程。圖2為轉(zhuǎn)換流程圖。

圖2 轉(zhuǎn)換流程圖

下面對(duì)轉(zhuǎn)換流程中用到的三維建模工具和三維模型格式做個(gè)簡單介紹。

(1)Maya創(chuàng)建的原始文件OBJ文件為文本類型,結(jié)構(gòu)非常簡單,保存的是一些多邊形的信息,諸如頂點(diǎn)幾何坐標(biāo)、紋理坐標(biāo),點(diǎn)與點(diǎn)如何連線組成線、面等等,所以適合在應(yīng)用程序中讀取或進(jìn)行3D文件格式轉(zhuǎn)換[1]。

(2)3Ds Max可導(dǎo)入OBJ文件,經(jīng)過對(duì)OBJ模型進(jìn)行UV貼圖等調(diào)整后,可導(dǎo)出生成3DS文件。3DS也是一種三維模型交換格式。

(3)kmz是符合zip壓縮的文件格式,kmz文件比kml文件功能強(qiáng)大,可以包含kml文件及Collada模型文件的信息。解壓后文件的典型結(jié)構(gòu)如下圖3所示。在doc.kml中存放kml描述,在Textures.txt存放紋理數(shù)據(jù),在models文件夾中存放模型(DAE模型、位圖等)。Python語言自帶有zip壓縮模塊Zip File,可以很方便地實(shí)現(xiàn)zip壓縮。

(4)Collada文件是Google Earth4采用三維模型文件格式,其后綴為dae。當(dāng)從Sketch Up中直接獲取模型時(shí),模型即以此文件格式存放。對(duì)于需要重復(fù)構(gòu)建的模型,可以通過一次建模,然后借助在kml文件中對(duì)ID號(hào)的引用實(shí)現(xiàn)多個(gè)實(shí)例的顯示。

圖3 KMZ文件夾結(jié)構(gòu)圖

2.2 轉(zhuǎn)換具體步驟

3DS-Collada三維模型轉(zhuǎn)換流程中包括2個(gè)主要轉(zhuǎn)換步驟,下面針對(duì)這2個(gè)步驟具體操做過程作個(gè)介紹。

2.2.1 OBJ-3DS轉(zhuǎn)換

Maya軟件建模所得的原始模型為OBJ格式,導(dǎo)入3Ds Max中進(jìn)行坐標(biāo)微調(diào)與UV貼圖后,可導(dǎo)出3DS格式的模型。這一步驟成敗的關(guān)鍵在于如何正確在3Ds Max給OBJ模型重新進(jìn)行UV貼圖。

UV貼圖是計(jì)算機(jī)圖形學(xué)中的術(shù)語,三維空間中的X、Y、Z坐標(biāo)用來描述空間位置,而UV用來描述貼圖的位置。因?yàn)橘N圖都是一張平面圖粘附到一個(gè)幾何形體上的,UV用來表述該平面圖與幾何形體的具體對(duì)應(yīng)關(guān)系。

3D貼圖實(shí)際上是將二維圖形貼到三維物體上,所以為了控制二維圖形在三維物體上的位置,定義了貼圖坐標(biāo),U與X對(duì)應(yīng),V與Y對(duì)應(yīng)。

對(duì)OBJ文件進(jìn)行UV貼圖時(shí)可能會(huì)碰到以下問題,應(yīng)該注意:

(1)在材質(zhì)球上添加棋盤格,從模型上顯示,在一系列的UV(黑白的棋盤格)中,所有的表面都必須有同樣的尺寸,因此,當(dāng)瀏覽模型時(shí),那些小方塊應(yīng)該是相同大小的。另外,也應(yīng)該盡量避免拉伸。棋盤格應(yīng)該越接近正方形越好。Maya和3Ds Max中的unflod功能可以幫助實(shí)現(xiàn)這一點(diǎn)。

(2)在貼圖中,貼圖的空間應(yīng)該充分利用。所以要盡量找到最好的UV排列方法將UV排滿。

(3)盡最大努力把模型邊緣連接好,這樣才能避免貼圖的接縫問題。同時(shí)在剪開UV的時(shí)候要注意接縫的位置。

(4)UV最好不要重疊,不要超出UV編輯框。

(5)UV貼圖必須同OBJ模型放在同一個(gè)文件夾下,否則導(dǎo)出的3DS模型沒有質(zhì)材。

2.2.2 3DS-kmz

3DS模型導(dǎo)入Sketch Up中之后,可能要對(duì)模型做一些修改和調(diào)整,才能生成符合Google Earth環(huán)境的三維模型,方法如下。

(1)修改建筑物。大多建筑物的模型頂部都沒有進(jìn)行貼圖,可能因?yàn)轫敳坎馁|(zhì)難以采集,也有可能是大多漫游都不會(huì)看到頂部,所以為了減小模型的數(shù)量,頂部省略了材質(zhì)貼圖。屋頂紋理借助Google Earth抓圖解決,導(dǎo)入的模型可以在Sketch Up中再次貼圖。

(2)調(diào)整模型大小。轉(zhuǎn)換后的模型大小不一定與Google Earth中的環(huán)境匹配,因此模型在上載到Google Earth之前必須調(diào)整大小。在Google Earth確定好模型所處位置,通過GE接口導(dǎo)入一個(gè)當(dāng)前視口中的圖像,模型根據(jù)圖像所顯示的位置大小進(jìn)行調(diào)整。

由于Google Earth圖像僅提供構(gòu)造物的平面信息,而不具有高程信息,因此簡易的建筑模型高度應(yīng)與建筑平面尺寸保持相應(yīng)的比例關(guān)系,以滿足建筑物的實(shí)際體量。最后通過建筑物實(shí)際高度、實(shí)物與模型比例來確定模型的高度。

3 三維模型的實(shí)現(xiàn)

3.1 模型轉(zhuǎn)換案例

為了驗(yàn)證該方案的正確性,作者按照上節(jié)三維模型轉(zhuǎn)換方案中的流程步驟轉(zhuǎn)換了大量的三維模型。本文用某大學(xué)“數(shù)字校園”項(xiàng)目中Maya創(chuàng)建的OBJ模型作為數(shù)據(jù),轉(zhuǎn)化為Collada模型,最后導(dǎo)入Google Earth中,如圖4是導(dǎo)入Google Earth中的教學(xué)樓模型。

圖4 Google Earth中教學(xué)樓模型

圖5 導(dǎo)入?yún)?shù)顯示圖

3.2 模型轉(zhuǎn)換分析

當(dāng)3DS文件在Sketch Up中打開時(shí),模型中某些數(shù)據(jù)可能會(huì)丟失,比如材質(zhì)、貼圖等數(shù)據(jù)。以Maya模型8hl.3ds為例,導(dǎo)入后會(huì)彈出對(duì)話框,如圖5所示,對(duì)話框中顯示不能生成8 HL.JPG貼圖與01-Default材質(zhì)。

主要原因是在OBJ-3DS轉(zhuǎn)換過程中,OBJ模型的貼圖出現(xiàn)了問題。改正的方法是重新對(duì)該OBJ文件進(jìn)行UV貼圖。

4 結(jié)語

現(xiàn)在的3D文件資源十分豐富,要充分利用這些資源,文件格式的轉(zhuǎn)換就必不可少。本文對(duì)Google Earth中Collada模型的轉(zhuǎn)換方法進(jìn)行了詳細(xì)的總結(jié)與嘗試性的實(shí)踐,提出一種新的轉(zhuǎn)換流程,并以個(gè)案實(shí)驗(yàn)的形式給出了實(shí)現(xiàn)效果圖。

[1]黎華,肖偉.幾種三維模型文件在 OpenGL中的輸入與處理[J].物探化探計(jì)算技術(shù),2007,29(1):83.

[2]余燁.面向VR系統(tǒng)的三維模型轉(zhuǎn)換工具[J].工程圖學(xué)學(xué)報(bào),2008(05):72-78.

[3]陳炳發(fā),陸楠,伍鐵軍.一種面向OPENGL的三維模型的轉(zhuǎn)化方法[J].小型微型計(jì)算機(jī)系統(tǒng),2004,25(3):72.

[4]朱笑然,年福純,田兆平,等.基于多軟件的STK模型轉(zhuǎn)換應(yīng)用研究[J].飛行器測(cè)控學(xué)報(bào),2010,29(2):54-56.

[5]江水.三維模型轉(zhuǎn)換引擎及其應(yīng)用研究[D].南京:南京師范大學(xué),2007:22-28.

[6]雷相波,王昊鵬.基于ElevationGrid節(jié)點(diǎn)的虛擬現(xiàn)實(shí)仿真[J].長春工程學(xué)院學(xué)報(bào):自然科學(xué)版,2007,8(2):67-69.

猜你喜歡
建模流程軟件
禪宗軟件
英語文摘(2021年10期)2021-11-22 08:02:26
吃水果有套“清洗流程”
聯(lián)想等效,拓展建?!浴皫щ娦∏蛟诘刃?chǎng)中做圓周運(yùn)動(dòng)”為例
軟件對(duì)對(duì)碰
基于PSS/E的風(fēng)電場(chǎng)建模與動(dòng)態(tài)分析
電子制作(2018年17期)2018-09-28 01:56:44
不對(duì)稱半橋變換器的建模與仿真
違反流程 致命誤判
本刊審稿流程
析OGSA-DAI工作流程
談軟件的破解與保護(hù)
精品(2015年9期)2015-01-23 01:36:01
金乡县| 邵东县| 丽水市| 道真| 徐州市| 安吉县| 达日县| 依兰县| 神池县| 龙海市| 教育| 宁化县| 肥城市| 墨脱县| 涟水县| 奉节县| 合作市| 景泰县| 巴彦县| 安平县| 彩票| 长宁县| 平潭县| 托克托县| 平乡县| 沾益县| 新建县| 中宁县| 黄梅县| 朝阳县| 新乡市| 富平县| 石台县| 凤冈县| 长宁区| 双辽市| 苍南县| 霞浦县| 泰来县| 晋中市| 横山县|