確認したところおっしゃる通りでした!何も設定していないマテリアルでもInstanced用ではClip命令が使われておりました。(本来は下のコードの一番したのClipLODTransitionの中身が空になるのが適切かと思います。)
void ClipLODTransition(float2 SvPosition, float DitherFactor)
{
if (abs(DitherFactor) > .001)
{
float RandCos = cos(dot(floor(SvPosition.xy), float2(347.83451793,3343.28371963)));
float RandomVal = frac(RandCos * 1000.0);
float RetVal = (DitherFactor < 0.0) ?
(DitherFactor + 1.0 > RandomVal) :
(DitherFactor < RandomVal);
clip(RetVal - .001);
}
}
void ClipLODTransition(FMaterialPixelParameters Parameters, float DitherFactor)
{
ClipLODTransition(Parameters.SvPosition.xy, DitherFactor);
}
void ClipLODTransition(FMaterialPixelParameters Parameters)
{
ClipLODTransition(Parameters, Parameters.PerInstanceParams.w);
}
修正方法も問題ないと思います。正式に修正されるようにチケットを登録いたしましたので、本件解決されるまで今しばらくお待ち下さい。
UE-61947 - Instanced Staticmesh Components always turn on USE_DITHERED_LOD_TRANSITION
この度は御指摘ありがとうございました!