前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >M2文件头

M2文件头

作者头像
逍遥剑客
发布2018-05-23 15:10:03
6040
发布2018-05-23 15:10:03
举报

M2文件中的信息大体是这样的

全局纹理列表 全局顶点列表

  • Position
  • Blend weights
  • Blend indices
  • Normal
  • Texture coordinates

LOD (每个模型共4级?)

  • Vertex indices (这级LOD用到的顶点 为全局顶点列表的索引)
  • Face indices (每个三角形有三个, 同样是全局顶点列表中的索引)
  • Vertex properties (每个顶点索引有一个, 未知)
  • Submeshes (一般每种材质一个)
  • Texture units (引用Subemesh, 全局纹理列表的索引, 绑定纹理单元的数目)

全局包围体 (用来碰撞检测?) 动画(Animations, global sequences) 骨骼(Skeleton) 额外的渲染信息: 颜色, 透明度, 纹理动画, 模型混合等. 特效: 条带, 粒子 灯光 摄像机

代码语言:javascript
复制
struct ModelHeader {  
 char id[4];                 //"MD20"  
    uint8 version[4];  
    uint32 nameLength;          //model name length (including /0) 
    uint32 nameOfs;             //model name offset  
    uint32 type;                //Model type? always 0, 1 or 3 (mostly 0)  
    uint32 nGlobalSequences;    //number of global sequences  
    uint32 ofsGlobalSequences;  //offset to global sequences  
    uint32 nAnimations;         //number of animation sequences  
    uint32 ofsAnimations;       //offset to animation sequences  
    uint32 nC;  
    uint32 ofsC;  
    uint32 nD;                  //always 201 or 203 depending on WoW client version  
    uint32 ofsD;  
    uint32 nBones;              //number of bones  
    uint32 ofsBones;            //offset to bones  
    uint32 nF;                  //bone lookup table  
    uint32 ofsF;  
    uint32 nVertices;           //number of vertices  
    uint32 ofsVertices;         //offset to vertices  
    uint32 nViews;              //number of views (LOD versions?) 4 for every model  
    uint32 ofsViews;            //offset to views  
    uint32 nColors;             //number of color definitions  
    uint32 ofsColors;           //offset to color definitions  
    uint32 nTextures;           //number of textures  
    uint32 ofsTextures;         //offset to texture definitions  
    uint32 nTransparency;       //number of transparency definitions  
    uint32 ofsTransparency;     //offset to transparency definitions  
    uint32 nI;                  // always unused ? 
    uint32 ofsI;  
    uint32 nTexAnims;           //number of texture animations  
    uint32 ofsTexAnims;         //offset to texture animations  
    uint32 nTexReplace;  
    uint32 ofsTexReplace;  
    uint32 nTexFlags;           //number of blending mode definitions  
    uint32 ofsTexFlags;         //offset to blending mode definitions  
    uint32 nY;                  //bone lookup table  
    uint32 ofsY;  
    uint32 nTexLookup;          //number of texture lookup table entries  
    uint32 ofsTexLookup;        //offset to texture lookup table  
    uint32 nTexUnitLookup;      //texture unit definitions?  
    uint32 ofsTexUnitLookup;  
    uint32 nTransparencyLookup; //number of transparency lookup table entries  
    uint32 ofsTransparencyLookup;//offset to transparency lookup table  
    uint32 nTexAnimLookup;      //number of texture animation lookup table entries  
    uint32 ofsTexAnimLookup;  
 float floats[14];  
    uint32 nBoundingTriangles;  
    uint32 ofsBoundingTriangles;  
    uint32 nBoundingVertices;  
    uint32 ofsBoundingVertices;  
    uint32 nBoundingNormals;  
    uint32 ofsBoundingNormals;  
    uint32 nAttachments;  
    uint32 ofsAttachments;  
    uint32 nAttachLookup;  
    uint32 ofsAttachLookup;  
    uint32 nQ;  
    uint32 ofsQ;  
    uint32 nLights;             //number of lights   
    uint32 ofsLights;           //offset to lights  
    uint32 nCameras;            //number of cameras  
    uint32 ofsCameras;          //offset to cameras  
    uint32 nT;  
    uint32 ofsT;  
    uint32 nRibbonEmitters;     //number of ribbon emitters   
    uint32 ofsRibbonEmitters;   //offset to ribbon emitters  
    uint32 nParticleEmitters;   //number of particle emitters  
    uint32 ofsParticleEmitters; //offset to particle emitters  
}; 

这把刀看起来挺漂亮, 就拿它开刀了:

16进制文件分析:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009年02月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档