お世話になっております。
NiagaraをUSceneCaptureComponent2Dでキャプチャを実行すると、Shadow.Virtual.PhysicalPagePool が増える現象が発生しております。
Niagaraの描画では影は必要ないため、Shadow.Virtual.PhysicalPagePool が増えることは想定外のため原因を調査を行っておりますが、原因の特定に至らずご質問させて頂ければと思います。
【試した内容】
1. Niagaraをキャプチャする USceneCaptureComponent2D の ShowFlags の全てのフラグをOFFにしたのち、Niagara描画に必要なフラグのみをONにする
ShowFlags.SetNiagara(true);
ShowFlags.SetParticles(true);
ShowFlags.SetTranslucency(true);
ShowFlags.SetSeparateTranslucency(true);
ShowFlags.SetRendering(true);
ShowFlags.SetDeferredLighting(true);
ShowFlags.SetGame(true);
この場合、Shadow.Virtual.PhysicalPagePool が増えることはありませんでした。
2. 1の設定で、追加で下記フラグをONにすると、Shadow.Virtual.PhysicalPagePool が増加する
ShowFlags.SetVirtualShadowMapPersistentData(true);
3. 2の結果を受け、どのフラグをONにしたときにShadow.Virtual.PhysicalPagePool が増加するのかを確認しました。
ShowFlags の全てのフラグをOFFにしたのち、
ShowFlags.SetVirtualShadowMapPersistentData(true);
ShowFlags.SetRendering(true);
これらのフラグのみをONにすると、Shadow.Virtual.PhysicalPagePool が増加しました。
Shadow.Virtual.PhysicalPagePool の増加は、初回のみで継続的に増加し続けることはありません。
しかしながら、一度増加すると減少することはないため、増加させないようにしたいと考えております。
【確認したいこと】
① SceneCaptureComponent でキャプチャする際、ShowFlags の VirtualShadowMapPersistentData を OFFにするのは問題ないのでしょうか?
また、SceneCaptureComponent の VirtualShadowMapPersistentData を OFFにすることが、ゲームメインの描画に影響することはないでしょうか?
VirtualShadowMapPersistentData をOFFにすると、VSMの情報が毎フレーム生成するとなり負荷上昇につながる認識となります。
キャプチャの際に設定した VirtualShadowMapPersistentData の設定がゲーム本体側にも影響し負荷が上昇することは避けたい問題となります。
VirtualShadowMapPersistentData をOFFの効果は、キャプチャ時の描画のみにしたいと考えております。
② ①の対応は問題がある、ゲームメインの描画に影響するとなった場合、Shadow.Virtual.PhysicalPagePool を増やさないようにするにはどうすれば良いでしょうか?
③ Niagara以外(StaticMeshなど)を SceneCaptureComponent でキャプチャする際にもShadow.Virtual.PhysicalPagePool の増加を確認しております。
SetFlagsで DynamicShadow と VirtualShadowMapPersistentData を OFF にする対応を行った場合でも、Shadow.Virtual.PhysicalPagePool が増加することを確認しており、原因箇所の特定と対処方法の調査を進めておりますが難航しております。
そこで質問なのですが、DynamicShadow を OFFにした場合にもかかわらず、Shadow.Virtual.PhysicalPagePool が増加する原因としてどのようなものが考えられるでしょうか?
以上、よろしくお願いいたします。
