环境
unity : 2020.3.37f1
pipeline : BRP
修复前
修复后
原因
unity 烘焙的时候,会对物件模型的表面法线的各个角度发射射线做采样
如果某个模型是只有一个单薄的片面,那么默认发射的射线碰撞检测到背面,就相当于碰撞到一个完全吸收光线的材质,不会有再次反弹,所以没有 全局光照的间接光照来补光,将会黑黑的
因此需要告诉 unity 烘焙系统,碰撞到这类材质时,无论他正背面都启用走材质表面反弹计算
主要调整的材质开关:Double Side Global Illumination
Double Side Global Illumination API 说明,就是是否给这个材质开启双面全局光照的设置
// Material.cs
//
// 摘要:
// Gets and sets whether the Double Sided Global Illumination setting is enabled
// for this material.
public extern bool doubleSidedGI
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
set;
}
对应 Material 属性
Material.doubleSizeGI = true;
如果自己自定义了 Shader GUI 记得将 这个字段绘制出来
materialEditor.DoubleSidedGIField();