5

我正在尝试使用 Blender 创建的模型和 Three.js 该模型非常基本,两个立方体相互叠加。一个立方体是红色的,另一个是绿色的。

我已经使用 Three.js 的 Blender 导出器插件导出了模型当我手动将材质分配给对象时,例如:

loader.load("model.js", function ( geometry, material ) {

    material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } );

    mesh = new THREE.Mesh( geometry, material);

    scene.add(mesh);

    animate();

});

没有问题,如https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index.html所示

但是,当我删除该行时:

material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } );

使用模型的材料。这会产生 Three.js 的错误:

TypeError:程序未定义[中断此错误]

p_uniforms = program.uniforms,

您可以在https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index2.html亲自查看

有谁知道什么可能导致这个问题?您可以在https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/model.blend下载 Blender 文件

4

1 回答 1

9

简单的。材料是一个数组。您需要执行以下操作:

loader.load( "model.js", function ( geometry, materials ) {

    mesh = new THREE.Mesh( geometry, materials );

    scene.add( mesh );

    animate();

} );

三.js r.88

于 2013-02-06T15:21:58.780 回答