3DS 文件结构(.3ds)
文档版本:0.93 – 1997.1
作者:Martin van Velsen(重写)
Robin Fercoq(重写)
Jim Pitts(原版)
Albert Szilvasy(原代码)
翻译:樱
From:GameRes http://www.gameres.com
还有许多“块”我并没有写入本文档中,这是因为我并不知道他们有什么用,如果你知
道的话请来信告诉我。当我获得更多关于 3ds 文件结构的信息的时候,我将重写这篇文档。
这篇文档描述了由 AutoDesk 公司的 3ds max 产生的 3ds 文件的结构,因此你将无法从
AutoDesk 公司以及其他任何与 AutoDesk 公司有关系的公司获得有关二进制的.3ds 和.mli 文
件的性质和内容的任何支持。
警告:本文档描述了版本号为 3.0 或更高版本的.3ds 文件,你可以获得.3ds 的版本信息,
这些信息在二进制的.3ds 文件中第 29 字节处(译者:似乎不在,版本号在块 ID 为:
0x0002 的块里)。
现在就要开始我们的内容了,我将按照如下的方式组织内容:
1.介绍。
2.所有的“块”
3.3D 编辑块
4.关键帧块
5.代码
1. 介绍
3ds 文件结构是由“块”组成的。它们描述了接在它们后面的数据的信息,即这些数据是
如何组成的。“块”是由两部分组成的:1.ID;2.下一个数据块的位置。也就是说,如果你不
明白这个块的用处,你可以迅速地跳过它。因为下一个数据区的相对位置(字节数)已经
得到了。二进制的 3ds 文件是用一种特殊的方法写成的:也就是低字节在前,高字节在后
(译者:二进制文件都是这样的)。举例来说,4A 5C(十六进制,2 个字节)实际上是数
字:5C 4A,4A 是低字节,5C 是高字节。对于 4 字节整数:4A 5C 3B 8F 实际上是 8F 3B
5C 4A,3B 8F 是高字节,4A 5C 是低字节。那么现在解释一下“块”,“块”被定义成如下的样
子:
unsigned short ID;//2 个字节,无符号的,块的 ID
unsigned long Length;//4 个字节,无符号的,描述了下一个数据区对于当前数据区的
位置,实际上就是本数据区的大小。
每个块是一个层次结构,由 ID 表示。3ds 文件有一个主块,ID 是 0x4D4D。这个块永
远是 3ds 文件的开始(译者:可以用它来鉴定本文件是否为一个 3ds 文件)。在开始块里
- 1
- 2
- 3
- 4
前往页