ThreeJS 阴影条纹BUG

Posted ZjFree-自由自在

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreeJS 阴影条纹BUG相关的知识,希望对你有一定的参考价值。

ThreeJS 开启阴影正确做法:

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

无阴影效果

有阴影效果,产生了许多条纹

产生原因

1. 将四方块设置为 不接收阴影 obj.receiveShadow = false; 可避免条纹,但四方块上就没有投影效果了。
2. 将材质的 let material = new THREE.MeshLambertMaterial( { color: color, side: THREE.DoubleSide } ); side属性去掉也可以正常。
3. 或者将材质的投影面设置为背面也可解决 let material = new THREE.MeshPhysicalMaterial( { color: color, side: THREE.DoubleSide, shadowSide: THREE.BackSide } );

正确阴影效果

总结:

材质的 sideshadowSide 设置对阴影产生影响,需特别注意;

以上是关于ThreeJS 阴影条纹BUG的主要内容,如果未能解决你的问题,请参考以下文章

THREEJS案例(11)- 光照阴影

Css 仅条纹文本阴影效果

threejs————灯光阴影

css CSS动画阴影文本 - 条纹背景

ThreeJS——模型的CopyClone以及实时阴影

R语言使用ggplot2可视化:使用ggpattern包在分组条形图中添加自定义条纹图案添加阴影条纹或其他图案或纹理(add hatches, stripes or another pattern