High Dynamic Range 対応ディスプレイへの出力

High Dynamic Range 対応ディスプレイへの出力およびオプションの概要

Windows
MacOS
Linux

高いコントラストと幅広い色域などの機能を使って、アンリアル エンジン 4 で High Dynamic Range (HDR) 対応ディスプレイへ出力できるようになりました。表示された画像に 「現実世界」で体感する自然光の状態ような特性を出すことが目標です。これは、複数のフォーマットとディスプレイ上で、確実に色に整合性を持たせるパイプラインである Academy Color Encoding System (ACES) スタンダードへの動きの表れでもあり、 他の媒体用に色を調節せずに使用されたソース マテリアルが 古くならない ようにする手段でもあります。

Low Dynamic Range (LDR)

High Dynamic Range (HDR)

純粋にデモ用にシミュレーションした画像です。LDR スクリーンでは HDR の違いを表現することはできません。

現在の実装では、レンダリングされたシーンの処理は、いわゆる ACES Viewing Transform がすべて行っています。処理の工程では、シーン基準画像とディスプレイ基準画像が使用されます。

  • シーン リファード (Scene-referred) 画像は、露出範囲を制限することなくソース マテリアルのオリジナル リニア ライト 値を維持します。

  • ディスプレイ リファード (Display-referred) 画像は、使用中のディスプレイのカラースペースへ変換される最終画像です。

このパイプラインを使用すると、ディスプレイを変えるたびにオリジナルのソース ファイルを編集しなくても必ず正しい色合いがでます。代わりに、出力先のディスプレイが 正しい色空間にマップします。

ACES Viewing Transform は、表示パイプラインで以下の順序で機能します。

  • Look Modification Transform (LMT) - クリエイティブな "外見" (カラー グレーディングおよび補正) を適用した ACES カラー エンコード画像を受け取り、 Reference Rendering Transform (RRT) および Output Device Transform (ODT) と組み合わせて ACES でレンダリングされた画像を出力します。

  • Reference Rendering Transform (RRT) - 次に、シーン リファード画像のカラー値を受け取り、それをディスプレイ リファード画像に変換します。この処理では、レンダリングされた画像を特定のディスプレイだけに依存しないようにします。 そして、出力先の指定されたディスプレイに合わせて、広めの範囲とダイナミックレンジが保証されます。

  • Output Device Transform (ODT) - 最後に、RPT の HDR Data 出力を受け取り、各種デバイスと色空間に一致させます。このため、各ターゲットはそれぞれの ODT を一致させる必要があります (Rec709、Rec2020、DCI-P3 など)。

ACES Viewing Transform の追加情報については、ACES GitHub から PDF ドキュメントをダウンロードすることができます。または、本ページの『リファレンス』セクションをご覧ください。

HDR Output を有効にする

HDR 出力はランタイム時にコンソール変数を切り替えるか、ブループリントの GameUserSettings ノードを使って有効にします。

HDRGameUserSettings.png

Game User Settings コントロールは、利用できる最も近くの出力デバイスと一致するように自動的にクランプし、すべてのフラグもそれに合わせて設定します。もしくは、以下のコンソール変数でも、 HDR デバイスおよび必要なカラー範囲出力のオプションの有効化や変更ができます。

コンソール変数

説明

r.HDR.EnableHDROutput

1 に設定するとスワップ チェーンを作成し、HDR 出力が有効になります。

r.HDR.Display.OutputDevice

出力ディスプレイのデバイス フォーマットです。

0

sRGB (LDR) (デフォルト)

1

Rec709 (LDR)

2

明示的なガンマ マッピング (LDR)

3

ACES 1000-nit ST-2084 (Dolby PQ) (HDR)

4

ACES 2000-nit ST-2084 (Dolby PQ) (HDR)

5

ACES 1000-nit ScRGB (HDR)

6

ACES 2000-nit ScRGB (HDR)

r.HDR.Display.ColorGamut

出力ディスプレイの色域です。

0

Rec709 / sRGB, D65 (デフォルト)

1

DCI-P3, D65

2

Rec2020 / BT2020, D65

3

ACES, D60

4

ACEScg, D60

GameUserSettings のブループリントまたは C++ コールを設定したら、クック済みのプロジェクトの実行、コマンドライン引数 -game mode、Standalone ゲームモードの使用、 あるいは排他的全画面 ([Alt] + [Enter] またはコンソール ウィンドウでコマンド fullscreen を押します) での Play-in-Editor (PIE) の使用が可能になります。

現在のところ、縁なしウィンドウあるいはウィンドウ モードは HDR 出力には機能しません。

HDR での Low Dynamic Range (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 出力を正しく動かすための設定変更が必要になります。以下は、設定を行う際の考慮事項です。

  • 転送速度を速めるために、お使いの HDR ディスプレイが高速 HDMI 2.0 ケーブルで接続されていることを確認してください。(HDMI 1.4 も使用できますが、コンテンツの表示に問題が生じる可能性があります。) すべての HDMI ポートが HDMI 2.0 および HDR に対応しているわけではありません。ディスプレイの取扱説明書で今一度ご確認ください。

  • TV ポートの HDR は必ず有効にしてください。テレビまたはディスプレイ設定の中に "HDMI Deep Color" や "Enhanced Format" として表示されていることがあります。ディスプレイの取扱説明書で今一度ご確認ください。

  • PS4 など、コンソールによっては HDR 出力を正しく機能させるために Enable HDCP を無効にしなければいけない場合があります。

  • ディスプレイによっては、正しく出力するためにディスプレイ設定の調節が必要な場合があります。

    • NVIDIA GPU の場合は、NVIDIA コントロール パネルで、ディスプレイ解像度の Output Color Format を RGB に、Output Color Depth は 10-bit または 12-bit に設定します。ハードウェアによっては、 使用できるオプションが限れている場合があります。ディスプレイの取扱説明書で今一度ご確認ください。

      画像をクリックしてフルサイズで表示

注意事項と考慮事項

  • フィルム マップ カーブは LDR コントロールとの相性が悪いため、HDR 出力中はデフォルトで無効されています。

  • 現在実装されているパスは、1000-nit および 2000-nit ディスプレイ出力用のみです。

  • D3D11 の場合は、HDR への出力が排他的全画面のみに制限されています。D3D12 がサポートされている Windows 10 では、おそらく HDR 出力の個々のビューポートを有効にできるように拡張されると思われます。Mac では既に実装はサポートされています。

リファレンス

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback