Unity场景中点光源光线穿透楼板问题解决方法咨询



点光源穿透楼板修复方案
按优先级从高到低排查调整即可,90%的情况前两步就能解决问题:
- 先检查光源阴影开关:选中出问题的点光源,在Inspector面板找到
Shadow Type选项,默认新建的点光源很多是No Shadows状态,直接切换为Hard Shadows(性能消耗低,优先选)或者Soft Shadows(阴影边缘更柔和,性能消耗更高)即可。
额外注意点光源组件下的Shadow Near Plane参数不要调太大,默认0.1就够用,如果数值大于光源到楼板的距离,楼板不会被纳入阴影计算范围,必然穿光。 - 检查楼板的渲染器设置:选中楼板物体,查看其上的
Mesh Renderer组件:- 确认
Cast Shadows、Receive Shadows两个选项都处于勾选状态,关闭Cast Shadows的物体不会对任何光源产生遮挡 - 确认楼板所在的层级没有被点光源的
Culling Mask排除,被排除的层会被光源直接忽略,不会产生遮挡
- 确认
- 排查阴影全局设置问题:
内置渲染管线打开Edit > Project Settings > Quality面板,URP/HDRP管线打开对应的渲染管线配置文件:- 把
Shadow Distance数值调大到能覆盖场景相机到二层楼板的最远距离,数值过小的话超出距离的阴影不会被渲染,会直接漏光 - 适当调高
Shadow Resolution参数,低分辨率阴影因为精度不足,很容易在薄物体上出现穿漏问题
- 把
- 排查楼板模型问题:
不要用Unity默认的单面Plane做楼板,这类模型只有一个渲染面、厚度为0,哪怕阴影开最高也容易漏光,换成有实际厚度(至少0.1单位以上)的Cube或者自定义厚板模型即可。如果用的是自定义楼板模型,记得检查面法线方向,法线翻转的面不会参与阴影计算。 - 如果你用的是烘焙/混合光照:
把楼板物体勾选Static下的Lightmap Static选项,重新烘焙光照贴图即可,烘焙后的静态物体遮挡精度远高于实时光,基本不会出现漏光问题。
内容的提问来源于stack exchange,提问作者Denvox
相关产品推荐
相关产品推荐

