obj格式简介

所属分类: 实用技巧 / 应用技巧 阅读数: 697
收藏 0 赞 0 分享
我们经常见到的*.obj文件有两种:第一种是基于COFF(Common Object File Format)格式的OBJ文件(也称目标文件),这种格式用于编译应用程序;第二种是Alias|Wavefront公司推出的OBJ模型文件。我要讲的OBJ文件格式是指第二种-OBJ模型文件。 <BR>   说起3D文件格式,大家一定不会感到陌生,"*.3ds","*.max","*.lw","*.mb","*.dxf","*.obj",相信人人都能列举出几种来。但是说起OBJ文件的具体特征,却很少有人能给出较为圆满的描述。 很多人认识OBJ文件是从使用Poser开始的,Poser是一款人体建模软件,要把Poser生成的人体导出到其它3D软件中进行再加工,就用到了OBJ文件。OBJ文件是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导。比如你在3dsMax或LightWave中建了一个模型,想把它调到Maya里面渲染或动画,导出OBJ文件就是一种很好的选择。目前几乎所有知名的3D软件都支持OBJ文件的读写,不过很多软件需要通过插件才能做到这一点。
另外,作为一种优秀的文件格式,很多游戏引擎也都支持OBJ文件的读取。 了解OBJ文件格式有什么用呢?如果你不学编程的话,用处确实不大。不过,3D软件模型之间的互导是一件很常见的事情,不幸的是,目前的3D软件模型导出功能都不那么完美,经常会出现缺面少线的情况,有时还会遇到导出的模型根本打不开的情况。如果情况非常紧急的话,你一定会不惜一切代价仔细研究,期望找到原因,解决问题。在这种情况下,我的教程也许会对你有很大帮助
OBJ文件是一种文本文件格式,这就意味着你可以直接用写字板打开进行查看修改,如果你能看懂每一行的内容是什么意思,相信距离你成功的解决问题已经不远了。
OBJ文件是Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种文件格式。 
  OBJ新版本是v3.0,代替以前的v2.11版本。 
  OBJ3.0格式支持多边形(Polygon),直线(Lines),表面(Surfaces),和自由形态曲线(Free-form Curves)。 
直线和多角形通过它们的点来描述,曲线和表面则根据于它们的控制点和依附于曲线类型的额外信息来定义。这些信息支持规则和不规则的曲线,包括那些基于贝塞尔(Bezier)曲线,B样条(B-spline),基数(Cardinal/Catmull-Rom样条),和泰勒方程(Taylor equations)的曲线。 
   OBJ文件 -- 特点 
  (1)OBJ是一种3D模型文件,因此不包含动画、材质特性、贴图路径、动力学、粒子等信息。 
  (2)OBJ文件主要支持多边形(Polygons)模型。 
  (3)OBJ文件支持三个点以上的面。
