HDRやSDRにおけるトーンマッピング前後の処理について

この記事の内容はUnrealEngine 5.3.2で検証しました。


SDRとHDRそれぞれにおけるトーンマッピング前後でどのような処理が行われているかを、実際にコードを確認しながらまとめました。

HDRのほうはACESのトーンマッピングがそのまま実装されていて、SDRのほうはACESを若干アレンジしたACES風トーンマッピング(Filmic Tonemapper)が実装されています。
HDRとSDRの絵を近づけようとする場合、基本的にはSDRはFilmic Tonemapperのパラメーターは触らずにデフォルト値で運用したほうが無難に思えます。
ただ、UE5.1からHDRのトーンカーブもパラメーター(コンソールコマンド)により編集ができるようになっているので、HDRとSDRどちらもトーンカーブの調整は可能です。
調整する場合はHDRとSDRのどちらかをどちらかに近づけるために調整するというのが個人的には良いのではないかと思います。
調整できるパラメーターは以下です。
r.HDR.Aces.SceneColorMultiplier 光量スケール
r.HDR.Display.MaxLuminance ショルダー
r.HDR.Display.MidLuminance ミッド(スロープ)
r.HDR.Display.MinLuminanceLog10 トー

またHDRのとき、ExpandGamutの処理はオフで運用したほうが良いそうです。

間違いや気になる内容がある場合は、お知らせいただけるとありがたいです。

SDR

WhiteBalance : Linear sRGB
ColorExpand : AP1(PostProcessVolumeのExpandGamut)
ColorCorrectAll : AP1(PostProcessVolumeのColorGrading)

BlueCorrection : AP1
FilmToneMap : AP1(ACES風トーンスケール、パラメーターを変更するとACES風ではなくなる)
Legacy LDR LUT : sRGB
LinearToSrgb : AP1 → sRGB(ガンマ補正)

HDR

WhiteBalance : Linear sRGB
ColorExpand : AP1(PostProcessVolumeのExpandGamut、HDRでは使わないほうが良いと言われた)
ColorCorrectAll : AP1(PostProcessVolumeのColorGrading)

ACESOutputTransforms1000 : AP1 → AP0
  outputTransform : AP0
    rrt_sweeteners : Glow ModuleとRed ModifierがAP0 → Global DesaturationがAP1
    ssts : AP1(ACESトーンスケール、カーブはエディタから変形できない)

LinearToST2084 : AP0 → ST2084(Inverse EOTF )(下画像はプロットしたもの)


参考:【HDRと色彩管理5】ゲームにおけるHDR

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください