obj格式簡(jiǎn)介
更新時(shí)間:2007年02月02日 00:00:00 作者:
我們經(jīng)常見到的*.obj文件有兩種:第一種是基于COFF(Common Object File Format)格式的OBJ文件(也稱目標(biāo)文件),這種格式用于編譯應(yīng)用程序;第二種是Alias|Wavefront公司推出的OBJ模型文件。我要講的OBJ文件格式是指第二種-OBJ模型文件。 <BR> 說起3D文件格式,大家一定不會(huì)感到陌生,"*.3ds","*.max","*.lw","*.mb","*.dxf","*.obj",相信人人都能列舉出幾種來。但是說起OBJ文件的具體特征,卻很少有人能給出較為圓滿的描述。 很多人認(rèn)識(shí)OBJ文件是從使用Poser開始的,Poser是一款人體建模軟件,要把Poser生成的人體導(dǎo)出到其它3D軟件中進(jìn)行再加工,就用到了OBJ文件。OBJ文件是一種標(biāo)準(zhǔn)的3D模型文件格式,很適合用于3D軟件模型之間的互導(dǎo)。比如你在3dsMax或LightWave中建了一個(gè)模型,想把它調(diào)到Maya里面渲染或動(dòng)畫,導(dǎo)出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟件都支持OBJ文件的讀寫,不過很多軟件需要通過插件才能做到這一點(diǎn)。
另外,作為一種優(yōu)秀的文件格式,很多游戲引擎也都支持OBJ文件的讀取。 了解OBJ文件格式有什么用呢?如果你不學(xué)編程的話,用處確實(shí)不大。不過,3D軟件模型之間的互導(dǎo)是一件很常見的事情,不幸的是,目前的3D軟件模型導(dǎo)出功能都不那么完美,經(jīng)常會(huì)出現(xiàn)缺面少線的情況,有時(shí)還會(huì)遇到導(dǎo)出的模型根本打不開的情況。如果情況非常緊急的話,你一定會(huì)不惜一切代價(jià)仔細(xì)研究,期望找到原因,解決問題。在這種情況下,我的教程也許會(huì)對(duì)你有很大幫助
OBJ文件是一種文本文件格式,這就意味著你可以直接用寫字板打開進(jìn)行查看修改,如果你能看懂每一行的內(nèi)容是什么意思,相信距離你成功的解決問題已經(jīng)不遠(yuǎn)了。
OBJ文件是Wavefront公司為它的一套基于工作站的3D建模和動(dòng)畫軟件"Advanced Visualizer"開發(fā)的一種文件格式。
OBJ新版本是v3.0,代替以前的v2.11版本。
OBJ3.0格式支持多邊形(Polygon),直線(Lines),表面(Surfaces),和自由形態(tài)曲線(Free-form Curves)。
直線和多角形通過它們的點(diǎn)來描述,曲線和表面則根據(jù)于它們的控制點(diǎn)和依附于曲線類型的額外信息來定義。這些信息支持規(guī)則和不規(guī)則的曲線,包括那些基于貝塞爾(Bezier)曲線,B樣條(B-spline),基數(shù)(Cardinal/Catmull-Rom樣條),和泰勒方程(Taylor equations)的曲線。
OBJ文件 -- 特點(diǎn)
(1)OBJ是一種3D模型文件,因此不包含動(dòng)畫、材質(zhì)特性、貼圖路徑、動(dòng)力學(xué)、粒子等信息。
(2)OBJ文件主要支持多邊形(Polygons)模型。
(3)OBJ文件支持三個(gè)點(diǎn)以上的面。
(4)OBJ文件支持法線和貼圖坐標(biāo)。
OBJ文件不支持有孔的多邊形面
OBJ文件不包含面的顏色定義信息,不過可以引用材質(zhì)庫,材質(zhì)庫信息儲(chǔ)存在一個(gè)后綴是".mtl"的獨(dú)立文件中。關(guān)鍵字"mtllib"即材質(zhì)庫的意思。材質(zhì)庫中包含材質(zhì)的漫射(diffuse),環(huán)境(ambient),光澤(specular)的定義值, "usemtl"指定了材質(zhì)之后,以后的面都是使用這一材質(zhì),直到遇到下一個(gè)"usemtl"來指定新的材質(zhì)。
OBJ文件 -- 基本結(jié)構(gòu)
OBJ文件由一行行文本組成,注釋行以一個(gè)“井”號(hào)(#)為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個(gè)標(biāo)記字母也就是關(guān)鍵字(Keyword)開頭,關(guān)鍵字可以說明這一行是什么樣的數(shù)據(jù)。多行可以邏輯地連接在一起表示一行,方法是在每一行最后添加一個(gè)連接符(\)。
注意連接符(\)后面不能出現(xiàn)空格或tab格,否則將導(dǎo)致文件出錯(cuò)。
下列關(guān)鍵字可以在OBJ文件使用。
在這個(gè)列表中, 關(guān)鍵字根據(jù)數(shù)據(jù)類型排列,每個(gè)關(guān)鍵字有一段簡(jiǎn)短描述。
頂點(diǎn)數(shù)據(jù)(Vertex data):
v 幾何體頂點(diǎn) (Geometric vertices)
vt 貼圖坐標(biāo)點(diǎn) (Texture vertices)
vn 頂點(diǎn)法線 (Vertex normals)
vp 參數(shù)空格頂點(diǎn) (Parameter space vertices)
自由形態(tài)曲線(Free-form curve)/表面屬性(surface attributes):
deg 度 (Degree)
bmat 基礎(chǔ)矩陣 (Basis matrix)
step 步尺寸 (Step size)
cstype 曲線或表面類型 (Curve or surface type)
元素(Elements):
p 點(diǎn) (Point)
l 線 (Line)
f 面 (Face)
curv 曲線 (Curve)
curv2 2D曲線 (2D curve)
surf 表面 (Surface)
自由形態(tài)曲線(Free-form curve)/表面主體陳述(surface body statements):
parm 參數(shù)值 (Parameter values )
trim 外部修剪循環(huán) (Outer trimming loop)
hole 內(nèi)部整修循環(huán) (Inner trimming loop)
scrv 特殊曲線 (Special curve)
sp 特殊的點(diǎn) (Special point)
end 結(jié)束陳述 (End statement)
自由形態(tài)表面之間的連接(Connectivity between free-form surfaces):
con 連接 (Connect)
- 成組(Grouping):
g 組名稱 (Group name)
s 光滑組 (Smoothing group)
mg 合并組 (Merging group)
o 對(duì)象名稱 (Object name)
- 顯示(Display)/渲染屬性(render attributes):
bevel 導(dǎo)角插值 (Bevel interpolation)
c_interp 顏色插值 (Color interpolation)
d_interp 溶解插值 (Dissolve interpolation)
lod 細(xì)節(jié)層次 (Level of detail)
usemtl 材質(zhì)名稱 (Material name)
mtllib 材質(zhì)庫 (Material library)
shadow_obj 投射陰影 (Shadow casting)
trace_obj 光線跟蹤 (Ray tracing)
ctech 曲線近似技術(shù) (Curve approximation technique)
stech 表面近似技術(shù) (Surface approximation technique)
另外,作為一種優(yōu)秀的文件格式,很多游戲引擎也都支持OBJ文件的讀取。 了解OBJ文件格式有什么用呢?如果你不學(xué)編程的話,用處確實(shí)不大。不過,3D軟件模型之間的互導(dǎo)是一件很常見的事情,不幸的是,目前的3D軟件模型導(dǎo)出功能都不那么完美,經(jīng)常會(huì)出現(xiàn)缺面少線的情況,有時(shí)還會(huì)遇到導(dǎo)出的模型根本打不開的情況。如果情況非常緊急的話,你一定會(huì)不惜一切代價(jià)仔細(xì)研究,期望找到原因,解決問題。在這種情況下,我的教程也許會(huì)對(duì)你有很大幫助
OBJ文件是一種文本文件格式,這就意味著你可以直接用寫字板打開進(jìn)行查看修改,如果你能看懂每一行的內(nèi)容是什么意思,相信距離你成功的解決問題已經(jīng)不遠(yuǎn)了。
OBJ文件是Wavefront公司為它的一套基于工作站的3D建模和動(dòng)畫軟件"Advanced Visualizer"開發(fā)的一種文件格式。
OBJ新版本是v3.0,代替以前的v2.11版本。
OBJ3.0格式支持多邊形(Polygon),直線(Lines),表面(Surfaces),和自由形態(tài)曲線(Free-form Curves)。
直線和多角形通過它們的點(diǎn)來描述,曲線和表面則根據(jù)于它們的控制點(diǎn)和依附于曲線類型的額外信息來定義。這些信息支持規(guī)則和不規(guī)則的曲線,包括那些基于貝塞爾(Bezier)曲線,B樣條(B-spline),基數(shù)(Cardinal/Catmull-Rom樣條),和泰勒方程(Taylor equations)的曲線。
OBJ文件 -- 特點(diǎn)
(1)OBJ是一種3D模型文件,因此不包含動(dòng)畫、材質(zhì)特性、貼圖路徑、動(dòng)力學(xué)、粒子等信息。
(2)OBJ文件主要支持多邊形(Polygons)模型。
(3)OBJ文件支持三個(gè)點(diǎn)以上的面。
(4)OBJ文件支持法線和貼圖坐標(biāo)。
OBJ文件不支持有孔的多邊形面
OBJ文件不包含面的顏色定義信息,不過可以引用材質(zhì)庫,材質(zhì)庫信息儲(chǔ)存在一個(gè)后綴是".mtl"的獨(dú)立文件中。關(guān)鍵字"mtllib"即材質(zhì)庫的意思。材質(zhì)庫中包含材質(zhì)的漫射(diffuse),環(huán)境(ambient),光澤(specular)的定義值, "usemtl"指定了材質(zhì)之后,以后的面都是使用這一材質(zhì),直到遇到下一個(gè)"usemtl"來指定新的材質(zhì)。
OBJ文件 -- 基本結(jié)構(gòu)
OBJ文件由一行行文本組成,注釋行以一個(gè)“井”號(hào)(#)為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個(gè)標(biāo)記字母也就是關(guān)鍵字(Keyword)開頭,關(guān)鍵字可以說明這一行是什么樣的數(shù)據(jù)。多行可以邏輯地連接在一起表示一行,方法是在每一行最后添加一個(gè)連接符(\)。
注意連接符(\)后面不能出現(xiàn)空格或tab格,否則將導(dǎo)致文件出錯(cuò)。
下列關(guān)鍵字可以在OBJ文件使用。
在這個(gè)列表中, 關(guān)鍵字根據(jù)數(shù)據(jù)類型排列,每個(gè)關(guān)鍵字有一段簡(jiǎn)短描述。
頂點(diǎn)數(shù)據(jù)(Vertex data):
v 幾何體頂點(diǎn) (Geometric vertices)
vt 貼圖坐標(biāo)點(diǎn) (Texture vertices)
vn 頂點(diǎn)法線 (Vertex normals)
vp 參數(shù)空格頂點(diǎn) (Parameter space vertices)
自由形態(tài)曲線(Free-form curve)/表面屬性(surface attributes):
deg 度 (Degree)
bmat 基礎(chǔ)矩陣 (Basis matrix)
step 步尺寸 (Step size)
cstype 曲線或表面類型 (Curve or surface type)
元素(Elements):
p 點(diǎn) (Point)
l 線 (Line)
f 面 (Face)
curv 曲線 (Curve)
curv2 2D曲線 (2D curve)
surf 表面 (Surface)
自由形態(tài)曲線(Free-form curve)/表面主體陳述(surface body statements):
parm 參數(shù)值 (Parameter values )
trim 外部修剪循環(huán) (Outer trimming loop)
hole 內(nèi)部整修循環(huán) (Inner trimming loop)
scrv 特殊曲線 (Special curve)
sp 特殊的點(diǎn) (Special point)
end 結(jié)束陳述 (End statement)
自由形態(tài)表面之間的連接(Connectivity between free-form surfaces):
con 連接 (Connect)
- 成組(Grouping):
g 組名稱 (Group name)
s 光滑組 (Smoothing group)
mg 合并組 (Merging group)
o 對(duì)象名稱 (Object name)
- 顯示(Display)/渲染屬性(render attributes):
bevel 導(dǎo)角插值 (Bevel interpolation)
c_interp 顏色插值 (Color interpolation)
d_interp 溶解插值 (Dissolve interpolation)
lod 細(xì)節(jié)層次 (Level of detail)
usemtl 材質(zhì)名稱 (Material name)
mtllib 材質(zhì)庫 (Material library)
shadow_obj 投射陰影 (Shadow casting)
trace_obj 光線跟蹤 (Ray tracing)
ctech 曲線近似技術(shù) (Curve approximation technique)
stech 表面近似技術(shù) (Surface approximation technique)
相關(guān)文章
"在試著設(shè)置任務(wù)帳戶信息時(shí)出現(xiàn)錯(cuò)誤,指定的錯(cuò)誤是:0x80070005:拒絕訪問
你檢查操作過程是否有誤?主要是在設(shè)置執(zhí)行程序要求的用戶名和密碼處,請(qǐng)注意所填寫用戶名權(quán)限和密碼的正確性。2008-12-12關(guān)于進(jìn)程mDNSResponder.exe 總訪問網(wǎng)絡(luò) 附刪除方法
關(guān)于進(jìn)程mDNSResponder.exe 總訪問網(wǎng)絡(luò) 附刪除方法...2007-11-11詳細(xì)分析交換機(jī)、路由器、集線器的區(qū)別和聯(lián)系
詳細(xì)分析交換機(jī)、路由器、集線器的區(qū)別和聯(lián)系...2006-12-12關(guān)于Google域名的自動(dòng)轉(zhuǎn)向問題
關(guān)于Google域名的自動(dòng)轉(zhuǎn)向問題...2007-04-04Visual Studio 2008 安裝失敗(“Web 創(chuàng)作組件”無法安裝)的解決辦法
根據(jù)提示,是第一個(gè)組件“Visual Studio Web 創(chuàng)作組件(Visual Studio Authoring Component)”安裝失敗,出現(xiàn)錯(cuò)誤界面之后,setup.exe隨即停止工作(如圖),裝過了2次都是如此。2008-07-07