Javascript Three.js-应用材质时,导入的OBJ无法接收阴影
我已使用此加载函数导入了一个obj:Javascript Three.js-应用材质时,导入的OBJ无法接收阴影,javascript,three.js,3d,Javascript,Three.js,3d,我已使用此加载函数导入了一个obj: // called when resource is loaded function ( object ) { // For any meshes in the model, add our material. object.traverse( function ( node ) { if ( node instanceof THREE.Mesh ){
// called when resource is loaded
function ( object ) {
// For any meshes in the model, add our material.
object.traverse( function ( node ) {
if ( node instanceof THREE.Mesh ){
//node.material = material;
//node.geometry.computeVertexNormals();
node.castShadow = true;
node.receiveShadow = true;
}
} );
object.scale.set(0.5,0.5,0.5);
scene.add( object );
parts[partName] = object;
}
该对象加载良好,并且具有来自场景中聚光灯的阴影。问题是,当我将材质应用于网格时(因此在上面的代码中注释掉了该材质),模型不再接收阴影
材质逐节点应用,材质映射为jpg,如下所示
if ( node.isMesh ) node.material = material;
new THREE.MeshBasicMaterial( { map: new THREE.TextureLoader().load( 'materials/orange.jpg' ), shininess: 50, shading: THREE.SmoothShading }),
谢谢你的帮助,Ed.重新体验了我使用的功能
MeshBasicMaterial
应该使用
MeshLambertMaterial
因此材质可以接收阴影