お世話になっております。
現在、開発中のプロジェクトを UE5.7 から UE5.8 へ移行しており、レンダリング結果の差分要因を切り分けている段階です。
UE5.8 のリリースノートを確認したところ、に以下の記載がありました。
Default-increased the engine’s combined LUT size to 64^3 during Movie Pipeline renders.
本変更について、以下の点をご教示いただけますでしょうか。
■ 質問
1. レンダリング負荷について
64^3 は 32^3 に対してサンプル点数が8倍になると理解しております。
CombineLUTs パスの処理時間および VRAM 使用量は、実測でどの程度増加するのでしょうか。
Temporal Sample / Spatial Sample を複数設定している場合、Combined LUT はサンプルごとに再構築されるのでしょうか。それともフレームごとに1回のみでしょうか。
大量のバッチレンダリングを行う運用において、無視できる差分と考えてよろしいでしょうか。
2. 出力画像への影響について
同じシーン・同じグレーディング設定を使っても、5.7(32^3)と 5.8(64^3)で最終出力画像に差分が発生する、という理解で正しいでしょうか。
差が出やすいのは具体的にどのような領域でしょうか(暗部のグラデーション、ハイライト付近、彩度の高い領域など)。
本変更の主な意図はバンディングの低減、という理解でよろしいでしょうか。
3. 影響を受けるパスの範囲について
Combined LUT はトーンマッパー段で適用されるため、影響を受けるのは FinalImage / PostTonemapHDRColor などのディスプレイリファードなパスのみであり、PreTonemapHDRColor および GBuffer 系パス(BaseColor / Metallic / Roughness / WorldNormal 等)には影響しない、という理解で正しいでしょうか。
お手数をおかけしますが、ご知見を貸していただけますと幸いです。
よろしくお願いします。
[Attachment Removed]
問題再現:
再現手順プロジェクト内容:車両コンフィギュレーター、画像出力(コンフィグの画面を出力)
- 最大画像出力解像度:14399x8082
- シーンの構成:
- 車両データ:22000程のNaniteがオンに設定されたスタティックメッシュで構成された一つのBPアクター。表示される際に2900程のスタティックメッシュが表示され、以外のスタティックメッシュが非表示になります。
- 背景:背景はシンプルなスタティックメッシュで構成され、照明は一つのSkylightや10つのRectLightになります。
- レンダリングに関する設定
- Nanite On
- Lumen On
- HWRT On
- MRG
- 添付画像にご参考お願いします(画像内容以外の設定はデフォルトのままになります)
- 追加のポストプロセスマテリアル
- SubsurfaceColor
- Specular
- BaseColor
- WorldNormal
- Roughness
- Metallic
- Opaciy
- LightingModel
- SceneDepth
- SceneDepthWorldUnits
- SceneColor
- PreTonemapHDRColor
- PostTonemapHDRColor
- SeparateTranslucencyA
- SeparateTranslucencyRGB
- システム構成
- OS:Microsoft Windows server 2022 Standard
- GPU:NVIDIA Quadro RTX A6000 48GB
- CPU:Xeon Gold 6426Y (16C/32T) 2.5GHz
- メモリ:64GB
- OSドライブ:699GB
- UEプロジェクトドライブ:9.78TB
[Attachment Removed]
お世話になっております。
本件に関しまして各種確認させて頂きましたので以下に回答させて頂きます。
※記載頂いている添付画像に関して、ご投稿から現状確認できていない状態となるため確認できた情報から回答させて頂きます。
1. レンダリング負荷について
こちらですが、ご認識の通りLUTのサイズは8倍となっていますが、
カラーグレーディングの各値、出力デバイス、Working Color Space、r.HDR.Aces.Version、r.LUT.Sizeといった、
LUTが変更されるような更新が行われない限りキャッシュが利用されるため、Temporal / Spatial サンプルごとの再構築はない想定です。
上記のため、特に頂いたようなPC環境であれば大量のバッチでも負荷的には無視できる差の見込みとなります。
※参考までにGPUがRTX3070搭載のマシンでr.LUT.UpdateEveryFrame 1とr.LUT.AsyncCompute 0を設定した計測でCombineLUTs 64 が 0.02ms
ViewState毎にLUTは保持されるため、MRGの場合、1つのLUTがPF_FloatRGBAで64x64x64の場合2.00 MiB、
32x32x32の場合0.250 MBといったVRAM消費となり、分割が設定されている場合はその分増える可能性があります。
(サイズに関しては後述のCL詳細にも記載されています。)
2. 出力画像への影響について
変更CL50560657にも記載されておりますが、主に量子化エラー(バンディング)の対応のため変更が行われました。
ご認識頂いているように暗部のグラデーション、ハイライト付近、彩度の高い領域で変化がある可能性があります。
以前の状態に戻す場合は、Set Console Variableノードにてr.LUT.Sizeに32をお試しいただければと思います。
MoviePipeline: We default-increase the engine's combined LUT size during renders.
* Minimize potential quantization errors, which have been reported with subsample accumulation & elsewhere.
* LUT texture increases from the default 32^3 to 64^3 (~0.3 MB to ~2MB with PF_FloatRGBA)
* Validated with MRQTest suite.
3. 影響を受けるパスの範囲について
ご認識頂いているように、トーンマッパーを通過した後のデータを出力するパス(FinalImage / PostTonemapHDRColor)が影響を受け、
それ以前のパス、PreTonemapHDRColorやGBuffer系(BaseColor / Metallic / Roughness / WorldNormal 等)はLUT処理を通らないため影響を受けません。
お手数おかけしますが、上記情報を元に設定を検討頂けますと幸いです。
よろしくお願いいたします。
[Attachment Removed]
お世話になっております。
ご回答いただいた内容で設定を検討させていただきます、ありがとうございます。
またよろしくお願いします。
[Attachment Removed]
ご確認ありがとうございます。
本件はクローズとさせて頂きますが、また何かございましたらお気軽にご相談ください。
よろしくお願いいたします。
[Attachment Removed]