惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
Help Net Security
Help Net Security
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
L
LINUX DO - 热门话题
Security Latest
Security Latest
A
Arctic Wolf
G
GRAHAM CLULEY
月光博客
月光博客
S
Securelist
D
Docker
J
Java Code Geeks
T
Troy Hunt's Blog
T
Tenable Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LINUX DO - 最新话题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
aimingoo的专栏
aimingoo的专栏
博客园 - 【当耐特】
H
Heimdal Security Blog
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Forbes - Security
Forbes - Security
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
B
Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
S
Secure Thoughts
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Check Point Blog
云风的 BLOG
云风的 BLOG
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Blog of Author Tim Ferriss
L
Lohrmann on Cybersecurity
F
Full Disclosure
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed

博客园 - David Fan

JigLib类简介 3DS 文件格式 AGAL2 how to use UVAnimator to animate my mesh uv? 顶点着色器&像素着色器 AGAL md5mesh&md5anim 矩阵、欧拉角、轴-角对、四元数随笔 Box2D&Away3D结合的例子 光照模型 仿照实现的away3d4示例应用 利用away3d,jiglibflash在android实现的投骰子 虚拟手柄控制的小车 air3.4 Android IPones4s 下运行正常 实现了一个简单的AS3 MVC框架,希望对大家有所帮助! 负责的一个项目上线了,还有Flex捐给apache是好事! 转-flex自定义组件 ExternalInterface在Flex Project中C#,C++通信使用上的不同 - David Fan vs2008beta2 javascript 智能感知,语法着色不工作。付解决办法。 我正在读和已经读过的书(随时更新心得,欢迎交流)
OBJ文件格式
David Fan · 2012-11-14 · via 博客园 - David Fan

OBJ文件是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导。OBJ文件是一种文本文件格式,这就意味着你可以直接用写字板打开进行查看修改。目前几乎所有知名的3D软件都支持OBJ文件的读写,不过很多软件需要通过插件才能 做到这一点。另外,作为一种优秀的文件格式,很多游戏引擎也都支持OBJ文件。

OBJ3.0格式支持多边形(Polygon),直线(Lines),表面(Surfaces),和自由形态曲线(Free-form Curves)。直线和多角形通过它们的点来描述,曲线和表面则根据于它们的控制点和依附于曲线类型的额外信息来定义。这些信息支持规则和不规则的曲线,包括那些基于贝塞尔 (Bezier)曲线,B样条(B-spline),基数(Cardinal/Catmull-Rom样条),和泰勒方程(Taylor equations)的曲线。 

OBJ文件特点 
  -1- OBJ是一种3D模型文件,因此不包含动画、材质特性、贴图路径、动力学、粒子等信息。 
  -2- OBJ文件主要支持多边形(Polygons)模型。 
虽然OBJ文件也支持曲线(Curves)、表面(Surfaces)、点组材质(Point Group Materials),但Maya导出的OBJ文件并不包括这些信息。 
  -3- OBJ文件支持三个点以上的面,这一点很有用。 
很多其它的模型文件格式只支持三个点的面,所以我们导入Maya的模型经常被三角化了,这对于我们对模型的再加工甚为不利。     
       -4- OBJ文件支持法线和贴图坐标。 

OBJ文件基本结构
OBJ文件不需要任何种文件头(File Header),尽管经常使用几行文件信息的注释作为文件的开头。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) 

OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是".mtl"的独立文件中。关键字"mtllib"即材质库的意思。材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB(红绿蓝)的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。"usemtl"指定了材质之后,以后的面都是使用这一材质,直到遇到下一个"usemtl"来指定新的材质。