基于OpenGL的OBJ文件顯示_第1頁(yè)
基于OpenGL的OBJ文件顯示_第2頁(yè)
基于OpenGL的OBJ文件顯示_第3頁(yè)
基于OpenGL的OBJ文件顯示_第4頁(yè)
基于OpenGL的OBJ文件顯示_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

OBJ文件格式詳解1.OBJ文件概述2.OBJ文件的特點(diǎn)3.OBJ文件的基本結(jié)構(gòu)4.OBJ文件實(shí)例OBJ文件概述OBJ文件是Alias|Wavefront公司為它的一套基于工作站的3D建模和動(dòng)畫(huà)軟件"AdvancedVisualizer"開(kāi)發(fā)的一種標(biāo)準(zhǔn)3D模型文件格式,很適合用于3D軟件模型之間的互導(dǎo),也可以通過(guò)Maya讀寫(xiě)。比如你在3dsMax或LightWave中建了一個(gè)模型,想把它調(diào)到Maya里面渲染或動(dòng)畫(huà),導(dǎo)出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟件都支持OBJ文件的讀寫(xiě),不過(guò)其中很多需要通過(guò)插件才能實(shí)現(xiàn)。OBJ文件是一種文本文件,可以直接用寫(xiě)字板打開(kāi)進(jìn)行查看和編輯修改。另外,有一種與此相關(guān)二進(jìn)制文件格式(*.MOD),其作為專(zhuān)利未公開(kāi),因此這里不作討論。OBJ文件的特點(diǎn)OBJ3.0文件格式支持直線(xiàn)(Line)、多邊形(Polygon)、表面(Surface)和自由形態(tài)曲線(xiàn)(Free-formCurve)。直線(xiàn)和多邊形通過(guò)它們的點(diǎn)來(lái)描述,曲線(xiàn)和表面則根據(jù)它們的控制點(diǎn)和依附于曲線(xiàn)類(lèi)型的額外信息來(lái)定義,這些信息支持規(guī)則和不規(guī)則的曲線(xiàn),包括那些基于貝塞爾曲線(xiàn)(Bezier)、B樣條(B-spline)、基數(shù)(Cardinal/Catmull-Rom)和泰勒方程(Taylorequations)的曲線(xiàn)。其他特點(diǎn)如下:OBJ文件的特點(diǎn)

OBJ文件是一種3D模型文件。不包含動(dòng)畫(huà)、材質(zhì)特性、貼圖路徑、動(dòng)力學(xué)、粒子等信息。OBJ文件主要支持多邊形(Polygons)模型。雖然也支持曲線(xiàn)(Curves)、表面(Surfaces)、點(diǎn)組材質(zhì)(PointGroupMaterials),但Maya導(dǎo)出的OBJ文件并不包括這些信息。OBJ文件支持三個(gè)點(diǎn)以上的面,這一點(diǎn)很有用。很多其它的模型文件格式只支持三個(gè)點(diǎn)的面,所以導(dǎo)入Maya的模型經(jīng)常被三角化了,這對(duì)于我們對(duì)模型進(jìn)行再加工甚為不利。

OBJ文件支持法線(xiàn)和貼圖坐標(biāo)。在其它軟件中調(diào)整好貼圖后,貼圖坐標(biāo)信息可以存入OBJ文件中,這樣文件導(dǎo)入Maya后只需指定一下貼圖文件路徑就行了,不需要再調(diào)整貼圖坐標(biāo)。OBJ文件的基本結(jié)構(gòu)OBJ文件不需要任何種文件頭(FileHeader),盡管經(jīng)常使用幾行文件信息的注釋作為文件的開(kāi)頭。OBJ文件由一行行文本組成,注釋行以符號(hào)“#”為開(kāi)頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個(gè)標(biāo)記字母也就是關(guān)鍵字(Keyword)開(kāi)頭,關(guān)鍵字可以說(shuō)明這一行是什么樣的數(shù)據(jù)。多行可以邏輯地連接在一起表示一行,方法是在每一行最后添加一個(gè)連接符(\)。注意連接符(\)后面不能出現(xiàn)空格或Tab格,否則將導(dǎo)致文件出錯(cuò)。下列關(guān)鍵字可以在OBJ文件使用。在這個(gè)列表中,關(guān)鍵字根據(jù)數(shù)據(jù)類(lèi)型排列,每個(gè)關(guān)鍵字有一段簡(jiǎn)短描述。

頂點(diǎn)數(shù)據(jù)(Vertexdata):

v幾何體頂點(diǎn)(Geometricvertices)

vt貼圖坐標(biāo)點(diǎn)(Texturevertices)

vn頂點(diǎn)法線(xiàn)(Vertexnormals)

vp參數(shù)空格頂點(diǎn)(Parameterspacevertices)自由形態(tài)曲線(xiàn)(Free-formcurve)/表面屬性(surfaceattributes):

deg

度(Degree)

bmat

基礎(chǔ)矩陣(Basismatrix)

step

步尺寸(Stepsize)

cstype曲線(xiàn)或表面類(lèi)型(Curveorsurfacetype)元素(Elements):

p

點(diǎn)(Point)

l

線(xiàn)(Line)

f

面(Face)

curv

曲線(xiàn)(Curve)

curv2

2D曲線(xiàn)(2Dcurve)

surf

表面(Surface)OBJ文件的基本結(jié)構(gòu)自由形態(tài)曲線(xiàn)(Free-formcurve)/表面主體陳述(surfacebodystatements):

parm參數(shù)值(Parametervalues)

trim外部修剪循環(huán)(Outertrimmingloop)

hole內(nèi)部整修循環(huán)(Innertrimmingloop)

scrv特殊曲線(xiàn)(Specialcurve)

sp特殊的點(diǎn)(Specialpoint)

end

結(jié)束陳述(Endstatement)自由形態(tài)表面之間的連接(Connectivitybetweenfree-formsurfaces):

con連接(Connect)成組(Grouping):

g

組名稱(chēng)(Groupname)

s光滑組(Smoothinggroup)

mg合并組(Merginggroup)

o對(duì)象名稱(chēng)(Objectname)OBJ文件的基本結(jié)構(gòu)顯示(Display)/渲染屬性(renderattributes):

bevel導(dǎo)角插值(Bevelinterpolation)

c_interp顏色插值(Colorinterpolation)

d_interp溶解插值(Dissolveinterpolation)

lod細(xì)節(jié)層次(Levelofdetail)

usemtl材質(zhì)名稱(chēng)(Materialname)

mtllib材質(zhì)庫(kù)(Materiallibrary)

shadow_obj

投射陰影(Shadowcasting)

trace_obj

光線(xiàn)跟蹤(Raytracing)

ctech

曲線(xiàn)近似技術(shù)(Curveapproximationtechnique)

stech

表面近似技術(shù)(Surfaceapproximationtechnique)OBJ文件的基本結(jié)構(gòu)OBJ文件實(shí)例

讓我們來(lái)創(chuàng)建一個(gè)OBJ文件,內(nèi)容為一個(gè)四邊形,不過(guò)不用3D軟件,而是用寫(xiě)字板來(lái)創(chuàng)建。打開(kāi)寫(xiě)字板,把下面的5行代碼寫(xiě)入,可以適當(dāng)加一點(diǎn)注釋。保存文件為文本格式,文件名為"myObj.obj"。注意:代碼最后一定要按一下回車(chē)把光標(biāo)切換到下一行,就是說(shuō)加一個(gè)換行符(\n)。否則會(huì)看到如下錯(cuò)誤信息:

//Error:line1:OBJfileline5:indexoutofrange.//

//Error:line1:Errorreadingfile.//

在Maya中導(dǎo)入"myObj.obj"文件,會(huì)看到四邊形。這個(gè)四邊形的形狀是完全由前面的那5行代碼決定的。OBJ文件實(shí)例

我們來(lái)分析一下這些代碼。

v-0.580.840

畫(huà)一個(gè)四邊形需要四個(gè)頂點(diǎn),這是第一個(gè)頂點(diǎn),"v"表示頂點(diǎn)(vertex),"-0.58"為這個(gè)頂點(diǎn)的X軸坐標(biāo)值,"0.84"為Y軸坐標(biāo)值,"0"為Z軸坐標(biāo)值。它的索引號(hào)是1。索引號(hào)是畫(huà)面時(shí)要用到的。

v2.681.170

v2.84-2.030

v-1.92-2.890

這分別是第二、三、四個(gè)頂點(diǎn),它們的索引號(hào)分別是2,3,4。

f1234

現(xiàn)在開(kāi)始畫(huà)面,"f"表示面(face),1,2,3,4是前面那四個(gè)頂點(diǎn)的索引號(hào)。請(qǐng)注意畫(huà)這個(gè)面連接點(diǎn)的順序,是從第一個(gè)點(diǎn)出發(fā),依次連接第二、三、四個(gè)點(diǎn)。如果連接的順序不同所生成的面也會(huì)截然不同,例如"f1243"會(huì)產(chǎn)生一個(gè)交迭的面。

面的連接點(diǎn)是按順時(shí)針排列或逆時(shí)針排列,將決定面

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論