关键词不能为空

当前您在: 主页 > 英语 >

OBJ文件格式内幕详解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:53
tags:

-

2021年2月1日发(作者:visin)


OBJ


文件格式内幕详解


2009



05



26




星期二


15:16



我们经常见到的


*.obj


文件有两种 :


第一种是基于


COFF(Common


Object


File


Forma t)


格式的


OBJ


文件


(


也称目标文件


)


,这种格式 用于编译应用程序;第


二种是


Alias|Wavefront


公司推出的


OBJ


模型文件。


我要讲的


OBJ


文件格式是指

< br>第二种


-OBJ


模型文件。






说起< /p>


3D


文件格式,大家一定不会感到陌生,










< br>,



,相信人人都能列举出几种来。但是说起


OBJ


文件的


具体特征,却很少有人能给出较为圆满 的描述。



很多人认识


OBJ


文件是从使用


Poser


开始的,


Poser


是一款人体建模软件,要把


Poser< /p>


生成的人体导出到其它


3D


软件中进行再 加工,就用到了


OBJ


文件。


OBJ< /p>


文件是一种标准的


3D


模型文件


格式,


很适合用于


3D


软件模型之间的互导。


比如你在


3dsMax

< br>或


LightWave


中建


了一 个模型,想把它调到


Maya


里面渲染或动画,导出

< p>
OBJ


文件就是一种很好的


选择。目前几乎所有知 名的


3D


软件都支持


OBJ

< p>
文件的读写,不过很多软件需要


通过插件才能做到这一点。



另外,作为一种优秀的文件格式,很多游戏引擎也都支持

< br>OBJ


文件的读取。





OBJ


文件格式有什么用呢?如果你不学编 程的话,用处确实不大。不过,


3D


软件模型之间的互导是一件 很常见的事情,不幸的是,目前的


3D


软件模型导出

< p>
功能都不那么完美,


经常会出现缺面少线的情况,


有时还会遇到导出的模型根本


打不开的情况。


如果情况非常紧急 的话,


你一定会不惜一切代价仔细研究,


期望

< br>找到原因,解决问题。在这种情况下,我的教程也许会对你有很大帮助。





OBJ


文 件是一种文本文件格式,


这就意味着你可以直接用写字板打开进行查

看修改,


如果你能看懂每一行的内容是什么意思,


相信距离 你成功的解决问题已


经不远了。





如果


Maya


自身的模型出错,


也可以先转成


OBJ


格式,


修改之后再导回


Maya


。< /p>





OBJ


文件


--


概念




< /p>


OBJ


文件是


Wavefront


公司为它的一套基于工作站的


3D


建模和动画 软件



Visualizer


开发的一种 文件格式,


这种格式同样也以通过


Maya

读写。






要想知道一个文件是不是


OBJ


文件,通常根据这个文件名的后缀来判断,


OBJ

< br>文件的后缀是




OBJ


文件是让人可读的文本,你可以直接用写字板打


开对它进行编辑。



另外,


有一种与此相关二进制文件格式< /p>


(


使用



后缀


)



二进制格式作为专利

< br>未公开,因此在这里我们不作讨论。





OBJ


最近的有文档的版本是


v3.0


,代替以前的


v2.11


版本。





OBJ3.0


格式支持多边形


(Polygo n)


,直线


(Lines)


,表面


(Surfaces)


,和自


由形态曲线< /p>


(Free-form Curves)




直线和多角形通 过它们的点来描述,


曲线和表面则根据于它们的控制点和依附于


曲线类型的额外信息来定义。


这些信息支持规则和不规则的曲线,


包括那些基于


贝塞尔


(Bezier)


曲线,


B


样条


(B-spline)


,基数


(Cardinal/Catmull-Rom


样条


)



和泰勒方程< /p>


(Taylor equations)


的曲线。





OBJ


文件


--


特点





(1)OBJ


是一种


3D


模型文件,因此不包含动画、材质特性、贴图路径、动力


学、粒子等信息。< /p>





(2) OBJ


文件主要支持多边形


(Polygons)


模型。



虽然


OBJ


文件也支持曲线


(Curves)


、表面< /p>


(Surfaces)


、点组材质


(Po int Group


Materials)


,但


Maya


导出的


OBJ


文件 并不包括这些信息。





(3)OBJ


文件支持三个点以上的面,这一点很有用。



很多其它的模型文件格式只支持三个点的面,所以我们导入


Maya


的模型经常被


三角化了,这对于我们对模型的 再加工甚为不利。






(4)OBJ


文件支持法

< p>
线和贴图坐标。





在其它软件中调整好贴图后,


贴图坐标信息可以存入

< p>
OBJ


文件中,


这样文件


导入


Maya


后只需指定一下贴图文件路径就行了,不需要再调 整贴图坐标了。



OBJ


文件


--


基本结构



OBJ


文件不需要任何种文件头


(File Header)< /p>


,尽管经常使用几行文件


信息的注释作为文件的开头。

< p>


OBJ


文件由一行行文本组成,注释行以一个 “井”号


(#)


为开头,空格和空行可


以随意加到文件中以增加文件的可读性。


有字的行都由一两个标记字母也就是关


键字


(Keyword)


开头,关键字可以说明 这一行是什么样的数据。多行可以逻辑地


连接在一起表示一行,方法是在每一行最后添加 一个连接符


()




注意连接符


()


后面不能出现空格或

< br>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)


的确挺难理解,所以要用实例来说明。



OBJ


文件


--


实例:



下面通过实例来具体讲解。



OBJ


文件记录一个四边形的代码:



v -0.58 0.84 0


v 2.68 1.17 0


v 2.84 -2.03 0


v -1.92 -2.89 0


f 1 2 3 4




让我们来创建一个


OBJ

< p>
文件,不过这一回我们不用


3D


软件,而是用写字 板


来创建。





打开写字板,把上面的


5

< p>
行代码写上去,可以适当加一点注释。





保存文件为文本格式,文件名为



,如图。





注意:


代码最后一定要按一下回车把光标切换到下一行,


就是说加一个换行



(n)

< br>。否则会看到如下错误信息:





// Error: line 1: OBJ file line 5: index out of range. //




// Error: line 1: Error reading file. //



点击放大






Maya


中导入


文件,


看见了吧,


导入了一个四边 形。


这个四边


形的形状是完全由前面的那


5


行代码决定的,下面我们来分析一个这些代码。





v -0.58 0.84 0




画一个四边形需要四个顶点,这是 第一个顶点,



表示顶点


(vertex )




为这个顶点的

X


轴坐标值,



< br>Y


轴坐标值,




Z


轴坐标值。


这是第一个顶点,它的索引号是


1


。索引号是画面时要用到的。





v 2.68 1.17 0




v 2.84 -2.03 0




v -1.92 -2.89 0




这分别是第二、三、四个顶点,它 们的索引号分别是


2



3



4







f 1 2 3 4




现在开始画面,< /p>



表示面


(face)


1



2



3



4


是前 面那四个顶点的索引号。


请注意画这个面连接点的顺序,


是从第 一个点出发,


依次连接第二、


三、


四个 点。


如果连接的顺序不同所生成的面也会截然不同,例如



会产生一个交


迭的面,如图。



面的连接点是按顺时针排列或逆时针排列,将决定面的法线方



(


面的反正


)


< p>


例如:



面的法线向外,



面的法线向里。


面的连接点顺序错误,是导致导入模型产生碎面的一个重要原因。






一个面 不能出现两个以上相同的顶点,这也是检查


OBJ


文件出错的一 个要


点。





例如:



,有 两个相同的顶点,索引号是


3


。一个面出现两个


相同顶点,可能造成程序的内存分配错误。





下面来研究一下


Maya

< p>
导出的


OBJ


文件。






May a


中创建一个多边形立方体,选中这个立方体,选择菜单



Export


Selection...


导 出格式为


OBJ



文件名为

< p>



如果没有此格式,


请在


Plug-in


Manager


中载 入





用写字 板打开



,可


以看到如下代码:





# The units used in this file are centimeters.




g default




v -0.500000 -0.500000 0.500000




v 0.500000 -0.500000 0.500000




v -0.500000 0.500000 0.500000




v 0.500000 0.500000 0.500000




v -0.500000 0.500000 -0.500000




v 0.500000 0.500000 -0.500000




v -0.500000 -0.500000 -0.500000




v 0.500000 -0.500000 -0.500000




vt 0.000000 0.000000




vt 1.000000 0.000000




vt 0.000000 1.000000




vt 1.000000 1.000000




vt 0.000000 2.000000




vt 1.000000 2.000000




vt 0.000000 3.000000




vt 1.000000 3.000000




vt 0.000000 4.000000




vt 1.000000 4.000000




vt 2.000000 0.000000

-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:53,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595368.html

OBJ文件格式内幕详解的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文