您的位置:首页 > 其它

3d文件格式规范001---obj格式

2014-08-12 15:39 981 查看
开发公司: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: