Operating The Cluster
レンダリング パス

UnityでのHDR (High Dynamic Range) レンダリング

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

通常のレンダリングでは,ピクセルの赤,緑,青は0から1の範囲の小数点数により表現され,0は強度ゼロであり,1はディスプレイ デバイスの最大の強度を意味します。これを使用するのは簡単である一方で,現実世界の場面でのライティングの働きを正確に反映しません。人間の目は,近隣のライティング条件に合わせようとするため,もし暗く照らされた部屋で白く見えるものでも,昼間の明るい光で灰色に見えるものほどに実際は明るくない場面があります。さらに目はレンジの低いほうが高い方よりも明るさの差に敏感です。

レンダリングにてピクセル値の範囲がより正確に現実世界の場面にあるようなライトのレベルに反映されるように調整した場合はより魅力的なエフェクトを得られます。たとえこれらの値は究極的にはディスプレイ デバイスで利用可能な範囲にマッピングを戻す必要があるとはいえ,中間的な演算(Unityのイメージエフェクトのような)によって本物に近い結果が得られます。グラフィックスの内部表現で0から1の範囲外を許容することは High Dynamic Range (HDR) レンダリングにとって重要です。

HDRでの作業

HDRはカメラ コンポーネントの設定を使用して各々のカメラで別々に有効化します:-

HDRが有効化な時,シーンはピクセルが0から1の範囲外に関連付け出来る HDR画像バッファにレンダリングされます。次にバッファは HDR ブルーム といったイメージエフェクトを使用してポストプロセッシングされます。 トーンマッピング にてイメージエフェクトにより HDR 画像を標準の low dynamic range (LDR) 画像に変換して表示されます。LDRへの変換はイメージエフェクト パイプラインのどこかの時点で適用される必要がありますが,LDRのみのイメージエフェクトが後から適用するのであれば最終ステップである必要はありません。簡便のため,いくつかのイメージエフェクトはHDRエフェクトを適用した後に自動的にLDRに変換します(以下のスクリプティングを参照下さい)。

トーンマッピング

トーンマッピングは HDR 値 を LDR 範囲に戻すマッピングの処理です。多くの異なるテクニックがあり,ひとつのプロジェクトで役立つことが他でベストとは限りません。Unity にはバラエティに富んだイメージエフェクトが含まれています。これを使用するためには $Assets -> Import Package -> Image Effects (Pro Only) を選択し,シーンのカメラを選択して Component -> Image Effects ->ToneMapping$$ を選択します。トーンマッピングの種類については詳細な説明については イメージエフェクトのドキュメント を参照して下さい。

極めて明るいシーンを HDR でレンダリング。トーンマッピングなしではほとんどのピクセルは範囲外。
極めて明るいシーンを HDR でレンダリング。トーンマッピングなしではほとんどのピクセルは範囲外。
前述と同じシーン。ただし,トーンマッピング エフェクトによりほとんどの強度を満足できる範囲に移動しています。 Adaptive であるトーンマッピング によりこれを超えてブレンドすることさえ出来て,この画像はキャプチャリング メディアの Adaptive 特性をシミュレートします(目,カメラ)。
前述と同じシーン。ただし,トーンマッピング エフェクトによりほとんどの強度を満足できる範囲に移動しています。 Adaptive であるトーンマッピング によりこれを超えてブレンドすることさえ出来て,この画像はキャプチャリング メディアの Adaptive 特性をシミュレートします(目,カメラ)。

HDR ブルーム および グロー

HDR の使用により,ポストプロセッシングをより制御できます。 LDR ブルームは残念な副作用があり,シーンの多くのエリアに,例えばピクセル強度が 1.0 より小さくても ブラー をかけます。HDR を使用することで,強度が 1 より大きいエリアのみをブルームすることが出来ます。これによって,より望ましい結果につながり,シーンの非常に明るい要素が隣接するピクセルに染み出します。この内蔵 ‘ブルーム および レンズフレア’ エフェクトは HDR もサポートします。カメラにアタッチするには Assets -> Import Package -> Image Effects (Pro Only) を選択し,シーンのカメラを選択して Component -> Image Effects ->Bloom を選択します。’ブルーム’ エフェクトの詳細な説明については イメージエフェクトのドキュメント を参照して下さい。

車のウィンドウの太陽の反射は 1.0 より遥かに大きい強度の値です。カメラが HDR を有効にしていればこの強度がキャプチャできるので,ブルームでこの部分だけを検知して グロー させることが出来ます。
車のウィンドウの太陽の反射は 1.0 より遥かに大きい強度の値です。カメラが HDR を有効にしていればこの強度がキャプチャできるので,ブルームでこの部分だけを検知して グロー させることが出来ます。
HDR を有効にしない場合,車のウィンドウはグローなしで残ります。グローを追加する唯一の方法は強度の閾値を下げることですが,そうすると画像の意図しない場所も グロー するようになってしまいます。
HDR を有効にしない場合,車のウィンドウはグローなしで残ります。グローを追加する唯一の方法は強度の閾値を下げることですが,そうすると画像の意図しない場所も グロー するようになってしまいます。

HDR の長所

  • カラーが高い強度のエリアで失われない
  • ブルーム および グロー の優れたサポート
  • 低い周波数のエリアでの バンディング の削減

HDR の短所

  • フローティング ポイント バッファを使用(レンダリングが遅くなり,より多くの VRAM を必要とする)
  • ハードウェア アンチエイリアスはサポートされていない(ただし アンチエイリアス(ポストエフェクト) を使用してエッジをスムージングすることは出来ます)
  • 全てのハードウェアではサポートされていない

使用するうえでの注意

Forward Rendering

Forward Renderingモードで HDR はイメージエフェクトが存在する場合のみサポートされます。これはパフォーマンスへの配慮によります。もしイメージエフェクトが存在しないのであればトーンマッピングは存在せず,そして強度の切捨ては発生します。この状況でシーンはバックバッファに直接レンダリングされ, HDR はそこではサポートされていません。

Deferred Rendering

HDR モードではライトのプリパス バッファはフローティング ポイント バッファ として割り当てられます。これによりライティング バッファにおけるバンディングを抑えます。Deferred Renderingの場合,HDR は イメージエフェクトが存在しなくてもサポートされます。

スクリプティング

ImageEffectTransformsToLDR 属性をイメージエフェクトのスクリプトに追加して,ターゲットバッファは HDR でなく LDR であるべきということを示すことが出来ます。要するに,スクリプトは HDR イメージエフェクトを適用した後に LDR に変換することが出来ます。

Operating The Cluster
レンダリング パス