Hi Epic team,
如题情况下半透明材质会不提drawcall,因为shader没有被编译。
我们定位到运行时 SelectMeshLightmapPolicy() 选择了LMP_MOBILE_DIRECTIONAL_LIGHT_CSM_AND_SH_INDIRECT
但编译期 FMobileDirectionalLightCSMAndSHIndirectPolicy::ShouldCompilePermutation() 在 Mobile Deferred 下会裁掉该 permutation:
if (IsMobileDeferredShadingEnabled(Parameters.Platform)
&& !Parameters.MaterialParameters.ShadingModels.HasShadingModel
(MSM_SingleLayerWater))
{
return false;
}
这里似乎只允许 SingleLayerWater ,但没有允许 Surface ForwardShading 半透明材质。
所以想确认一下:
FMobileDirectionalLightCSMAndSHIndirectPolicy 这里是否应该允许 Parameters.MaterialParameters.bIsTranslucentSurfaceLighting ?
例如:
if (IsMobileDeferredShadingEnabled(Parameters.Platform)
&& !(Parameters.MaterialParameters.ShadingModels.HasShadingModel
(MSM_SingleLayerWater)
|| Parameters.MaterialParameters.bIsTranslucentSurfaceLighting))
{
return false;
}
这个问题是引擎已知限制,还是一个bug?
[Attachment Removed]