通常のレンダリングでは,ピクセルの赤,緑,青は0から1の範囲の小数点数により表現され,0は強度ゼロであり,1はディスプレイ デバイスの最大の強度を意味します。これを使用するのは簡単である一方で,現実世界の場面でのライティングの働きを正確に反映しません。人間の目は,近隣のライティング条件に合わせようとするため,もし暗く照らされた部屋で白く見えるものでも,昼間の明るい光で灰色に見えるものほどに実際は明るくない場面があります。さらに目はレンジの低いほうが高い方よりも明るさの差に敏感です。
レンダリングにてピクセル値の範囲がより正確に現実世界の場面にあるようなライトのレベルに反映されるように調整した場合はより魅力的なエフェクトを得られます。たとえこれらの値は究極的にはディスプレイ デバイスで利用可能な範囲にマッピングを戻す必要があるとはいえ,中間的な演算(Unityのイメージエフェクトのような)によって本物に近い結果が得られます。グラフィックスの内部表現で0から1の範囲外を許容することは High Dynamic Range (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 の使用により,ポストプロセッシングをより制御できます。 LDR ブルームは残念な副作用があり,シーンの多くのエリアに,例えばピクセル強度が 1.0 より小さくても ブラー をかけます。HDR を使用することで,強度が 1 より大きいエリアのみをブルームすることが出来ます。これによって,より望ましい結果につながり,シーンの非常に明るい要素が隣接するピクセルに染み出します。この内蔵 ‘ブルーム および レンズフレア’ エフェクトは HDR もサポートします。カメラにアタッチするには Assets -> Import Package -> Image Effects (Pro Only) を選択し,シーンのカメラを選択して Component -> Image Effects ->Bloom を選択します。’ブルーム’ エフェクトの詳細な説明については イメージエフェクトのドキュメント を参照して下さい。
Forward Renderingモードで HDR はイメージエフェクトが存在する場合のみサポートされます。これはパフォーマンスへの配慮によります。もしイメージエフェクトが存在しないのであればトーンマッピングは存在せず,そして強度の切捨ては発生します。この状況でシーンはバックバッファに直接レンダリングされ, HDR はそこではサポートされていません。
HDR モードではライトのプリパス バッファはフローティング ポイント バッファ として割り当てられます。これによりライティング バッファにおけるバンディングを抑えます。Deferred Renderingの場合,HDR は イメージエフェクトが存在しなくてもサポートされます。
ImageEffectTransformsToLDR 属性をイメージエフェクトのスクリプトに追加して,ターゲットバッファは HDR でなく LDR であるべきということを示すことが出来ます。要するに,スクリプトは HDR イメージエフェクトを適用した後に LDR に変換することが出来ます。