ThreeJS赢得'不要投下任何阴影

ThreeJS won't cast any shadows

本文关键字:任何 阴影 赢得 ThreeJS      更新时间:2023-09-26

我在使用ThreeJS时遇到了一些问题。我有一些立方体,应该会在下面的飞机上投射阴影,但它们没有——我已经在谷歌上搜索了几个小时的解决方案,并尝试了我能找到的一切,但我无法让它发挥作用。

我在所有对象上使用MeshPhongMaterial,并将.castShadow.receiveShadow添加到所有适当的对象中。我使用SpotLight,指向地面——它照亮立方体和地面,但立方体不会投射阴影。这里有一个立方体和地面的例子:

  var cubeGeometry = new THREE.CubeGeometry(20, 20, 20);
  cube1 = new THREE.Mesh(cubeGeometry, material);
  cube1.shading = THREE.FlatShading;
  cube1.castShadow = true;
  cube1.receiveShadow = true;
  var groundGeometry = new THREE.PlaneGeometry(200, 200);
  var groundMaterial = new THREE.MeshPhongMaterial({color: 0xf0dc3f});
  ground = new THREE.Mesh(groundGeometry, groundMaterial);
  ground.shading = THREE.FlatShading;
  ground.position.y = -30;
  ground.rotation.x = Math.PI / 2;
  ground.rotation.z = Math.PI / 4;
  ground.receiveShadow = true;

我的JsFiddle:https://jsfiddle.net/fggjp2n9/

您失踪了:

renderer.shadowMap.enabled = true;

https://jsfiddle.net/fggjp2n9/1/