Unity - BakingSystem - 烘焙 - 阴影黑块


环境

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();

猜你喜欢

转载自blog.csdn.net/linjf520/article/details/128003237