three 模型吸附

145 阅读1分钟

three模型吸附

功能需求

将两个模型或多个模型拼装成一个模型然后导出,模型拼装手动修改模型变换尽管有TransformControls可以进行变换操作,但是对于用户来说有点麻烦,并且效果也不大好,不一定保证贴合.

实现思路

  • 将两个模型的选中的点进行吸附
  • 将两个模型选中的三角面进行吸附

点吸附只需将位置更新,主要考虑面吸附.

预览图

recording.gif

实现

  • 监听鼠标点击事件,Raycaster获取点击的信息
  • 拿到点击的模型,以及点击的信息intersection
  • 计算旋转轴旋转角度
  • 旋转模型更新模型矩阵
  • 获取坐标信息,更新位置信息
  • GLTFExporter导出模型

结束

recording.gif