作用:
对阴影遮罩(即静态阴影贴图)采样,返回一个fixed4,四个分量对应前四个灯光的阴影遮罩值
作用与UnitySampleBakedOcclusion类似,区别是这个方法返回一个四分量的阴影遮罩值,而UnitySampleBakedOcclusion只返回当前灯光的遮罩值
UnitySampleBakedOcclusion解析:https://blog.csdn.net/zengjunjie59/article/details/113865055
源码:
fixed4 UnityGetRawBakedOcclusions(float2 lightmapUV, float3 worldPos)
{
// 检查是否启用阴影遮罩
#if defined (SHADOWS_SHADOWMASK)
// 检查是否启用静态光照贴图
#if defined(LIGHTMAP_ON)
return UNITY_SAMPLE_TEX2D(unity_ShadowMask, lightmapUV.xy);
#else
// 没启用静态光照,则根据光照探头计算
half4 probeOcclusion = unity_ProbesOcclusion;
#if UNITY_LIGHT_PROBE_PROXY_VOLUME
if (unity_ProbeVolumeParams.x == 1.0)
probeOcclusion = LPPV_SampleProbeOcclusion(worldPos);
#endif
return probeOcclusion;
#endif
#else
return fixed4(1.0, 1.0, 1.0, 1.0);
#endif
}
注意:
当光照体积不重叠时,会使用相同的通道来存储它们的阴影数据。所以你可以有任意多个混合光照。但是你必须确保至多四个光照体积彼此重叠。如果有太多个混合光影响同一篇区域,那么一些就会改回到完全烘焙模式。