游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5272|回复: 7

关于模型的左右手坐标系转换的问题

[复制链接]

8

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2003-11-1 08:39:00 | 显示全部楼层 |阅读模式
在max里面用的右手坐标系,我在游戏里用左手,在用微软提供的插件导出模型时,就会发生模型的骨架左右反的问题,不知各位大哥以前是否遇到过此类问题,请问有没有什么解决方法?再此谢过!

42

主题

140

帖子

203

积分

中级会员

Rank: 3Rank: 3

积分
203
发表于 2003-11-1 08:56:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题

用Panda DX Exporter
http://www.pandasoft.demon.co.uk/directxmax4.htm

8

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2003-11-1 09:00:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题

多谢多谢,正在试

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2003-11-1 10:18:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题


是不是把Y ,Z坐标互换一下呢?
有启发。

8

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2003-11-1 10:54:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题

不只这么简单的,除了顶点,应该还有一些转换矩阵

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2003-11-1 17:55:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题

请问应该如何设置呢?

2

主题

16

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2003-11-3 10:32:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题

在Max中,如果要导出顶点法线数据,你通常必须翻转某个坐标值,比如你可以翻转y坐标:
一个max坐标(x,y,z)---->d3d坐标(x,-y,z);

法线也是如此。

再看看矩阵:
一个max矩阵
|_11,_12,_13|
|_21,_22,_23|
|_31,_32,_33|
|_41,_42,_43|
---->d3d矩阵
|_11,-_12,_13,0|
|_21,_22,_23,0|   //22前面不要加负号
|_31,-_32,_33,0|
|_41,-_42,_43,1|
如果你要翻转z坐标,就在第3列前加负号,但_33除外

8

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
 楼主| 发表于 2003-11-3 14:21:00 | 显示全部楼层

Re:关于模型的左右手坐标系转换的问题

我尝试用ms提供的xskinexp插件导出,我在他的AddTransform函数里面:添加以下的代码matNodeTM = pNode->GetNodeTM(psc->m_iTime);
        matNodeTM.SetNotIdent();
        fMatrix = matNodeTM.GetAddr();
        fTemp        = fMatrix[2][2];
       
        fMatrix[2][2]        = fMatrix[1][1];
       
        fMatrix[1][1]        = fTemp;
        fTemp        = fMatrix[1][2];
        fMatrix[1][2]        = fMatrix[2][1];
        fMatrix[2][1]        = fTemp;
        fTemp        = fMatrix[1][0];
        fMatrix[1][0]        = fMatrix[2][0];
        fMatrix[2][0]        = fTemp;
       
        fTemp        = fMatrix[0][1];
        fMatrix[0][1]        = fMatrix[0][2];
        fMatrix[0][2]        = fTemp;
       
        pNode->SetNodeTM(psc->m_iTime,matNodeTM);
然后接着就输出该节点的矩阵。最后用他输出的x文件,转换矩阵确实变了,但在meshview里面看到的结果还是脚朝上,而且动作的左右方向也反,哪位大侠研究过这段程序,告知小弟,不胜感激!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-23 23:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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