[url]http://hi.baidu.com/cabtw/blog/item/a13b57d89721ddfd76c63832.html[/url]
3ds是AutoDesk公司的3d-studio的文件格式,官方未公布其文件格式。Away3d支持解析该文件(away3d.loaders.Max3DS),但仅支持部分功能解析,大致的格式翻阅了一些资料整理如下:
chunk:3ds构成的基本单位是chunk,读取数据的的字节顺序为littleEndian(最低有效字节位于最前)。
id:块的类型readUnsignedShort();
length:块数据的大小readUnsignedInt();
content:具体的数据
0x4D4D:root chunk,每一个3ds文件都起自它,它的长度也就是文件的长度。它包含了两个chunk:edit chunk、frame chunk。
parent chunk:无
child chunk id:0x3D3D(edit chunk)、0xB000(frame chunk)
length:头长度+子chunk长度
content:无
edit chunk常用块
0xafff:MATERIAL
parent chunk:0x4D4D
child chunk id:0xa000(材质名称)、0xa010(Ambient,阴影色,环境反射光 )、 0xa020(Diffuse 漫反射光) 、0xa030(Specular 高光)、0xa200(纹理帖图) 、0xa300(帖图名称)
length:头长度+子chunk长度
content:
0x4000:MESH
parent chunk:0x3D3D
child chunk id:0x4100 (网格信息,包含网格名称、顶点、面、纹理坐标等)
length:头长度+子chunk长度+内容长度
content:
--------------------------------------------
0x4120:面信息。
parentchunk:0x4100
child chunk:0x4130
length:头长度+子chunk长度+内容长度
内容:
面个数(一个字)
顶点索引(三个字一个索引1、2、3,个数*3*字)
0x4130:与网格相关的材质信息。
parent chunk:0x4120
childchunk:无
length:头长度+内容长度
content:
名称(以空字节结尾的字符串)
与材质相连的面的个数(一个字)
与材质相连的面的索引(个数*字)
0x4140:纹理坐标。
parentchunk:0x4100
child chunk:无
length:头长度+内容长度
content:
坐标个数(一个字)
坐标(两个浮点数一个坐标u、v,个数*2*浮点数)
frame chunk常用的块
0xB002:网格的关键帧信息
parent chunk:0xB000
child chunk id:0xB010(关键帧的层次信息,包括名称和上一级关键帧的索引,名称与它指向的网格名称一致)、0xB013(支点坐标)length:头长度+子chunk长度
content:无
3ds是AutoDesk公司的3d-studio的文件格式,官方未公布其文件格式。Away3d支持解析该文件(away3d.loaders.Max3DS),但仅支持部分功能解析,大致的格式翻阅了一些资料整理如下:
chunk:3ds构成的基本单位是chunk,读取数据的的字节顺序为littleEndian(最低有效字节位于最前)。
id:块的类型readUnsignedShort();
length:块数据的大小readUnsignedInt();
content:具体的数据
0x4D4D:root chunk,每一个3ds文件都起自它,它的长度也就是文件的长度。它包含了两个chunk:edit chunk、frame chunk。
parent chunk:无
child chunk id:0x3D3D(edit chunk)、0xB000(frame chunk)
length:头长度+子chunk长度
content:无
edit chunk常用块
0xafff:MATERIAL
parent chunk:0x4D4D
child chunk id:0xa000(材质名称)、0xa010(Ambient,阴影色,环境反射光 )、 0xa020(Diffuse 漫反射光) 、0xa030(Specular 高光)、0xa200(纹理帖图) 、0xa300(帖图名称)
length:头长度+子chunk长度
content:
0x4000:MESH
parent chunk:0x3D3D
child chunk id:0x4100 (网格信息,包含网格名称、顶点、面、纹理坐标等)
length:头长度+子chunk长度+内容长度
content:
--------------------------------------------
0x4120:面信息。
parentchunk:0x4100
child chunk:0x4130
length:头长度+子chunk长度+内容长度
内容:
面个数(一个字)
顶点索引(三个字一个索引1、2、3,个数*3*字)
0x4130:与网格相关的材质信息。
parent chunk:0x4120
childchunk:无
length:头长度+内容长度
content:
名称(以空字节结尾的字符串)
与材质相连的面的个数(一个字)
与材质相连的面的索引(个数*字)
0x4140:纹理坐标。
parentchunk:0x4100
child chunk:无
length:头长度+内容长度
content:
坐标个数(一个字)
坐标(两个浮点数一个坐标u、v,个数*2*浮点数)
frame chunk常用的块
0xB002:网格的关键帧信息
parent chunk:0xB000
child chunk id:0xB010(关键帧的层次信息,包括名称和上一级关键帧的索引,名称与它指向的网格名称一致)、0xB013(支点坐标)length:头长度+子chunk长度
content:无