游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1986|回复: 3

自己读取x模型文件遇到问题,有谁做过帮看看!

[复制链接]

5

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2006-9-22 12:35:00 | 显示全部楼层 |阅读模式
从3dsmax里面导出x模型文件,带动画的,用dx里面自带的例子可以正确读出,显示也正确。
现在我需要自己来读取x模型文件,为啥?你见过魔兽的文件是x的马?
其实x文件也不复杂,就是在显示的时候不正确。
先看x文件

就以tiny.x为例,把x文件内容省掉了
从x文件我们能够得到点面,以及动作的矩阵。单独显示读出来的点就能看到模型了,是个标准的小孩。现在的问题就是怎样把动作作用在模型上了
比如模型上第一个点
-34.720058;-12.484819;48.088928;
对应在Bip01_R_UpperArm骨头上,我们先不考虑权重
     156;                          // 皮肤上156个点
     0,
     0.605239,                   // 点对应的权重
     -0.941743,-0.646748,0.574719,0.000000,-0.283133,-0.461979,-0.983825,0.000000,0.923060,-1.114919,0.257891,0.000000,-65.499557,30.497688,12.852692,1.000000;
后面是矩阵,我们知道骨骼动画说白了就是旋转点,我们也知道旋转点必须在单位坐标系里面,所以第一个点必须先还原为单位坐标,但是从骨头的矩阵的41,42,43的数据好像不能拿来减。我试过了,拿来直接是不对的
从后面的关键帧数据好像矩阵的数据是单元矩阵,可以用下面的方法直接计算的,令第一个点为v,关键帧矩阵为mx.则:
xv[0] = v[0] * mx[0] + v[1] * mx[1] + v[2] * mx[2] + mx[12];
xv[1] = v[0] * mx[4] + v[1] * mx[5] + v[2] * mx[6] + mx[13];
xv[2] = v[0] * mx[8] + v[1] * mx[9] + v[2] * mx[10]+ mx[14];

不知道,有谁做个这个东西,到底怎么回事?

22

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-9-22 17:08:00 | 显示全部楼层

Re:自己读取x模型文件遇到问题,有谁做过帮看看!


关注
记得Gamres.com有一篇关于X文件使用的文章,你看看,或许有帮助

1

主题

69

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-9-22 23:07:00 | 显示全部楼层

Re:自己读取x模型文件遇到问题,有谁做过帮看看!

读取X文件有什么难的? 我想楼主是不是在说自己生成X文件?

39

主题

138

帖子

286

积分

中级会员

Rank: 3Rank: 3

积分
286
QQ
发表于 2006-10-20 16:00:00 | 显示全部楼层

Re: 自己读取x模型文件遇到问题,有谁做过帮看看!

?.x文件是很?的
不信?一下我的文件
程式??好通知我一下.

sf_200610201604.rar

151.03 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 15:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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