Version: Unity 6.0 (6000.0)
言語 : 日本語
HDR
URP の HDR 出力デバッグビュー

URP の HDR 出力

ハイダイナミックレンジ (HDR) コンテンツは、標準定義のコンテンツよりも広色域で輝度範囲が広くなります。

URP は、HDR 機能をサポートするディスプレイに HDR コンテンツを出力できます。

ノート: HDR 出力に使用できるのはリニア色空間のみです。Unity の色空間の詳細については、色空間 を参照してください。

HDR 出力の実装

Unity の HDR 出力は以下のステップに分けられており、常にこの順序で行われます。

  1. トーンマッピング
  2. 伝達関数

トーンマッピング

HDR 出力処理の最初のステップはトーンマッピングです。このステップでは、ターゲットディスプレイのダイナミックレンジに応じて、シーンの露出と色相のバランスをとります。ダイナミックレンジは以下のプロパティによって決まります。

  • 最低明度
  • 最高明度
  • Paper White 明度

これらのプロパティの詳細については、トーンマッピングにおける重要な値 を参照してください。

同時に、Unity は色空間の変換を実行します。色はデフォルトの Rec. 709 色空間からターゲットディスプレイの色空間に変換されます。これにより、シーン内の色がターゲットディスプレイのより広色域にマップされ、ディスプレイで利用可能なすべての色域を利用できるようになります。

詳細については、URP の HDR トーンマッピングHDR トーンマッピング設定 を参照してください。

伝達関数

HDR 出力の 2 つ目のステップは伝達関数です。伝達関数はレンダリングプロセスの出力を特定のディスプレイの明度レベルに変換します。Unity はディスプレイに適した伝達関数を決定し、それを使用してディスプレイが求める基準に合わせて出力をエンコードします。これにより、ガンマに正しいレベルの精度を使用し、ターゲットディスプレイ上で正確な露出レベルを作成できます。

URP の HDR トーンマッピング

Allow HDR Display Output を有効にしたら、HDR 入力の トーンマッピング 設定を行う必要があります。

これらの設定を効果的に行うには、トーンマッピングに関連する特定の値によって HDR 出力の視覚的特徴がどのように決定されるかを理解する必要があります。

トーンマッピングにおける重要な値

HDR ディスプレイの機能を適切に利用するには、Tonemapping 設定でターゲットディスプレイの機能、特に以下の 3 つの値 (ニット単位) を考慮する必要があります。

  • 最低明度
  • 最高明度
  • Paper White 値:この値は、ディスプレイ上に表示される白い紙の表面の明度を表し、ディスプレイ全体の明度を決定します。

ノート: ディスプレイの Paper White 値が同じでも、ローダイナミックレンジ (LDR) とハイダイナミックレンジ (HDR) のコンテンツは同じ明るさで表示されません。これは、ディスプレイが明度レベルを上げるために LDR コンテンツに余分な処理を適用するためです。このため、アプリケーションにキャリブレーションメニューを実装することが推奨されます。

ユーザーインターフェースの使いやすさは正確な Paper White 値に依存する

Unlit マテリアルはライティングの変更に反応しないため、ユーザーインターフェースには Unlit マテリアルを使用するのが一般的です。Unlit マテリアルのレンダリング計算では、HDR ディスプレイを特にターゲットとしていない場合、0 から 1 の間の値で明度を定義します。この場合、値 1 は白、値 0 は黒を表します。

ただし、HDR モードでは、URP は Paper White 値を使用して Unlit マテリアルの明度を決定します。これは、HDR 値が 0 から 1 の範囲を超える可能性があるためです。

そのため、HDR モードでは Paper White の値によって UI 要素の明度が決まります。特に、白い要素の場合は明度が Paper White 値と一致します。

HDR トーンマッピングの設定

トーンマッピングモードは、Tonemapping Volume コンポーネント 設定で選択して調整できます。HDR トーンマッピング設定の一部はスクリプトを使用して調整することもできます。詳細については、HDROutputSettings API を参照してください。

Allow HDR Display Output を有効にすると、HDR トーンマッピングオプションが Volume コンポーネントに表示されます。

Tonemapping

URP には 2 つの Tonemapping モードがあります。NeutralACES です。各トーンマッピングモードには固有のプロパティがいくつかあります。

  • Neutral モードは、トーンマッパーによるコンテンツのカラーグレーディングを行う必要がない場合に特に適しています。
  • ACES モードは、長編映画に用いられる ACES 色空間を使用します。映画のようなコントラストの強い仕上がりになります。

各モードの詳細は、トーンマッピングボリュームオーバーライドのリファレンスの HDR 出力セクション を参照してください。

The HDROutputSettings API

HDROutputSettings API を使用して、HDR モードの有効/無効の切り替えと、特定の値 (Paper White など) のクエリを行うことができます。

これらの値は、レンダリングデバッガーの HDR 出力ディスプレイ表にも表示されます。この表にアクセスするには、Window > Analysis > Render Pipeline Debugger > Rendering > HDR Output の順に移動します。

HDR 出力でのオフスクリーンレンダリングの使用

オフスクリーンレンダリング技術を使用する場合、シーン内のすべてのカメラが直接ディスプレイに出力するわけではありません。例えば、出力をレンダーテクスチャにレンダリングする場合などです。このような場合、ポストプロセスをレンダリングする前にカメラの出力を使用します。

Unity はオフスクリーンレンダリング技術を使用するカメラの出力に HDR 出力処理を適用しません。これにより、HDR 出力処理がカメラの出力に 2 度適用されるのを防ぎます。

HDR 出力での標準ダイナミックレンジ (SDR) レンダリングの使用

HDR 出力は、トーンマッピングと色エンコードに正しい形式のピクセル値を提供するために HDR レンダリングに依存します。HDR トーンマッピング後の値はニット単位で、1 を超えます。これは、ピクセル値が 0 から 1 の範囲に収まる SDR レンダリングとは異なります。そのため、HDR 出力で SDR レンダリングを使用すると、レンダリングされた画像の外観が露出不足または彩度過多になる可能性があります。

HDR 出力を有効にした状態で、カメラごとに SDR レンダリングを使用できます。これは、例えばミニマップのレンダリングなど、ライティングを使用しないマテリアルのみをレンダリングするカメラに役立ちます。ただし、HDR 出力で SDR レンダリングを使用するにはいくつかの制限があります。

HDR 出力 で SDR レンダリングを使用する場合に正しいレンダリングを行うには、ポストプロセス後にレンダーパスが発生しないようにする必要があります。これには、ポストプロセス後にレンダーパスを挿入する URP のビルトインエフェクトが含まれます。そのため、HDR 出力の SDR レンダリングは以下の機能との互換性がありません。

2D Renderer

2D Renderer に HDR 出力の SDR レンダリングを使用する場合、ポストプロセスがオフなっていることを確認してください。

プラットフォームの互換性

URP は以下のプラットフォームでのみ HDR 出力をサポートします。

  • DirectX 11、DirectX 12、または Vulkan を搭載した Windows
  • Metal を使用する macOS デバイス
  • iOS 16 以降のデバイス
  • コンソール
  • HDR をサポートする XR デバイス
  • Vulkan および GLES を使用する Android デバイス

ノート: DirectX 11 はプレイヤーでの HDR 出力のみをサポートします。エディターでの HDR 出力はサポートしません。

HDR
URP の HDR 出力デバッグビュー