【问题标题】:three.js not displaying all meshesthree.js 不显示所有网格
【发布时间】:2013-12-31 02:12:49
【问题描述】:

3d max 2013 obj 到 three.js 59 rev 的奇怪问题,在我的 3d max 场景中,我有 5 个对象,立方体......然后当我导入到 three.js 场景中时,我现在只有 3 个立方体。也有枢轴点共享到所有对象的中间:

       var loader = new THREE.OBJMTLLoader();
       loader.load( 'models/cubes.obj') ;
       loader.addEventListener( 'load', function ( event ) {

       object = event.content;
       for(k in object.children){

        group.add(object.children[k]); // console said there 5 objects

        }

      });

       scene.add(group); 

有什么想法吗?

如果我要:

     group.add(object); // i will see my five cubes or 
     scene.add(object) //but then i cant access the children at all

这很奇怪。

【问题讨论】:

  • 您不能将整个对象及其子对象添加到场景中吗?用scene.add(object);所以你保留了 OBJ 文件中的所有信息,而不是用你的组对象创建一个新的场景层次结构?
  • 我可以,但是会出现同样的问题,如果我只有 add(object) 显示所有内容但我无法访问孩子,这很奇怪...
  • 你为什么使用旧版本的库?
  • 我刚刚跳回 webgl,所以我从不久前开始设置,但这是我的下一步,现在更新....

标签: javascript 3d three.js 3dsmax


【解决方案1】:

第一个问题是:

    var loader = new THREE.OBJMTLLoader();  //should be using OBJLoader

另一个问题是枢轴点,根据我在网上阅读的内容,obj 格式的枢轴存在已知问题,对象的中心因父对象而异。 例如:

如果您有三个彼此相等的网格立方体,但要间隔开。每个对象的轴心点不是它自身的中心,而是所有对象的中心。

将每个对象放入自己的 3d Container 后,这仍然不能解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多