游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7046|回复: 15

怎么把DirectX的左手坐标系换成有手坐标系

[复制链接]

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2007-3-20 13:03:00 | 显示全部楼层 |阅读模式
怎么把DirectX的左手坐标系换成有手坐标系 [em24]

9

主题

104

帖子

104

积分

注册会员

Rank: 2

积分
104
QQ
发表于 2007-3-21 09:34:00 | 显示全部楼层

Re:怎么把DirectX的左手坐标系换成有手坐标系

用OPENGL

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2007-3-21 10:42:00 | 显示全部楼层

Re:怎么把DirectX的左手坐标系换成有手坐标系

D3DXMatrixPerspectiveFovLH是左手坐标系
D3DXMatrixPerspectiveFovRH是右手坐标系

3

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2007-3-21 12:42:00 | 显示全部楼层

Re:怎么把DirectX的左手坐标系换成有手坐标系

又有这么多人误人子弟
将左手系变成右手系要分两步,至于不懂为什么要这样,建议你在去学习卡笛尔坐标系
step 1:rightHand.x=leftHand.x;
       rightHand.y=leftHand.y*-1.0f;
       rightHand.z=leftHand.z;
step 2:旋转WorldMatrix (绕X轴) D3DX_PI/-2.0f
左手和右手完全能够公存

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2007-3-21 12:50:00 | 显示全部楼层

Re:NudePaladin

不明白,为什么不是z变为-z

3

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2007-3-21 12:56:00 | 显示全部楼层

Re:怎么把DirectX的左手坐标系换成有手坐标系

任何一轴坐标取负后再转,全是可以的,只不过用不同的轴坐标取负后所围绕转的轴及转的方向有区别

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
 楼主| 发表于 2007-3-21 13:30:00 | 显示全部楼层

Re:怎么把DirectX的左手坐标系换成有手坐标系

谢谢大家那么热心
我用右手坐标系的顶点、摄像机、向量积算法……最后用D3DXMatrixPerspectiveFovRH创建投影矩阵,应该可以了吧

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2007-3-21 13:39:00 | 显示全部楼层

Re:怎么把DirectX的左手坐标系换成有手坐标系

可以阿,dx不一定非要是左手坐标系,不一定非要y向上。。。

7

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-3-21 14:52:00 | 显示全部楼层

Re: 怎么把DirectX的左手坐标系换成有手坐标系

对世界变换矩阵和视变换矩阵右乘一个矩阵
|1 0  0 0|
|0 1  0 0|
|0 0 -1 0|
|0 0  0 1|

7

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-3-21 15:00:00 | 显示全部楼层

Re: 怎么把DirectX的左手坐标系换成有手坐标系

  生成视变换矩阵的函数继续用左手坐标系的生成函数或用右手坐标系的函数创建视变换矩阵
,投影变换矩阵也需要变换, 与视变换矩阵的处理方法相同 [em7]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 19:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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