【问题标题】:three.js exporter 'export object' not working with jsonLoader (r58)three.js 导出器“导出对象”不适用于 jsonLoader (r58)
【发布时间】:2013-06-16 14:47:17
【问题描述】:

我正在尝试将从 3DWarehouse 获得的 model 加载到 three.js 中。我无法让 Collada Loader 工作,因此我将其导入 THREEJS 编辑器并使用“导出对象”功能将其导出。当我使用以下代码将对象加载到我的应用程序中时:

var kiss = new THREE.Object3D(), loader = new THREE.JSONLoader(true);
loader.load("model/kiss/kiss.js", function (geometry, meshKiss) {
    meshKiss = new THREE.Mesh(geometry, new THREE.MeshPhongMaterial());
    kiss.addChild(meshKiss);
});
scene.add(kiss);

我得到了错误:

Uncaught TypeError: Cannot read property 'length' of undefined

指 THREE.JSONLoader.prototype.parse 中要求第一个参数的 uvs 长度的行。

对象文件“几何”没有 uvs(它确实有顶点、法线和面):

geometries: data: uvs: [[]]

在将较旧的 JSON 格式文件导入 THREEJS 导出器时,我也发现了这个问题(我测试了 Ginger 模型)。

我的流程是否有效,如果有效,为什么json对象没有导入THREE.JS?

【问题讨论】:

    标签: import three.js webgl collada


    【解决方案1】:

    这似乎正在开发中。作为一种解决方法,您只能从编辑器中导出几何图形,因此您的 JSON 如下所示:

    {
    "metadata": {
        "version": 4,
        "type": "geometry",
        "generator": "GeometryExporter"
    },
    "vertices": [ ... ]
    "normals": [ ... ]
    "uvs": [[]],
    "faces": [ ... ]
    }
    

    然后这样做:

    loader.load( "Kiss2.js", function ( geometry, materials ) {
        var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( { color: 0xff0000, ambient: 0xff0000 } ) );
        scene.add( mesh );
    });
    

    三个.js.r.58

    【讨论】:

    • 感谢@WestLangley,这是一个成功的解决方法。使用此解决方案的其他人请注意,Object 文件中包含的大多数其他数据都可以轻松手动导入。
    【解决方案2】:

    改为用户 ObjectLoader。 你会得到一个网格数组作为响应

    var loader = new THREE.ObjectLoader;
    
    loader.load('http://localhost/threetest/assets/weaponThree.js', createScene);
    
    var material = null;
    
    var mesh = null;
    
    function createScene( json ) {
    
        material    = new THREE.MeshLambertMaterial( json.material );
    
        mesh        = new THREE.Mesh( json.geometry, material );
    
        //scene.add( json[0] );
        scene.add( mesh );
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 2015-03-28
      • 2013-06-15
      • 2018-01-08
      • 2017-08-24
      • 1970-01-01
      • 2018-08-10
      • 2013-04-05
      • 2017-10-27
      相关资源
      最近更新 更多