我无法对具有json数据的3d对象实施LOD。
这是我的实现:



loader.load('models/robot-threejs/robot.json', function(object){
    var lod = new THREE.LOD(object);

    for (var i=1; i<=3;i++) {
        console.log("this"+i);
       lod.addLevel(object,i);
         }

         lod.updateMatrix();
		lod.matrixAutoUpdate = false;

    //     lod.updateMatrix();
    //     lod.matrixAutoUpdate = false;

        scene.add(lod);
     //scene.add(object);
    // object.position.set(30, 30, 30);

})

最佳答案

您实施的THREE.LOD错误。


构造函数不接受任何参数,因此,当您执行以下操作时:new THREE.LOD(object);,它什么也不做。您只需要使用new THREE.LOD();
您要向LOD添加相同的网格3次,因此不会有任何区别。如果要详细查看任何更改,则需要创建具有不同几何形状的单独的网格。请记住,您必须自己生成这些几何。 Three.js不会自动为您更改几何形状。但是您可以为此使用SimplifyModifier
不知道为什么要玩矩阵更新。这里没有理由。
如果要详细查看更改,还需要在渲染循环上调用lod.update(camera)


我强烈建议您阅读the documentation for LOD并通读this example中的代码以更好地了解其工作原理。

10-06 02:51