纯白色的影子

时间:2017-08-01 22:01:53

标签: three.js

我正在尝试创建一个纯白色的场景,其中唯一的深度是用鼠标移动一个spotLight。我喜欢我现在的效果,但我想知道如何在保持阴影的同时将整个场(现在是灰色的)变成纯白色。

如果我将环境光照亮,我会失去阴影。

enter image description here

camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 1, 1000 );
  camera.position.set( 0, 50, 0 );

  var controls = new OrbitControls( camera, renderer.domElement );
  controls.addEventListener( 'change', render );
  controls.minDistance = 20;
  controls.maxDistance = 500;
  controls.enablePan = false;

  var ambient = new THREE.AmbientLight( 0xffffff, .7 );
  scene.add( ambient );

  spotLight = new THREE.SpotLight( 0xffffff, 1 );
  spotLight.position.set( 0, 10, 0 );
  spotLight.target.position.set( 0, 0, 0 );
  spotLight.angle = 1.05;
  spotLight.penumbra = 0.05;
  spotLight.decay = 1;
  spotLight.distance = 200;

  spotLight.castShadow = true;
  spotLight.shadow.mapSize.width = 1024;
  spotLight.shadow.mapSize.height = 1024;
  spotLight.shadow.camera.near = 10;
  spotLight.shadow.camera.far = 200;
  scene.add( spotLight );

  lightHelper = new THREE.SpotLightHelper( spotLight );
  // scene.add( lightHelper );

  shadowCameraHelper = new THREE.CameraHelper( spotLight.shadow.camera );
  // scene.add( shadowCameraHelper );
  // scene.add( new THREE.AxisHelper( 10 ) );

  var material = new THREE.MeshPhongMaterial( { color: 0xffffff, dithering: true } );
  var geometry = new THREE.BoxGeometry( 2000, 1, 2000 );

  var mesh = new THREE.Mesh( geometry, material );
  mesh.position.set( 0, - 1, 0 );
  mesh.receiveShadow = true;
  scene.add( mesh );

  var material = new THREE.MeshPhongMaterial( { color: 0xffffff, dithering: true } );
  geometry = new THREE.BoxGeometry( 3, 1, 2 );

  var mesh = new THREE.Mesh( geometry, material );
  mesh.position.set( 0, 0, 0 );
  mesh.castShadow = true;
  scene.add( mesh );

0 个答案:

没有答案