お世話になっております。
<br/>
DeferredShadingRenderer.cpp にて行われる PrepareForwardLightData について質問となります。
<br/>
UE 5.5.1 から UE 5.6.1 へのアップデートを行ったところ DirectionalLight を 3 つ以上配置したシーンにて、
MultipleDirLightsConflictForForwardShading の Warning が画面に表示されるようになりました。
<br/>
FDeferredShadingSceneRenderer::Render からコールされる PrepareForwardLightData に対して、
bCullLightsToGrid が true 固定で渡されており、Deferred、Forward 関係なく
Light の ForwardShadingPriority のチェックが行われているように見受けられます。
<br/>
ForwardShadingPriority を設定することで Warning の回避は可能ではあるのですが、このチェックは正しいものでしょうか?
GLightCullingQuality が使われなくなっている点も気になっております。
<br/>
ご確認、宜しくお願い致します。
Steps to Reproduce
UE 5.6.1 + Deferred 環境にて、Directional Light を 3 つ以上配置する
お世話になっております。
> ForwardShadingPriorityを適切に設定頂く事が望ましい
経緯、および、Priority 設定推奨の旨、承知致しました。
今後、値を設定する方向で進行できればと思います。
本件、ローズ頂いて問題ございません。
ご対応、ありがとうございました。
お世話になっております。
本件確認させて頂いたところ、UE5.6から常にLight Grid処理が実行される仕様となったためForwardShadingPriorityを適切に設定頂く事が望ましいです。
※モバイルレンダラーの場合にはbCullLightsToGridがFalseとなるパスが存在します。
こちらの背景としましては、まずLight Gridの有無が切り替わる事によるライティングパスの複雑化や不具合の発生が発生していたことから、常に実行する仕様が検討され、変更に至っておりました。
従来必要に応じて条件が追加されてきた経緯があり、こちらはCL37526907でライティングまたはRaytracingが有効な場合に実行するよう変更が行われておりますが、修正前を見ていただくと必要とされていた条件が確認できます。
既に実装からご確認頂いているかもしませんが、Directional Lightが複数の場合はメインとなるDirectional Lightを選択する処理がありますので、明示化させるためにもプライオリティを設定することが望ましいです。
※CL37564740でGatherLightsAndComputeLightGridがPrepareForwardLightDataに変更、CL37684921でVSMの確認用にライティングの条件も撤廃、といった流れがあります
そして上記の経緯からGLightCullingQuality(r.LightCulling.Quality)は現在使用していない設定となっておりました。
混乱を招いてしまい申し訳ございませんが、現状は上記を踏まえてプライオリティを設定する方向で検討頂けますと幸いです。
よろしくお願いいたします。