Threejs - 我无法从JSONLoader加载材料

时间:2014-01-16 13:26:57

标签: javascript three.js

嗨,我有一个简单的TheeJS代码,我想在其中加载一些使用JSONLoader的3D js文件。 3D文件是从blender导出器导出的,当我运行这部分代码时,它会给我带来两个错误:

Uncaught TypeError: Cannot read property 'map' of undefined
Uncaught TypeError: Cannot read property 'attributes' of undefined

这是我的代码的一小部分,它将加载json 3D文件:

var load = function ( file, callback )
{
    var loader = new THREE.JSONLoader();
    loader.load( file, function( geometry, materials ){
        callback( new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) ) );
    });
}

load("models/porsche.js", function(car){
    car.position.set( 0, 0, -2 );
    car.rotation.y = Math.PI / -2;
    scene.add(car);
});

此外,当我使用其他种类的材料,例如phong或lambert时,它工作得非常好但是当我使用MeshFaceMaterial时它会出现这些错误
我该怎么办?

1 个答案:

答案 0 :(得分:1)

问题可能在json文件中,检查材质中的pataramer阴影是否正确。一些作为"阴影" :"兰伯特"