是否可以使用不同的位置/旋转绘制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);
//...
提前致谢,
答案 0 :(得分:1)
如果不克隆它,则无法将相同的模型添加到场景中。 collada模型的材质和几何可以位于模型层次结构中的任何位置,您可以遍历层次结构以查找它们。克隆就是这样做的。 Three.js没有模型instance
的概念。
根据克隆情况,查看Three.js - load JSON model once and add it multiple times。
答案 1 :(得分:1)
但可以做的是创建多个Object3D实例,并将要作为子对象多次显示的Collada对象添加到每个对象中。 在每个Object3D对象上,您可以指定位置,旋转和缩放,从而在多个位置渲染Collada对象。 您的Collada对象仅存在于一个实例中,但由于Object3D对象而呈现多次。