ThreeJS 开启暗影正确做法:
- 渲染器启用暗影 renderer.shadowMap.enabled = true;
- 灯光产生暗影 light.castShadow = true;
- 物体遮挡暗影 obj.castShadow = true;
- 高空显示暗影 obj.receiveShadow = true;
无暗影成果:
有暗影成果,产生了许多条纹:
产生起因
- 将四方块设置为 不接管暗影 obj.receiveShadow = false; 可防止条纹,但四方块上就没有投影成果了。
- 将材质的 material.side = 0; side 属性设置为 0 也能够失常。
- 或者将材质的投影面设置为反面也可解决 material.shadowSide = THREE.BackSide;
正确暗影成果:
以上为产生条纹暗影解决办法。
而模型上呈现了网格暗影或投射出的暗影比拟含糊:
则是暗影不够精密导致投射在本身或其余五提倡的暗影呈现锯齿,解决办法:
light.shadow.mapSize.width=2048; // 暗影贴图宽度设置为 2048 像素
light.shadow.mapSize.height=2048; // 暗影贴图高度设置为 2048 像素
(light 为你本人定义的可投射暗影灯光)
值的大小能够本人跟据理论状况设置,设置得小一点性能会更加好,设置得大一点成果会更好,不过会占用更多的图像运算资源。
以上。