| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5877 人关注过本帖, 1 人收藏
标题:MilkShape3D (.ms3d) 模型文件格式
只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
结帖率:100%
收藏(1)
 问题点数:0 回复次数:8 
MilkShape3D (.ms3d) 模型文件格式
#define MAX_VERTICES                65534
#define MAX_TRIANGLES                65534
#define MAX_GROUPS                    255
#define MAX_MATERIALS                128
#define MAX_JOINTS                    128
#define MAX_TEXTURE_FILENAME_SIZE    128

#define SELECTED                    1
#define HIDDEN                        2
#define SELECTED2                    4
#define DIRTY                        8
#define ISKEY                        16
#define NEWLYCREATED                32
#define MARKED                        64

#define SPHEREMAP                    0x80
#define HASALPHA                    0x40
#define COMBINEALPHA                0x20

#define TRANSPARENCY_MODE_SIMPLE                0
#define TRANSPARENCY_MODE_DEPTHSORTEDTRIANGLES    1
#define TRANSPARENCY_MODE_ALPHAREF                2

// 文件头
struct ms3d_header_t
{
    char    id[10];                        // 总是 "MS3D000000"
    int     version;                    // 最新版本 4
};

// 单个顶点信息
struct ms3d_vertex_t
{
    unsigned char flags;                // 标记 SELECTED | SELECTED2 | HIDDEN
    float vertex[3];                    // 顶点的3个坐标(X,Y,Z)
    char boneId;                        // 骨骼索引, -1 = 无骨骼
    unsigned char referenceCount;            // 引用计数
    char boneIds[3];                    // 3个骨骼索引
    unsigned char weights[3];                // 3个骨骼权重
    unsigned int extra;                    // 拓展
    float renderColor[3];                // 渲染颜色(Red,Greed,Blue)
};

// 单个三角片面信息
struct ms3d_triangle_t
{
    unsigned short flags;                // 标记 SELECTED | SELECTED2 | HIDDEN
    unsigned short vertexIndices[3];    // 三角片面的3个顶点索引
    float vertexNormals[3][3];            // 三角片面的3个法向量
    float s[3];                            // 三个顶点的纹理坐标S
    float t[3];                            // 三个顶点的纹理坐标T
    float normal[3];                    // 通过计算最终得出的三角片面法向量
    unsigned char smoothingGroup;        // 平滑组索引,1 - 32
    unsigned char groupIndex;            // 组索引
};

// 单个组信息
struct ms3d_group_t
{
    unsigned char flags;                // 标记 SELECTED | HIDDEN
    char name[32];                        // 组名称
    std::vector<unsigned short> triangleIndices;    // 三角形索引列表
    char materialIndex;                    // 材质索引
    std::vector<char> comment;            // 注释
};

// 单个材质信息
struct ms3d_material_t
{
    char name[32];                        // 材质名称
    float ambient[4];                    // 环境光
    float diffuse[4];                    // 漫反射光
    float specular[4];                    // 镜面反射光
    float emissive[4];                    // 放射光
    float shininess;                    // 高光强度(0.0f - 128.0f)
    float transparency;                    // 透明度(0.0f - 1.0f)
    unsigned char mode;                    // 模式(0, 1, 2 未被使用)
    char texture[MAX_TEXTURE_FILENAME_SIZE];        // 纹理图片路径
    char alphamap[MAX_TEXTURE_FILENAME_SIZE];        // 透明通道图片路径
    unsigned char id;                    // 自身索引
    std::vector<char> comment;            // 注释
};

// 关键帧信息
struct ms3d_keyframe_t
{
    float time;                            // 时间(秒)
    float key[3];                        // 键(X,Y,Z角度)
};

// 插值信息
struct ms3d_tangent_t
{
    float tangentIn[3];                    // ?
    float tangentOut[3];                // ?
};

// 关节信息
struct ms3d_joint_t
{
    unsigned char flags;                // 标记 SELECTED | DIRTY
    char name[32];                        // 关节名称
    char parentName[32];                // 父关节名称

    float rot[3];                        // 自身矩阵
    float pos[3];                        // ?

    std::vector<ms3d_keyframe_t> rotationKeys;    // 关键帧列表
    std::vector<ms3d_keyframe_t> positionKeys;    // ?
    std::vector<ms3d_tangent_t> tangents;        // 插值信息列表

    std::vector<char> comment;            // 注释
    float color[3];                        // 颜色(Red,Greed,Blue)

    // 以下成员不会用来渲染
    int parentIndex;                    // 父索引
    float matLocalSkeleton[3][4];        // 自身骨骼矩阵
    float matGlobalSkeleton[3][4];        // 全局骨骼矩阵

    float matLocal[3][4];                // 自身矩阵
    float matGlobal[3][4];                // 全局矩阵
};


MilkShape3D.rar (1.73 KB)


[[it] 本帖最后由 flyue 于 2008-8-30 20:59 编辑 [/it]]
搜索更多相关主题的帖子: 模型 格式 文件 
2008-08-30 20:57
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
支持一下

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-08-30 22:04
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
友情一帖-,-

樱花大战,  有爱.
2008-08-30 22:52
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
自己写的?很强,c++的模板用得很牛

学习需要安静。。海盗要重新来过。。
2008-08-30 22:55
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
不是自己写的,是翻译到国外的
www.
一个很好的开源骨骼动画格式,含源代码

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-08-31 17:27
space3344
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-12-15
收藏
得分:0 
// 单个顶点信息
struct ms3d_vertex_t
{
    unsigned char flags;                // 标记 SELECTED | SELECTED2 | HIDDEN
    float vertex[3];                    // 顶点的3个坐标(X,Y,Z)
    char boneId;                        // 骨骼索引, -1 = 无骨骼
    unsigned char referenceCount;            // 引用计数
    char boneIds[3];                    // 3个骨骼索引
    unsigned char weights[3];                // 3个骨骼权重
    unsigned int extra;                    // 拓展
    float renderColor[3];                // 渲染颜色(Red,Greed,Blue)
};

为什么文件中没有包含
    char boneIds[3];                    // 3个骨骼索引
    unsigned char weights[3];                // 3个骨骼权重
    unsigned int extra;                    // 拓展
    float renderColor[3];                // 渲染颜色(Red,Greed,Blue)
这些信息类???怎样才能读出呢?
2011-01-30 11:26
wj2008wh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-6-29
收藏
得分:0 
新手上路,请指教。这个格式和3Dmax那个更实用,或编程更简单。
2014-06-29 21:08
快速回复:MilkShape3D (.ms3d) 模型文件格式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020185 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved