网站大量收购独家精品文档,联系QQ:2885784924

3ds文件结构.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3ds文件结构.doc

3ds文件介绍 3DS文件格式 1.介绍 3ds文件是基于“块”存储的,这些块描述了诸如场景数据,每个编辑窗口(Viewport)的状态,材质,网格数据(我们最关心的就是这个)等等数据。每个块都包含一个ID和块长度的块头(这里原文写的是下一个块的偏移量,我认为不精确),如果你对该块的信息不感兴趣的话,可以直接跳过该块读取下一个块。跟许多文件格式类似,为了读取的方便,3ds文件中数据的存储方式是Intel式的,也就是说是高位放在后面,低位放在前面。比如:网格块的块头ID,0x4000在文件里是以00 40存放的,对于windows程序员来说,无需做任何转换。 每个块都以这样的块头开始: 开始 结束 长度 作用 0 1 2 块的ID 2 5 4 该块的长度 6…………………… 块数据 3ds文件是严格按照块来划分、分层的,通常一个块会包含下级子块作为自己的数据,而子块又有孙块,孙块亦有子块,子子孙孙,无穷尽也……如果你从一个一级块开始,按照跳过每块长度找寻下一块的做法,无疑是无法访问到二级子块的;相反的,从二级子块开始,却有可能回到一个一级块。 按3ds文件的划分方式,有一个块是其它所有的块共同的祖宗,也就是其他所有块的根块,我们称之为主块(就是下图的MAIN3DS块)。主块说白了就是整个文件。所有的3ds文件都是以他开始的,他总是位于整个文件的最开始(你可以把它的块ID当作识别3ds文件的标志),延伸到整个文件结束(多么庞大的东西啊)。他的作用………………也就是存在而已。你只要知道有这么个块存在,并了解他的逻辑结构就可以了。 MAIN3DS (0x4D4D) |(注意,此处并不是紧接着EDIT块的,还有一些描述文件版本信息的块) +--EDIT3DS (0x3D3D) | | | +--EDIT_MATERIAL (0xAFFF) | | | | | +--MAT_NAME01 (0xA000) (See mli Doc) | | | +--EDIT_CONFIG1 (0x0100) | +--EDIT_CONFIG2 (0x3E3D) | +--EDIT_VIEW_P1 (0x7012) | | | | | +--TOP (0x0001) | | +--BOTTOM (0x0002) | | +--LEFT (0x0003) | | +--RIGHT (0x0004) | | +--FRONT (0x0005) | | +--BACK (0x0006) | | +--USER (0x0007) | | +--CAMERA (0xFFFF) | | +--LIGHT (0x0009) | | +--DISABLED (0x0010) | | +--BOGUS (0x0011) | | | +--EDIT_VIEW_P2 (0x7011) | | | | | +--TOP (0x0001) | | +--BOTTOM (0x0002) | | +--LE

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档