我正在尝试使用带有Three.js的Blender创建的模型。模型非常基本,两个立方体彼此叠加。一个立方体是红色,另一个是绿色。
我使用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文件答案 0 :(得分:9)
易。材料是一个阵列。您需要执行以下操作:
loader.load( "model.js", function ( geometry, materials ) {
mesh = new THREE.Mesh( geometry, materials );
scene.add( mesh );
animate();
} );
three.js r.88