ThreeJS 开启暗影正确做法:

  1. 渲染器启用暗影 renderer.shadowMap.enabled = true;
  2. 灯光产生暗影 light.castShadow = true;
  3. 物体遮挡暗影 obj.castShadow = true;
  4. 高空显示暗影 obj.receiveShadow = true;

无暗影成果:

有暗影成果,产生了许多条纹:

产生起因

  1. 将四方块设置为 不接管暗影 obj.receiveShadow = false; 可防止条纹,但四方块上就没有投影成果了。
  2. 将材质的 material.side = 0; side属性设置为0也能够失常。
  3. 或者将材质的投影面设置为反面也可解决 material.shadowSide = THREE.BackSide;

正确暗影成果:

以上为产生条纹暗影解决办法。

而模型上呈现了网格暗影或投射出的暗影比拟含糊:

则是暗影不够精密导致投射在本身或其余五提倡的暗影呈现锯齿,解决办法:
light.shadow.mapSize.width=2048; //暗影贴图宽度设置为2048像素
light.shadow.mapSize.height=2048; //暗影贴图高度设置为2048像素
(light为你本人定义的可投射暗影灯光)

值的大小能够本人跟据理论状况设置,设置得小一点性能会更加好,设置得大一点成果会更好,不过会占用更多的图像运算资源。

以上。