MaterialInterface.cppの以下のコードについてですが
<br/>
if ((uint16(MaterialResource->MaterialGetSubstrateMaterialBsdfFeatures_GameThread()) & uint16(ESubstrateBsdfFeature::Toon)) > 0)
{
// Add the Substrate shading model to the ShadingModelMask so that we detect on mobile that is it not only DefaultLit material in the scene.
// So that the base pass write the correct stencil values for the toon shading model to be schedule during the “all shading models” pass.
MaterialRelevance.ShadingModelMask |= EMaterialShadingModel::MSM_Strata;
}
<br/>
Maskとして定義されている変数にenum値を|しているのが奇異に感じます。
その直前の
MaterialRelevance.ShadingModelMask = GetShadingModels().GetShadingModelField();
を破壊する可能性があるのでは。
現状なにか実害が出ているかはわかりませんが、将来の不具合に繋がる可能性もあるかもしれないので、報告だけさせてください。
ToonはExperimentalなので単に作業中ということかもしれませんが、bitmaskを想定したShadingModelMaskの用法としては適切では無いように思えます。
[Attachment Removed]