什么是 3DS 文件?
扩展名为 .3ds 的文件表示 Autodesk 3D Studio 使用的 3D Sudio (DOS) 网格文件格式。自 1990 年代以来,Autodesk 3D Studio 一直在 3D 文件格式市场,现在已经发展到 3D Studio MAX,用于处理 3D 建模、动画和渲染。 3DS 文件包含场景和图像的 3D 表示数据,是用于 3D 数据导入和导出的流行文件格式之一。它考虑相机位置、网格数据、照明信息、视口配置、平滑组数据、位图参考和属性等信息,以创建用于渲染场景的顶点和多边形。
3DS 文件格式 - 更多信息
在其基础上,3DS 是一种二进制文件格式,并遵循用于存储和检索数据的预定义结构。与基于文本的文件格式相比,二进制文件格式使 3DS 文件格式更小。 3DS 文件中的数据以块的形式存储。
块
3DS 文件中的每个块都是一个数据块,其中包含一个 ID、用于定位下一个块的块的长度以及数据本身。块 ID 允许 3DS 文件格式阅读器跳过他们无法识别的块。它还有助于格式的可扩展性。每个块存储与一起渲染场景的形状、照明和查看信息相关的信息。块在 3DS 文件中以分层结构排列,在表示上类似于 XML 文档对象树。
块 ID: 块的前两个字节代表一个块标识符,让文件阅读器决定是在读取时考虑还是跳过它。
块的长度: 块 ID 后跟一个 4 字节的整数(小端),代表块的长度。该长度还包括数据的长度、其子块的长度和 6 字节的头部。
有效负载: 块的长度后面是块的实际数据字节数,然后是同一层次结构中的子块,可以扩展到几个层次。
### 结构 ###
一个简单的chunk的层次结构如下图所示:
一块
开始 | 结束 | 大小 | 名称 |
---|---|---|---|
0 | 1 | 2 | 块 ID |
2 | 5 | 4 | 下一个块 |
块具有由其 ID 标识的层次结构。 3ds 文件的主块 ID 为 4D4Dh。这始终是文件的第一个块。在主要块中是主要块。
主要块
id | 描述 |
---|---|
3D3D | 对象网格数据的开始。 |
B000 | 关键帧数据的开始。 |
ID 块后面的 Next Chunk 指针指向下一个 Main chunk。 紧接在 Main 块之后的是另一个块。这可以是其主块范围内允许的任何其他类型的块。 对于网格描述 (3D3D),它们可以是任意倍数。
3D3D 的子块 - 网格块
id | 描述 |
---|---|
1100 | 未知 |
1200 | 背景颜色。 |
1201 | 未知 |
1300 | 未知 |
1400 | 未知 |
1420 | 未知 |
1450 | 未知 |
1500 | 未知 |
2100 | 环境色块 |
2200 | 雾? |
2201 | 雾? |
2210 | 雾? |
2300 | 未知 |
3000 | 未知 |
4000 | 物块 |
7001 | 未知 |
AFFF | 未知 |
4000 个子块 - 对象描述块 Subchunk 4000 的第一项是对象名称的 ASCIIZ 字符串。 请记住,对象可以是网格、灯光或相机。
id | 描述 |
---|---|
4010 | 未知 |
4012 | 阴影? |
4100 | 三角形多边形对象 |
4600 | 光 |
4700 | 相机 |