three.js – 网格组的例子? (THREE.Object3D()高级)
我试图了解如何将孩子网格分组/链接到父母。 我希望能够:
- 拖动父项
- 相对于父元素旋转子元素
- 有父母轮换/翻译为孩子做正确的事情
我唯一的背景是在第二人生中使用LSL来操作对象中的链接的元素。 我想我不想合并网格,因为我想保持每个孩子的控制(hover,纹理,旋转,缩放等)。
有什么好的教程呢? 这是用THREE.Object3D()实现的,是吗?
谢谢Daniel
拖动会有点棘手,因为你需要弄清楚屏幕(屏幕空间)上鼠标的x / y位置在3D世界中的位置,那么你需要投射光线并检查它与要拖动的对象相交。 我认为这将是一个不同的问题。
设置对象层次结构相当简单。 正如你所暗示的那样,你将使用THREE.Object3D实例将对象嵌套到使用它的add()方法中。 这个想法是,你将使用一个网格物体的几何,和Object3D实例,你只需要嵌套元素。 我build议从canvas_geometry_hierarchy样本开始。
有趣的是:
group = new THREE.Object3D();//create an empty container group.add( mesh );//add a mesh with geometry to it scene.add( group );//when done, add the group to the scene
另一种方式,因为网格也可以是父母
meshParent.add(meshChild1); meshParent.add(meshChild2); scene.add(meshParent);
要么
mesh1.add(mesh2); mesh3.add(mesh1); scene.add(mesh3);
mesh3操纵所有网格,mesh1操纵自身和mesh2,mesh2操纵自己