【发布时间】:2018-06-02 19:17:41
【问题描述】:
我有这个场景,我在我的计划中用球体投射阴影,在第一张照片中一切都很好。
当我把球体放在另一个地方时,阴影没有完全投射在平面上,就像这张照片一样。
这是代码:
//Create a DirectionalLight and turn on shadows for the light
var light = new THREE.DirectionalLight( 0xffffff, 0.7, 1 );
light.position.set( 1, 1,1);
light.castShadow = true;
light.shadowDarkness = 0.8;
scene.add( light );
//Set up shadow properties for the light
light.shadow.mapSize.width = 512;
light.shadow.mapSize.height = 512;
light.shadow.camera.near = 0.0;
light.shadow.camera.far = 5;
var sphereGeometry = new THREE.SphereBufferGeometry(1, 32, 32 );
var sphereMaterial = new THREE.MeshStandardMaterial( { color: 0xff0000 } );
var sphere = new THREE.Mesh( sphereGeometry, sphereMaterial );
sphere.translateY(1);
sphere.translateZ(-5);
sphere.translateX(-2);
sphere.castShadow = true;
sphere.receiveShadow = false;
scene.add( sphere );
在这里我收到了我计划的影子:
var objectLoader = new THREE.ObjectLoader();
objectLoader.load("stone/rush_tex01.json", function ( object ) {
object.traverse( function( node ) { if ( node instanceof THREE.Mesh ) { node.receiveShadow = true; } } );
scene.add( object );
} );
那应该是什么?
【问题讨论】:
标签: three.js