Lumen環境下におけるCapsule Indirect ShadowとShortRangeAOの併用について

いつもお世話になっております。

表題の件についてご質問させていただきます。

Lumen環境下において、Capsule Indirect Shadow(以下、CIS)のAOはScreenSpaceAOバッファに描画されていますが、Lumenのデフォルト設定ではShortRangeAOが使用されるため、CISのAOによる影響が反映されない状況を確認しております。

Lighting: Unreal 5 Lighting Features Reference

https://medium.com/@shinsoj/lighting-features-cheat-sheet-5b81b63b3ab7

一方で、上記を参考に次のコマンドを実行してSSAOに切り替えることで、CISのAO効果が反映される点を確認しております。

  • r.Lumen.ScreenProbeGather.ShortRangeAO 0
  • r.Lumen.DiffuseIndirect.SSAO 1

しかしながら、AOのロジックがSSAOに差し替わってしまうため、ShortRangeAOの影響が丸ごと消えてしまいます。

こちら可能であれば、ShortRangeAOを維持しつつ、CISのAOの影響を重ねて反映させたいと考えております。

エンジンのソースコードを確認した限りでは、

  • FDeferredShadingSceneRenderer::RenderIndirectCapsuleShadows

にて使用されているSceneTextures.ScreenSpaceAOにShortRangeAOを設定することで、CISのAOの効果を乗せられそうに見受けられましたが、少なくともエンジンの変更が必要であると認識しております。

見落としがあれば大変恐縮なのですが、エンジンコードの改造を行わず、設定の変更のみでShortRangeAOを維持しつつCISのAO効果を反映させる手法はございますでしょうか。

お手数ではございますが、ご教示のほどよろしくお願いいたします。

[Attachment Removed]

お世話になっております。

ご指摘の内容からお察しのことかと思われますが、ShortRangeAO 使用の設定であっても CapsuleIndirectShadow は ScreenSpaceAO テクスチャに書き込まれるようですが、エンジンコードの改変なしにこの挙動を変える方法は無さそうです。

また、ShortRangeAO 使用時は ScreenSpaceAO は描画コマンドに送り届けられません。

こちらについても設定のみで変えることはできません。

(IndirectLightRendering.cpp line1344 あたりから、AmbientOcclusionMask に関する部分が参考になるかと思います)

以上のことから、ShortRangeAO を用いながら CapsuleIndirectShadow の効果を得るにはエンジンコードの改変を避けることが難しいかと思われます。

よろしくお願いいたします。

[Attachment Removed]

Nikaido 様

お世話になっております。

ご回答ありがとうございます。

また、参考コードのご共有もありがとうございます。

目的の対応を行うためにはエンジンコードの改変が避けられない点についても承知いたしました。

お忙しい中ご対応いただきありがとうございました。​

[Attachment Removed]

ご確認ありがとうございます。

本件はクローズいたします。

また何かありましたらお問い合わせ下さい。

[Attachment Removed]