我还是新人,为什么模型没有投射任何阴影?我启用了环境光和定向光
// import model
const loader = new THREE.GLTFLoader();
loader.load( 'object/GalaxyS10.gltf', function ( gltf ) {
scene.add( gltf.scene );
}, undefined, function ( error ) {
console.error( error );
}
);
loader.castShadow = true;
Run Code Online (Sandbox Code Playgroud)
不幸的是,您的帖子遗漏了很多细节。一般来说,您必须执行以下操作才能获得正确的阴影:
GLTFLoader.castShadow不存在。设置它没有任何效果。renderer.shadowMap.enabled = true;到代码中才能全局启用阴影。CameraHelper。const light = new THREE.DirectionalLight( 0xffffff );
light.position.set( 0, 10, - 10 );
light.castShadow = true;
light.shadow.camera.top = 2;
light.shadow.camera.bottom = - 2;
light.shadow.camera.left = - 2;
light.shadow.camera.right = 2;
light.shadow.camera.near = 0.1;
light.shadow.camera.far = 10;
scene.add( light );
// scene.add( new THREE.CameraHelper( light.shadow.camera ) );
Run Code Online (Sandbox Code Playgroud)
receiveShadow为。truetrue阴影。您没有在代码片段中执行此操作。它应该看起来像这样:gltf.scene.traverse( function ( object ) {
if ( object.isMesh ) object.castShadow = true;
} );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1697 次 |
| 最近记录: |