游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2235|回复: 2

向诸位高手请教,doom3的模型文件md5的文件格式?

[复制链接]

4

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2004-2-25 08:36:00 | 显示全部楼层 |阅读模式
向诸位高手请教,doom3的模型文件md5的文件格式?
谢谢~,中文E文全部同吃,呵呵~ [em3]

4

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2004-2-25 13:50:00 | 显示全部楼层

Re:向诸位高手请教,doom3的模型文件md5的文件格式?

多谢~~

1

主题

8

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2008-5-4 21:18:00 | 显示全部楼层

Re:向诸位高手请教,doom3的模型文件md5的文件格式?

MD5文件格式分为MESH(.md5mesh)和ANIMIATION(.md5anim),分别储存顶点和动画。

MESH部分

首先先看一下文件大概的内容

MD5Version 10
commandline "mesh models/monsters/imp/animation/cycles/imp.mb -dest models/md5/monsters/imp/imp.md5mesh -game Doom -prefix IMP1_ -keep Lknee Rknee Lelbow Relbow camera Body -keep Rmissile Lmissile -parent Rmissile Rhand -parent Lmissile Lhand -parent Rwing Chest -parent Lwing Chest -parent Hips Body -parent Waist Body -parent camera Head -prefix IMP2_ -prefix IMP_ -align ALL"

numJoints 71
numMeshes 1

joints {
   "origin"   -1 ( 0 0 0 ) ( -0.5 -0.5 -0.5 )      //
   "Body"   0 ( -0.0000002384 0 56.5783920288 ) ( -0.5 -0.5 -0.5 )      // origin
   "Hips"   1 ( 3.3494229317 -0.0225959271 62.0168151855 ) ( -0.5 -0.5 -0.5 )      // Body
   ...
}

mesh {
   // meshes: polySurface1
   shader "models/monsters/imp/imp"

   numverts 891
   vert 0 ( 0.8658549786 0.3910109997 ) 1377 2
   ...

   numtris 1346
   tri 0 2 1 0
   ...

   numweights 1401
   weight 0 47 1 ( 1.5918749571 -0.9465401769 4.3310847282 )
   ...
}



关节(JOINTS):

"origin"   -1 ( 0 0 0 ) ( -0.5 -0.5 -0.5 )

首先是关节的名字,然后是关节的父接点(-1代表没有),接着是关节的位置(X,Y,Z),最后是一个四元数。

当然了四元数不能只有三个元了,但因为是单位四元数,所以我们可以把最后的W计算出来。

计算式:

1.0 = x^2 + y^2 + z^2 + w^2

PS:这里的位置都是绝对位置了,并不是相对于关节的位置。

网格(MESH):

numverts 891
   vert 0 ( 0.8658549786 0.3910109997 ) 1377 2

分别对应 顶点序号(U、V坐标) 权值开始序号 权值数

PS:解释下权值数,就是在皮肤骨骼动画中,每个顶点并不是只被一个骨骼所控制,是被许多骨骼所共同控制的,所以要有不用的权值了。这里,顶点的权值是从权值开始序号开始的N个权值。

numtris 1346
   tri 0 2 1 0

这个就是三角形索引了,一看就明白,三角形序号和三角形所对应的三个顶点

numweights 1401
   weight 0 47 1 ( 1.5918749571 -0.9465401769 4.3310847282 )

这个是权值,依次是:权值序号、关节序号、权值和XYZ位置

对了,还有一点要补充了。顶点的最终位置是这样了

v = w(1).v * w(1).weigth + w(2).v * w(2).weight + ... + w(n).v * w(n).weight

OK,借用他人的东西一下!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-9 12:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表