场景中的3D模型加载

背景

最近在工作项目中遇到在3D场景scene中加载模型的问题,遇到了模型坐标系和场景当中的世界坐标系不一致的问题

解决方案

在于大神交流之后,学到一种此类问题的解决方案,就是将加载的模型先绕着x轴旋转一定的圆弧角度,将其摆正,然后再将摆正的模型放进一个盒子Group里,再将盒子沿着z轴旋转一定的角度,为其position属性赋值,即可将其放置在3D场景中想要的位置上去。

代码示范

object.rotation.x = Math.PI / 2;

// 根据场景里door对象的Geometry信息,对加载的模型的长度,宽度,厚度进行伸缩变化
object.scale.set(1, 2, 1);

// 由于加载的模型坐标系和场景里的环境坐标系不一致,需要把加载的模型放进盒子Group里,摆正模型所在的盒子Group的Z轴旋转角度
let group = new THREE.Group();
group.add(object);
group.rotation.z = Math.atan2(this.door.normal.y, this.door.normal.x) + Math.PI / 2;

// 设置盒子Group放置的位置
group.position.set(this.door.position.x, this.door.position.y, this.door.position.z);

// 将盒子Group渲染到场景中
this.scene.add(group);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值