【问题标题】:Draw Object3D more times with different location/rotation in THREE.js在 THREE.js 中以不同的位置/旋转多次绘制 Object3D
【发布时间】:2013-05-26 05:26:56
【问题描述】:

是否可以使用不同的位置/旋转多次绘制 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);
//...

提前致谢,

【问题讨论】:

    标签: javascript three.js webgl


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      看看Three.js - load JSON model once and add it multiple times按照克隆。

      【讨论】:

        猜你喜欢
        • 2015-06-15
        • 2021-01-11
        • 1970-01-01
        • 2012-02-20
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 2013-03-10
        • 2013-03-14
        相关资源
        最近更新 更多