(4)OBJ文件支持法线和贴图坐标。
OBJ文件不支持有孔的多边形面 
OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。关键字"mtllib"即材质库的意思。材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的定义值,   "usemtl"指定了材质之后,以后的面都是使用这一材质,直到遇到下一个"usemtl"来指定新的材质。 
OBJ文件 -- 基本结构 
OBJ文件由一行行文本组成,注释行以一个“井”号(#)为开头,空格和空行可以随意加到文件中以增加文件的可读性。有字的行都由一两个标记字母也就是关键字(Keyword)开头,关键字可以说明这一行是什么样的数据。多行可以逻辑地连接在一起表示一行,方法是在每一行最后添加一个连接符(\)。 
注意连接符(\)后面不能出现空格或tab格,否则将导致文件出错。 
  下列关键字可以在OBJ文件使用。 
  在这个列表中, 关键字根据数据类型排列,每个关键字有一段简短描述。 
  顶点数据(Vertex data): 
   v 几何体顶点 (Geometric vertices) 
  vt 贴图坐标点 (Texture vertices) 
  vn 顶点法线 (Vertex normals) 
  vp 参数空格顶点 (Parameter space vertices) 
  自由形态曲线(Free-form curve)/表面属性(surface attributes): 
  deg 度 (Degree) 
  bmat 基础矩阵 (Basis matrix) 
  step 步尺寸 (Step size) 
  cstype 曲线或表面类型 (Curve or surface type) 
  元素(Elements): 
  p 点 (Point) 
  l 线 (Line) 
  f 面 (Face) 
  curv 曲线 (Curve) 
  curv2 2D曲线 (2D curve) 
  surf 表面 (Surface) 
  自由形态曲线(Free-form curve)/表面主体陈述(surface body statements): 
  parm 参数值 (Parameter values ) 
  trim 外部修剪循环 (Outer trimming loop) 
  hole 内部整修循环 (Inner trimming loop) 
  scrv 特殊曲线 (Special curve) 
  sp 特殊的点 (Special point) 
  end 结束陈述 (End statement) 
  自由形态表面之间的连接(Connectivity between free-form surfaces): 
  con 连接 (Connect) 
-  成组(Grouping): 
   g 组名称 (Group name) 
  s 光滑组 (Smoothing group) 
  mg 合并组 (Merging group) 
  o 对象名称 (Object name) 
-  显示(Display)/渲染属性(render attributes): 
bevel 导角插值 (Bevel interpolation) 
  c_interp 颜色插值 (Color interpolation) 
  d_interp 溶解插值 (Dissolve interpolation) 
  lod 细节层次 (Level of detail) 
  usemtl 材质名称 (Material name) 
  mtllib 材质库 (Material library) 
  shadow_obj 投射阴影 (Shadow casting) 
  trace_obj 光线跟踪 (Ray tracing) 
  ctech 曲线近似技术 (Curve approximation technique) 
  stech 表面近似技术 (Surface approximation technique) 
更多精彩内容其他人还在看

DEDECMS插入表时的出错

修改服务器mysql的sql-mode配置以解决DEDECMS插入表时的出错的BUG
收藏 0 赞 0 分享

Firefox浏览器狂占CPU解决办法

这两天 Firefox 突然变态,时不时的占用接近 50% CPU 资源,带来的现象是系统应用程序响应极慢。开始还以为是个别页面带来的问题,后来发现原来是普遍现象。这类问题开始不好求助于 Google ,说实话,不知道用啥作关键字搜索。
收藏 0 赞 0 分享

TMP、TEMP和TMP文件区别解析

总是发现很多tmp和temp等缓存文件,不懂为什么要那么多区别,看了下文,感觉不错
收藏 0 赞 0 分享

保存网页图片的八种方法小结

为了增加互动性和美观,现在的网页中都有许多精美的图片,这些都是网页制作者精心制作出来的,如果你想拿来为自己所用就必须把它们保存下来。另外,在一些电子书中也有精美的图片,为了防止有人复制,作者禁用了鼠标右键无法直接下载,针对以上情况,我们可以想办法来突破限制,从易到难可以顺次采用以
收藏 0 赞 0 分享

高手总结的电脑应用技巧第1/3页

声明:以下技巧都是一些电脑常用技巧,但也并不是每个人都很清楚,请只选择你感兴趣的内容选择性的观看。
收藏 0 赞 0 分享

不用任何软件修改mac地址的图文方法

一直都用的软件修改mac地址,没想到可以直接修改,学到一招
收藏 0 赞 0 分享

安装ppstream后出现的ppsap.exe进程解决办法

程文件:ppsap.exe 进程名称:ppsap.exe 描述: ppstream每次启动都会另开一个进程“网络加速器”(ppsap.exe), (1)每次开机都会自动运行, (2)退出ppstream之后会继续存在, (3)可手动在taskmanager
收藏 0 赞 0 分享

SIM卡的基本知识

一直用SIM卡不知道是怎么回事呢
收藏 0 赞 0 分享

删除XP中“自定义通知”的历史项目

XP中自定义通知很反感,告诉大家它的删除方法
收藏 0 赞 0 分享

更改IE浏览器的图标

注册表更改IE图标
收藏 0 赞 0 分享
查看更多