3d文件格式規範001---obj格式

開發公司:Alias|Wavefront公司

典型應用:
軟件:
(1)Advanced Visualizer(Wavefront)
(2)Poser

其他應用:
所有dcc/cad/cam都支持該格式

問題提出:
3D軟件模型之間的互導時出現的錯誤,比如如果Maya自身的模型出錯,也可以先轉成OBJ格式,修改之後

再導回Maya。

################----OBJ文件 -- 概念----#######################
OBJ文件有2種基本格式:
ASCII格式(.obj)。
binary格式(.mod),該專利尚未公開.
文檔版本:v2.11\v3.0。

#############----OBJ文件 -- 特點----#######################
(1)OBJ是一種3D模型文件,支持法線和貼圖座標,但是不包含動畫、動力學、粒子等信息。
(2)OBJ3.0格式支持多邊形(Polygon),直線(Lines),表面(Surfaces),和5種自由形態曲線(Free-form

Curves)。包括那些基於Bezier\B-spline\Cardinal\Taylor equations曲線。
注意:
各三維軟件由於多方面原因,對obj格式的容納能力不盡相同,比如Maya導出的OBJ文件只支持多邊形。
(3)OBJ文件支持三角面。
很多其它的模型文件格式只支持三角面,所以我們導入Maya的模型經常被三角化了,這對於我們對模型

的再加工甚爲不利。

################----基本結構 File structure----#####################
 

Syntax

Specifying

頂點數據(Vertex data)

v(v x y z w)

Geometric vertices

vt(u v w)

Texture vertices

vn(i j k)

Vertex normals

vp(u v w)

curve/surface attributes (Parameter space vertices)

自由形態曲線(Free-form curve)/表面屬性(surface attributes)

deg(degu degv)

Degree

bmat(u matrix)

(v matrix)

Basis matrix

step(stepu stepv)

Step size

cstype

Curve or surface type

元素(Elements)

p(v1 v2 v3 ……)

-Point

l (v1/vt1 v2/vt2 v3/vt3 ……)

-Line

f (v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ……)

Face

curv(u0 u1 v1 v2 ……)

Curve

curv2 (vp1 vp2 vp3……)

2D curve

surf(s0 s1 t0 t1 v1/vt1/vn1 v2/vt2/vn2……)

Surface

自由形態曲線(Free-form curve)/表面主體陳述(surface body statements)

parm (u p1 p2 p3……) (v p1 p2 p3……)

Parameter values

trim(u0 u1 curv2d u0 u1 curv2d ……)

Outer trimming loop

hole(u0 u1 curv2d u0 u1 curv2d …… )

Inner trimming loop

scrv(u0 u1 curv2d u0 u1 curv2d……)

Special curve

sp( vp1 vp……)

special point

end

End statement

自由形態表面之間的連接(Connectivity between free-form surfaces)

con(surf_1 q0_1 q1_1 curv2d_1

surf_2 q0_2 q1_2 curv2d_2)

Connect

成組(Grouping)

g(group_name1 group_name2 ……)

Group name

s(group_number)

Smoothing group

mg(group_number res)

Merging group

o(object_name)

object name

顯示(Display)/渲染屬性(render attributes)

bevel(on/off)

Bevel interpolation

c_interp(on/off)

Color interpolation

d_interp(on/off)

issolve interpolation

lod(level)

Level of detail

maplib(filename1 filename2……)

 

usemap(map_name/off)

 

usemtl( material_name)

Material name

mtllib(filename1 filename2 ……)

Material library

shadow_obj(filename)

Shadow casting

trace_obj(filename)

Ray tracing

ctech(cparm res)

(cspace maxlength)

(curv maxdist maxangle)

 

Curve approximation technique

stech(cparma ures vres)

(cparmb uvres)

(cspace maxlength)

(curv maxdist maxangle

)

Surface approximation technique

#####################---------材質庫(.mtl)--------#####################

OBJ文件不包含面的顏色定義信息,不過可以引用材質庫,材質庫信息儲存在一個後綴是".mtl"的獨立文件中。關鍵字"mtllib"即材質庫的意思。

材質庫中包含材質的漫射(diffuse),環境(ambient),光澤(specular)的RGB(紅綠藍)的定義值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特徵。
-------------------****基本結構*****-------------------------------

###########################################################


最優秀的模型格式01----DAE
最優秀的模型格式02----FBX
maya讀取dae/fbx,可能需要自己安裝插件!!

maya導入(import)obj等等模型後,可能需要做幾個工作:
(1)cleanup清除重疊面
polygons>cleanup>lamina faces。

(2)qudrangulate 轉爲4邊面
polygons>qudrangulate

(3)translation 調整大小等

(4)重新指定貼圖
maya有一個bug,沒有賦予材質的mtl文件不能正確讀取,但是如果該mtl文件被正確的賦予了材質的話,就可以正確讀取了



參考文獻:
(1)http://www.martinreddy.net/gfx/3d/OBJ.spec
(2)http://en.wikipedia.org/wiki/Obj
(3)http://www.alias.com/eng/index.shtml, The Alias web site.
(4)http://people.sc.fsu.edu/~burkardt/data/obj/obj.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章