四元数在左手坐标系和右手坐标系下有区别吗。。。。。

mnbskysb 2015-04-16 08:10:28
目前在研究游戏的模型格式。。。。想导入MAX的 对其中顶点的坐标法线和UV都知道在哪了。。。。。
现在就差骨架搭不出来。。。。。。
游戏使用的是左手坐标系,所以模型网格导入时做了 Y Z交换,UV 是v=1-v 就可以正常的导入3DMAX了,
每个骨骼保存了 1.比例(全是1 :1:1) 2 父骨骼ID(我是这么理解的)3.一个旋转四元数。4位置信息。和一个1常量
比如:(1.0 1.0 1.0) (84) (0.5226397 0.5226397 0.4762854 0.4762854)(-5.95,33.60674,3.827777)(1.0)
可是搭出来的骨架样子怪怪的。。。。
上面的数据需要做坐标系的转换吗?
附上我的骨架代码,是脚本应该好理解的。。。
bb[1]=bone()
bb[1].name="骨骼-0"
for i=2 to bonen+1 do(
in bb[bonefid[i]] bb[i]=bone() --确定各节点的父子关系
)
for i=2 to bonen+1 do(
move bb[i] bonepos[i]
--rotate bb[i] (bonequat[i]) --依次移动每个节点
)
for i=2 to bonen+1 do(
rotate bb[i] (bonequat[i]) --依次旋转每个节点
)
)
...全文
3688 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
三尺三 2017-10-18
  • 打赏
  • 举报
回复
看这个(还没有验证过)。 我认为怎么转换要看你两个坐标系的轴向。 https://stackoverflow.com/questions/28673777/convert-quaternion-from-right-handed-to-left-handed-coordinate-system
baidu_25126953 2016-06-30
  • 打赏
  • 举报
回复
敢问楼主问题解决了么
mnbskysb 2015-04-21
  • 打赏
  • 举报
回复
Y Z 交换 W取负也不对。。。。。好坑。。。
彩阳 2015-04-21
  • 打赏
  • 举报
回复
看看我的博客,自己推导一下。用代入法 x -> x y -> y z -> -z 就知道了。 http://blog.csdn.net/gamesdev/article/details/10036105
mnbskysb 2015-04-21
  • 打赏
  • 举报
回复
引用 3 楼 jiangcaiyang123 的回复:
[quote=引用 2 楼 mnbskysb 的回复:] [quote=引用 1 楼 jiangcaiyang123 的回复:] 四元数在左手坐标系和右手坐标系是有区别的, 他们的关系是 z和w分量是互为相反数。
俩个单独去反,也不正常啊。。。。YZ交换也不正常T.T[/quote] 这个就不清楚了,可能是你那边的其它因素导致的吧。[/quote] 。。。后面还跟了一堆矩阵。。。。搞大了 不会还要再乘上矩阵吧。。。。
彩阳 2015-04-21
  • 打赏
  • 举报
回复
引用 2 楼 mnbskysb 的回复:
[quote=引用 1 楼 jiangcaiyang123 的回复:] 四元数在左手坐标系和右手坐标系是有区别的, 他们的关系是 z和w分量是互为相反数。
俩个单独去反,也不正常啊。。。。YZ交换也不正常T.T[/quote] 这个就不清楚了,可能是你那边的其它因素导致的吧。
mnbskysb 2015-04-18
  • 打赏
  • 举报
回复
引用 1 楼 jiangcaiyang123 的回复:
四元数在左手坐标系和右手坐标系是有区别的, 他们的关系是 z和w分量是互为相反数。
俩个单独去反,也不正常啊。。。。YZ交换也不正常T.T
彩阳 2015-04-17
  • 打赏
  • 举报
回复
四元数在左手坐标系和右手坐标系是有区别的, 他们的关系是 z和w分量是互为相反数。

8,301

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