前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术日志挑战——第3天:0726

技术日志挑战——第3天:0726

原创
作者头像
Arya
发布2024-07-26 17:24:17
270
发布2024-07-26 17:24:17

第2天

技术总结:

技术项目工作,包括项目进展、遇到的问题及解决方案等。

今天主要梳理了继续往下计算的思路,感觉不是很清晰,需要再考虑一下怎么往下写。

还有就是修复一个之前因为精度设定而导致的bug,目前已经成功处理,现在看起来正常了许多。

明天周六打算来单位工作一下,争取把边界的相交问题搞定,主要是处理边界对齐的问题。

学习笔记:

关于Obj格式

OBJ 格式是一种开放的几何定义文件格式,由 Wavefront Technologies 开发。它是一种纯文本格式,用于存储三维模型的几何数据,如顶点、面、法线、纹理坐标等。OBJ 文件通常与材质文件(如 MTL)一起使用,以提供更丰富的模型信息。以下是 OBJ 格式的详细介绍:

基本结构

OBJ 文件的基本结构包括以下几个主要部分:

  1. 顶点数据:定义模型的顶点坐标。
  2. 纹理坐标:定义顶点的纹理映射坐标。
  3. 法线:定义顶点的法线方向。
  4. :定义模型的面,即由顶点、纹理坐标和法线组成的三角形或多边形。
  5. 材质引用:引用外部材质文件(MTL)中定义的材质。

关键字

OBJ 文件使用特定的关键字来标识不同的数据类型。以下是一些常见的关键字:

  • v:顶点坐标,格式为 v x y z
  • vt:纹理坐标,格式为 vt u v [w]
  • vn:法线,格式为 vn x y z
  • f:面,格式为 f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3
  • usemtl:使用材质,格式为 usemtl material_name
  • mtllib:材质库,格式为 mtllib filename.mtl

示例

以下是一个简单的 OBJ 文件示例:

代码语言:java
复制
plaintext
# 这是一个简单的 OBJ 文件示例

# 顶点坐标
v 1.0 2.0 3.0
v 4.0 5.0 6.0
v 7.0 8.0 9.0

# 纹理坐标
vt 0.0 0.0
vt 1.0 0.0
vt 0.0 1.0

# 法线
vn 0.0 0.0 1.0
vn 0.0 1.0 0.0
vn 1.0 0.0 0.0

# 面
f 1/1/1 2/2/2 3/3/3

# 使用材质
usemtl MaterialName

# 材质库
mtllib example.mtl

在这个示例中:

  • v 关键字定义了三个顶点坐标。
  • vt 关键字定义了三个纹理坐标。
  • vn 关键字定义了三个法线。
  • f 关键字定义了一个面,由三个顶点、纹理坐标和法线组成。
  • usemtl 关键字引用了名为 "MaterialName" 的材质。
  • mtllib 关键字指定了材质库文件 "example.mtl"。

材质文件 (MTL)

OBJ 文件通常与 MTL 文件一起使用,MTL 文件定义了模型的材质属性,如颜色、纹理、反射率等。以下是一个简单的 MTL 文件示例:

代码语言:java
复制
plaintext
# 这是一个简单的 MTL 文件示例

newmtl MaterialName
Ka 1.0 0.0 0.0  # 环境光颜色
Kd 1.0 0.0 0.0  # 漫反射颜色
Ks 0.0 0.0 0.0  # 镜面反射颜色
Ns 10.0         # 镜面反射指数
map_Kd texture.png  # 漫反射纹理贴图

在这个示例中:

  • newmtl 关键字定义了一个新的材质 "MaterialName"。
  • Ka 关键字定义了环境光颜色。
  • Kd 关键字定义了漫反射颜色。
  • Ks 关键字定义了镜面反射颜色。
  • Ns 关键字定义了镜面反射指数。
  • map_Kd 关键字指定了漫反射纹理贴图 "texture.png"。

应用

OBJ 格式广泛用于三维建模软件之间的数据交换,以及游戏和动画行业。它是一种通用的、易于解析的格式,支持丰富的几何和材质信息,因此被许多三维软件和工具支持。

总结

OBJ 格式是一种开放的、纯文本的三维模型文件格式,用于存储模型的几何数据和材质信息。它通过关键字和数据行来定义顶点、纹理坐标、法线和面,并支持引用外部材质文件。OBJ 格式因其通用性和易用性而被广泛应用于三维建模和动画领域。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第2天
    • 技术总结:
      • 学习笔记:
        • 关于Obj格式
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档