1

是否可以使用不同的位置/旋转多次绘制 Object3D?我不想克隆对象,因为它们是相同的,除了位置/旋转值。所以我唯一需要的就是参考 obj 的几何形状和材料。(Object3D 在我的代码中是一个 collada 模型(dae.scene))

var obj = new THREE.Object3D();
//...

var objs = [];
for(var i=0; i<10; i++) {
    objs.push( ? );
}

objs[j].position.set(x, y, z);
//...

提前致谢,

4

2 回答 2

1

您不能在不克隆的情况下将相同的模型添加到场景中。collada 模型的材料和几何形状可以位于模型层次结构中的任何位置,您可以遍历层次结构来查找它们。克隆就可以做到这一点。Three.js 还没有instance模型的概念。

看一下Three.js - 一次加载 JSON 模型并根据克隆多次添加它。

于 2013-05-24T13:37:32.877 回答
1

但是您可以做的是创建多个 Object3D 实例,并将您想要多次显示的 Collada 对象作为子对象添加到这些对象中的每一个。在每个 Object3D 对象上,您可以指定位置、旋转和缩放,从而在多个位置渲染您的 Collada 对象。您的 Collada 对象仅存在于一个实例中,但由于 Object3D 对象而被多次渲染。

于 2013-05-25T21:26:56.337 回答