我需要将汽车模型添加到场景中,并将车轮作为单独的对象,以便它们轻松旋转和可能的替换。问题是车轮的定位 - 它们需要位于相对于车身的精确位置。如何才能以正确的方式做到这一点?在 WebGL 演示和 TriggerRally 中,存在现有的车轮位置 - 它们是为 3D 场景预定义的 - 但如何实现呢?这些位置可以以某种方式映射到 Blender 模型坐标吗?
我尝试将一个轮子与车身分离,将枢轴点设置为其中心,保存坐标并将轮子网格添加到应用 Blender 位置的 Three.js 场景(当然是缩放的) - 但比例似乎不匹配。
我发现 OBJLoader 具有层次结构导入功能,但它不是核心的 Three.js 功能,因此我决定坚持使用 JSONLoader(我需要手动进行分组/层次结构)。
谢谢。
最佳答案
您可以尝试将所有汽车元素放置在不同的 THREE.Object3D
中,如下所示:
- 汽车型号
- 左前轮
- 右前轮
- 左后轮
- 左后轮
通过将每个元素添加到新的THREE.Object3D
,您将为每个元素获得一个新的枢轴点(它将简化进一步的移动和旋转命令)。您必须记住根据元素的父元素设置正确的位置(THREE.Object3D
)。
然后您只需将 2-5
添加到 1
中即可。
关于three.js - 在场景中定位子对象(汽车 <-> 车轮层次结构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353427/