zoukankan      html  css  js  c++  java
  • .X文件格式

    X文件格式
    AVS图像格式
    以X为文件扩展名的文件是微软定义的文件格式.用来存放3D模型.   
    X文件有文本和二进制两种存储形式.   
      
    X文件内部结构如下:   
      
    ·Frame   
    定义框架容器,用来装Mesh对象。可以包含多个Mesh对象,也可以包含子框架。在骨骼动画中可以装载一块骨骼,和一系列骨骼(如手臂),可以没有Mesh对象(表示骨骼时)。   
    包括两部分:   
    1、Mesh对象。   
    2、转换矩阵,本地转换矩阵,初始化最初动作状态。   
      
    FrameTransformMatrix   
    定义框架的本地转换矩阵,是一个4X4矩阵(Matrix4x4类型),共16个浮点数据   
    (注意这里的4X4矩阵是行主的)   
      
    AnimationKey   
    动画键,定义具体的动作数据,包括一系列旋转、移动、放缩、矩阵变换。   
    包括三部分:   
    1、动作键类型,包括旋转、移动、放缩、矩阵   
    2、指示有几个键数值   
    3、具体的键值列表(FloatKeys类型,包含时间值)   
      
    AnimationSet   
    动作组合,包括一个或多个动作(Animation)。每一个动作组合表示一个完整的动作   
      
    FloatKeys   
    定义浮点数组,它用来定义动作键数值。   
    包括两部分:   
    1、浮点值个数   
    2、浮点值列表   
      
    Coords2d   
    定义纹理坐标向量,包括两个Float值,分别是 u、v 。   
      
    ColorRGBA   
    定义RGBA对象。包括四个Float值,分别是R、G、B、alpha   
      
    ColorRGB   
    定义RGB对象。包括三个Float值,分别是R、G、B   
      
    Boolean2d   
    二维Boolean类型,用来定义faceWrapvalues键值   
      
    Boolean   
    定义Boolean类型,0或1。   
      
    IndexedColor   
    索引颜色定义,包含两部分:1、索引号 2、RGB值   
      
    ·Material   
    定义材质信息,可以被应用到一个完整的Mesh对象,也可以应用到其中的一个面。   
    包含五部分:   
    1、FaceColor,环境光,包括四个浮点值,其中有Alpha值   
    2、Power,镜面反射的光泽度,控制亮点大小,一个浮点值   
    3、specularcolor,镜面反射   
    4、发射光   
      
    ·Matrix4x4   
    定义四乘四矩阵,共16个值。   
      
    Mesh   
    定义一个Mesh对象。   
    共有9个部分组成:   
    1、包含的顶点数   
    2、顶点列表,一个顶点包含三个浮点值   
    3、面数   
    4、面的顶点索引列表,每个面包含三个顶点   
    5、MeshFaceWraps 结构,暂时无用   
    6、MeshTextureCoords 纹理坐标,可选   
    7、MeshNormals 法向,可选   
    8、MeshVertexColors 顶点颜色,默认为白色   
    9、MeshMaterialList 材质,不提供的话默认为白色   
      
    MeshFace   
    面索引,在Mesh结构中用于定义面索引   
    包括两部分,1、面数 2、顶点索引构成的面数组   
      
    ·MeshFaceWraps   
    暂时不用   
    ·MeshTextureCoords   
    定义纹理坐标   
    1、纹理坐标的个数   
    2、纹理坐标,每个纹理坐标有两个浮点值   
      
    ·MeshMaterialList   
    定义材质应用   
    1、定义多少个材质被使用   
    2、材质影响面的个数   
    3、面索引   
      
    ·MeshNormals   
    定义Mesh的法向量,包括四部分   
    1、nNormals,法向量的个数=顶点数   
    2、Normals,顶点法向量列表   
    3、nFaceNormals,面的个数=面数   
    4、FaceNormals,面对应的法向量   
      
    ·MeshVertexColors   
    指定顶点的颜色代替原来的材质   
    1、顶点数目   
    2、颜色索引   
      
    ·Patch   
    定义一个Bezier曲线控制面片   
    · PatchMesh   
    定义一个Bezier Patch定义的Mesh   
      
    ·Quaternion   
    定义四元数   
      
    ·SkinWeights   
    定义骨骼影响权重。   
    包括以下几个部分:   
    1、骨骼的名字   
    2、有多少个权重值   
    3、顶点的索引列表   
    4、相对应的影响顶点索引列表   
    5、本地转换矩阵,转换到骨骼空间   
      
    ·TextureFilename   
    纹理的名称,字符串类型,加双引号如:“C:\\demo.dds”   
      
    ·TimedFloatKeys   
    时间值,用于Animaterkey中定义时间间隔   
      
    ·Vector   
    三维向量,三个浮点值   
      
    ·VertexDuplicationIndices   
    保留副本,用于精简Mesh的操作   
    1、顶点数   
    2、原始顶点数,实际顶点数   
      
    ·XSkinMeshHeader   
    描述被导出的SkinMesh相关信息   
    1、影响一个顶点的最多变换数目   
    2、影响每个面三个顶点的最大变换数目   
    3、影响一个顶点的骨骼数 

  • 相关阅读:
    最近面试遇到的技术问题
    Oracle 查看表空间使用情况
    流水账日记20150626
    Mantis及TestLink运维问题处理
    Mantis维护之显示姓名
    汤姆猫(。。。。)
    mac配置svn服务器
    如何使用TestFlight进行Beta测试
    artice与section的区别
    article元素设计网络新闻展示
  • 原文地址:https://www.cnblogs.com/littlethank/p/1773530.html
Copyright © 2011-2022 走看看