three.js坐标系问题

背景

在做一个模型旋转的功能的时候,我需要指定一个旋转轴,才发现建模师使用的c4d软件是左手坐标系;而three.js坐标系是右手坐标系。所以他建出来的模型的轴和我用three.js编辑器打开看到的轴不一样。比如他在c4d里让模型绕y轴旋转了30度,但是我用three.js编辑器看到的rotation的信息是绕z轴转了30度。这样的话假如我作为开发人员需要模型绕世界坐标的z轴方向绕45度,那么建模师那里就要找一下three.js编辑器里的z轴对应到c4d是哪个方向。

解决方法

对于统一c4d和three.js的坐标系方向我们用的是上述这个笨方法,靠建模师自己去比对,但是我们目前也没有找到更便捷的方法,还望知道的大佬不吝赐教。

注意

three.js编辑器里打开的模型,就算选中了其中的某个模型,看到的坐标系方向也是世界坐标系方向,要想知道它的局部坐标系方向,就只能用three.js代码把模型加载到场景中,然后用THREE.AxesHelper来看局部坐标系方向。
模型的局部坐标系和世界坐标系方向相同时,直接改模型的rotation属性和使用模型的rotateX(/Y/Z)是一样的,但是一旦模型旋转过,那么rotateX(/Y/Z)是相对于旋转后的局部坐标系,改rotation属性则是相对于世界坐标系,效果就不一样了。

参考

参考1

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值