ハイ ダイナミックレンジ (HDR) ディスプレイに出力すると、より高いコントラストや広い色域といった機能を活用できます。ここでの目標は、表示される画像に、 「現実世界」にあるような自然光の状態により近い特性を与えることです。これは、Academy Color Encoding System (ACES) 標準への移行の一環です。また、複数の形式やディスプレイにわたって一貫した色が保持されるようにするパイプラインを実現し、別のメディアに合わせて調整することなく、使用されるソース マテリアルを 将来にわたって確実に使用できるようにする ための方法でもあります。
現在の実装では、レンダリングされたシーンの完全な処理は、ACES Viewing Transform と呼ばれるものを通じて処理されます。このプロセスは、シーン参照画像とディスプレイ参照画像を使用して機能します。
- シーン参照 画像は、露出範囲を制限することなく、ソース マテリアルの元の 線形光 の値を維持します。
- ディスプレイ参照 は、使用されているディスプレイのカラー スペースに変換された最終的な画像です。
このパイプラインを使用すると、どんな環境でも正しく発色できるように、異なるディスプレイで使用するたびにソース ファイルを編集する必要がなくなります。代わりに、出力されるディスプレイが正しい 色空間にマッピングします。
ACES Viewing Transform は、表示パイプライン内で次の順序で動作します。
- Look Modification Transform (LMT) - このプロセスでは、クリエイティブな「外観」(カラーグレーディングと補正) が適用された ACES カラーエンコード画像を取得し、レンダリングされた画像を出力します。 ACES は、Reference Rendering Transform (RRT) と Output Device Transform (ODT) を組み合わせて使用します。
- Reference Rendering Transform (RRT) - 次に、この部分はシーン参照のカラー値を取得し、それをディスプレイ参照に変換します。このプロセスを使用すると、レンダリングされた画像が特定のディスプレイに依存しなくなり、 まだ作成されていないディスプレイも含め、出力される特定のディスプレイに適した、より広い色域とダイナミック レンジを確保できるようになります。
- Output Device Transform (ODT) - 最後に、RRT の HDR データ出力を取得して、表示できるさまざまなデバイスと色空間と一致させます。このため、各ターゲットには 独自の ODT を照合する必要があります (Rec709、Rec2020、DCI-P3 など)。
ACES Viewing Transform の詳細については、ACES GitHub ページから PDF ドキュメントをダウンロードするか、このページの「参照アセット」セクションのリンクに従ってください。
HDR 出力を有効にする
コンソール変数を切り替えるか、ブループリントの GameUserSettings ノードを使用することで、実行時に HDR 出力を有効にすることができます。
ゲーム ユーザー設定コントロールは、現在の出力デバイスに最も近い使用可能な一致に自動的にクランプし、それに応じてすべてのフラグを設定します。あるいは、次のコンソール変数を使用すると、 HDR デバイスと必要な色域出力に使用可能なオプションを変更することもできます。
コンソール変数 | ディスクリプション | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
r.AllowHDR | HDR 互換のスワップ チェーンを作成し、それをサポートするプラットフォームで HDR ディスプレイ出力を有効にします。値は「0 (無効)」 と「1 (有効)」です。 | ||||||||||||||||
r.HDR.EnableHDROutput | 「1」に設定すると、スワップ チェーンが再作成され、HDR 出力が有効になります。 | ||||||||||||||||
r.HDR.Display.OutputDevice | これは出力ディスプレイ
|
||||||||||||||||
r.HDR.Display.ColorGamut | これは出力ディスプレイの色域です。
|
GameUserSettings のブループリントまたは C++ 呼び出しを設定したら、クックされたプロジェクトを実行したり、コマンドライン引数 -game mode
を使用したり、スタンドアロン ゲームモードを使用したり、
排他的全画面モードから新しいウィンドウで Play-in-Editor (PIE) を実行したり (Alt と Enter キーを同時押しするか、コンソール ウィンドウからコマンド fullscreen
を使用します) できます。
現在の HDR 出力では、境界のないウィンドウまたはウィンドウ モードは機能しません。
HDR でのロー ダイナミック レンジ (LDR) UI のサポート
これは実験的機能です。将来のリリースで変更される可能性があります。
HDR 出力が有効になっていると、ユーザー インターフェース (UI) が正しく表示されない場合があります。このため、LDR UI 構成の実験的なサポートを追加しました。この機能は、 できるだけ LDR の外観に近くなるよう試みます。とはいえ、メイン シーンの色合いと比較すると色あせて見える可能性があることから、UI を少し改善して避けるようにしてください。
これを行うには、次のコンソール変数を使用できます。
コンソール変数 | ディスクリプション |
---|---|
r.HDR.UI.CompositeMode | 1 に設定すると、HDR UI 合成が有効になり、LDR ビジュアルとブレンディングが保持されます。 |
r.HDR.UI.Level | 合成した UI の明るさを調整します。「1.5」または「2」の値を使用することをお勧めします。 |
HDR ハードウェアとセットアップの考慮事項
さまざまな種類のディスプレイやテレビがあることや、コンソールや PC で使用されることを考慮すると、HDR 出力を適切に動作させるには、特定のハードウェアを使用するか、 設定を変更する必要がある場合があります。セットアップ プロセスを実行するときに考慮すべき事項は次のとおりです。
- 転送速度を活用できるように、システムが高速 HDMI 2.0 ケーブルを使用して HDR ディスプレイに接続されていることを確認してください (HDMI 1.4 は動作するかもしれませんが、コンテンツの表示に問題が発生する可能性があります)。 すべての HDMI ポートが HDMI 2.0 および HDR に対応しているわけではありません。不明な点がある場合は、ディスプレイのマニュアルを参照してください。
- TV ポートが HDR 対応になっていることを確認します。場合によっては、テレビやディスプレイの設定に「HDMI Deep Color (HDMI ディープカラー)」または「Enhanced Format (拡張フォーマット)」として表示されていることがあります。不明な点がある場合は、ディスプレイのマニュアルを参照してください。
- PS4 などの一部のコンソールでは、HDR 出力が適切に機能するために、システム設定の [Enable HDCP (HDCP を有効にする)] を無効にしなければならない場合があります。
- 一部のディスプレイでは、正しい出力を得るためにディスプレイ設定を調整する必要がある場合もあります。
- NVIDIA GPU の場合は、NVIDIA コントロール パネルを使用して、ディスプレイ解像度の出力カラー形式を RGB に、出力カラー深度を 10 ビット または 12 ビット に調整します。ハードウェアによっては、特定のオプションのみが利用できる場合があります。不明な点がある場合は、ディスプレイのマニュアルを参照してください。
- NVIDIA GPU の場合は、NVIDIA コントロール パネルを使用して、ディスプレイ解像度の出力カラー形式を RGB に、出力カラー深度を 10 ビット または 12 ビット に調整します。ハードウェアによっては、特定のオプションのみが利用できる場合があります。不明な点がある場合は、ディスプレイのマニュアルを参照してください。
注意事項と制限事項
- デフォルトでは、LDR コントロールとの互換性が低いため、HDR 出力中はフィルム マッピング カーブは無効になっています。
- 現在、1000 ニットおよび 2000 ニットのディスプレイ出力のパスのみが実装されています。
- D3D11 の制限により、HDR 出力は排他的全画面モードのみサポートされています。Windows 10 で D3D12 がサポートされていることから、これを拡張すると HDR 出力用の個別のビューポートを有効にできる可能性があります。Mac 上の実装では現在、これがすでにサポートされています。