Three.js阴影正常生效但模型下方出现黄红多余线条如何解决
异常线条产生原因
你看到的红、黄色线条不是阴影渲染bug,是代码里主动添加的阴影相机调试辅助线。
Three.js自带的CameraHelper工具会用彩色线框绘制对应相机的视锥体边界,专门给开发阶段调参数用的。你代码里的这一行,就是把平行光用于计算阴影的相机的辅助线加到了场景里:
scene.add(new THREE.CameraHelper(light.shadow.camera));
这个辅助对象默认就用红、黄配色绘制线框,和你截图里的异常表现完全匹配。
解决方法
直接删除或者注释掉上面提到的添加CameraHelper的代码,刷新场景后这些彩色线条就会完全消失,已经正常显示的模型阴影效果不会受任何影响。
顺手提两个代码里的小问题
- 平行光颜色参数写错了:
0xfffffff多写了一位f,十六进制颜色值正确格式是0x后跟6位十六进制字符,改成0xffffff就对了 - 现在阴影相机的
near设为0.5、far设为500,跨度过大会降低阴影贴图的有效精度,可以根据你场景的实际尺寸缩小这个范围,阴影清晰度会明显提升。调整参数的时候如果拿不准阴影相机的覆盖范围,可以临时加回CameraHelper观察边界,调完删掉就行。
内容的提问来源于stack exchange,提问作者Mihail-Cosmin Munteanu
相关产品推荐
相关产品推荐

