
ハイダイナミックレンジレンダリング(HDRRまたはHDRレンダリング)は、ハイダイナミックレンジライティングとも呼ばれ、ハイダイナミックレンジ(HDR)で実行されるライティング計算を使用してコンピュータグラフィックスシーンをレンダリングします。これにより、コントラスト比の制限によって失われる可能性のあるディテールを保持できます。ビデオゲームやコンピュータ生成画像、映画、視覚効果は、より単純なライティングモデルよりもリアルなシーンを作成できるため、この恩恵を受けます。HDRRは、最初のHDR対応ディスプレイが登場したのは2010年代になってからだったため、当初はレンダリングされた画像を標準ダイナミックレンジ(SDR)ディスプレイにトーンマッピングするために必要でした。しかし、最新のHDRディスプレイが利用できる場合は、代わりにHDRRをさらに高いコントラストとリアリティで表示することができます。
グラフィックプロセッサ会社Nvidiaは、 HDRRの動機を3つの点にまとめています。明るいものは本当に明るく、暗いものは本当に暗く、どちらにもディテールが見えるということです。[ 1 ]
コンピュータグラフィックスにおける高ダイナミックレンジイメージング(HDRI)の使用は、1985年にグレッグ・ウォードがオープンソースのレンダリングおよび照明シミュレーションソフトウェアRadianceで導入し、高ダイナミックレンジ画像を保持する最初のファイル形式を作成しました。HDRIは、限られた計算能力、ストレージ、およびキャプチャ方法によって10年以上停滞していました。HDRIを実用化する技術が開発されたのはごく最近のことです。[ 2 ] [ 3 ]
1990年、中目栄八郎らは、現実的なシミュレーションにおいて高ダイナミックレンジ処理の必要性を強調した運転シミュレーターの照明モデルを発表した。[ 4 ]
1995年、グレッグ・スペンサーはSIGGRAPHで「デジタル画像のための物理ベースのグロー視覚効果」を発表し、人間の目におけるフレアとブルーミングの定量的モデルを提供した。[ 5 ]
1997年、ポール・デベベックはSIGGRAPHで「写真から高ダイナミックレンジ放射輝度マップを復元する」[ 6 ]を発表し、翌年には「合成オブジェクトを実写シーンにレンダリングする」 [ 7 ]を発表しました。これらの2つの論文は、ある場所のHDRライトプローブを作成し、そのプローブを使用してレンダリングされたシーンを照らすためのフレームワークを確立しました。
HDRIとHDRL(高ダイナミックレンジ画像ベース照明)は、それ以来、3Dオブジェクトを現実の環境に挿入する際に、リアルな照明ソリューションを提供するためにライトプローブデータが必要となる3Dシーンの多くの場面で使用されてきました。
ゲームアプリケーションでは、 1997 年のRiven: The Sequel to Mystが、スペンサーの論文に直接基づいた HDRI ポストプロセス シェーダーを使用しました。[ 8 ] 2003 年のE3の後、Valve は、 Source エンジンで都市景観を高ダイナミック レンジでレンダリングするデモ ムービーを公開しました。 [ 9 ]この用語は、2004 年の E3 まで再び一般的に使用されることはありませんでしたが、Epic Games がUnreal Engine 3を披露し、Valve が2005 年にHalf-Life 2: Lost Coastを発表したことで、 OGRE 3Dなどのオープンソース エンジンやNexuizなどのオープンソース ゲームと相まって、より注目を集めるようになりました。
2010年代に入ると、HDRディスプレイが初めて登場しました。HDRRはコントラスト比が高いため、トーンマッピングを低減または排除することができ、よりリアルな画像を実現します。
HDRレンダリングの主な利点の1つは、コントラスト比の高いシーンのディテールが保持されることです。HDRRがない場合、暗すぎる部分は黒に、明るすぎる部分は白に切り取られます。ハードウェアでは、これらはそれぞれ純粋な黒と純粋な白に対して、浮動小数点値0.0と1.0で表現されます。
HDRレンダリングのもう1つの側面は、知覚的な手がかりを追加することで、見かけの明るさを増大させることです。HDRレンダリングは、反射や屈折などの光学現象、およびガラスなどの透明な素材における光の保持方法にも影響を与えます。LDRレンダリングでは、シーン内の非常に明るい光源(太陽など)の明るさは1.0に制限されます。この光が反射すると、結果は1.0以下でなければなりません。しかし、HDRレンダリングでは、非常に明るい光源は、実際の値をシミュレートするために、明るさを1.0以上にすることができます。これにより、表面からの反射が、明るい光源に対して現実的な明るさを維持できるようになります。
人間の目は、約 1,000,000:1 という非常に高いダイナミックコントラスト比のシーンを知覚できます。順応は、虹彩の調整やゆっくりとした化学変化によって部分的に達成され、これには時間がかかります (例えば、明るい照明から真っ暗な照明に切り替わったときに、見えるようになるまでの遅延)。任意の時点での目の静的範囲は、約 10,000:1 と小さくなります。しかし、これはほとんどのディスプレイ技術の静的範囲よりも依然として高いです。[ 10 ]
多くのメーカーが非常に高いコントラスト比を謳っているものの、プラズマディスプレイ、液晶ディスプレイ、CRTディスプレイは、現実世界で見られるコントラスト比のごく一部しか実現できず、しかもこれらの数値は通常、理想的な条件下で測定されたものです。実際のコンテンツが通常の視聴条件下で同時に得られるコントラスト比は、これよりもはるかに低くなります。
LCDモニターのダイナミックレンジをある程度向上させるには、暗いシーンでバックライトを自動的に下げる方法があります。例えば、LGはこの技術を「デジタルファインコントラスト」と呼んでいます[ 11 ]。サムスンはこれを「ダイナミックコントラスト比」と表現しています。別の方法としては、明るいLEDバックライトと暗いLEDバックライトのアレイを使用する方法があり、例えばBrightSide Technologiesが開発したシステムなどが挙げられます[ 12 ] 。
OLEDディスプレイは、LCDよりも優れたダイナミックレンジ性能を持ち、プラズマディスプレイと同等の性能を持ちながら、消費電力は低くなっています。Rec . 709はHDTVの色空間を定義し、Rec. 2020は超高精細テレビ向けに、より広いがまだ不完全な色空間を定義しています。
2010年代以降、OLEDやその他のHDRディスプレイ技術により、HDRRを標準ダイナミックレンジにトーンマッピングする必要性が減少したり、なくなったりしました。
光のにじみは、人間のレンズ内での光の散乱によって生じ、人間の脳はそれをシーン内の明るい点として解釈します。例えば、背景の明るい光が前景の物体ににじみ出ているように見えます。これを利用して、明るい点が実際よりも明るく見える錯覚を作り出すことができます。[ 5 ]
フレアとは、人間の水晶体で光が回折し、小さな光源から光線が放射される現象であり、色収差などの効果も生じる。点光源は視角が小さいため、フレアが最も顕著に現れる。[ 5 ]
一般的なディスプレイデバイスは、太陽ほど明るい光を表示することはできず、また室内の照明によって真の黒を表示することもできません。そのため、HDRレンダリングシステムは、レンダリングされた状況で人間の目が見るであろうダイナミックレンジ全体を、デバイスの性能に合わせてマッピングする必要があります。このトーンマッピングは、仮想シーンカメラが捉える映像を基準に行われ、暗い洞窟の中で直射日光に照らされた空気中の塵や、目の中での散乱などをシミュレートするなど、複数のフルスクリーン効果と組み合わせて行われます。
トーンマッピングとブルーミングシェーダーを併用することで、これらの効果をシミュレートするのに役立ちます。
グラフィックレンダリングにおけるトーンマッピングとは、高ダイナミックレンジ(照明計算が行われる範囲)の色を、表示デバイスの性能に合わせた低ダイナミックレンジにマッピングする技術です。通常、このマッピングは非線形であり、暗い色には十分なダイナミックレンジを維持し、明るい色のダイナミックレンジを徐々に制限します。この技術を用いることで、全体的にディテールとコントラストに優れた、視覚的に魅力的な画像が得られることがよくあります。トーンマッピングには様々な演算子が存在し、コンピュータゲームで使用される単純なリアルタイム方式から、人間の視覚系の知覚反応を模倣しようとする高度な技術まで多岐にわたります。
より高いダイナミックレンジ機能を備えたHDRディスプレイは、HDRR後に必要となるトーンマッピングを削減または排除できるため、よりリアルな画像を実現できます。
現在、HDRRは主にPCゲームで普及しているが、以前はマイクロソフトのXbox 360で普及していた。ソニーのPlayStation 3でもプレイ可能です。PlayStation 2、GameCube、Xbox、Amigaシステムでもシミュレーションされています。Sproing Interactive Mediaは、 Wii用のAthenaゲームエンジンがHDRRをサポートすると発表し、WiiがHDRRをサポートするシステムのリストに追加されました。
デスクトップパブリッシングやゲームでは、色の値は複数回処理されることがよくあります。これには乗算と除算が含まれるため(丸め誤差が蓄積される可能性があります)、16ビット整数または16ビット浮動小数点形式の拡張された精度と範囲が役立ちます。これは、前述の一部のハードウェアの制限に関係なく役立ちます。
複雑なシェーダー効果は、 DirectX 8でシェーダーモデル 1.0がリリースされたことから始まりました。シェーダーモデル 1.0 は、いわゆる標準照明で 3D 世界を照らしました。しかし、標準照明には 2 つの問題がありました。
2002 年 12 月 24 日、マイクロソフトはDirectXの新バージョンをリリースしました。DirectX 9.0 では、シェーダー モデル 2.0 が導入され、高ダイナミックレンジ画像のレンダリングに必要なコンポーネントの 1 つが提供されました。照明精度は 8 ビットに限定されませんでした。アプリケーションでは 8 ビットが最小でしたが、プログラマーは照明精度に最大 24 ビットまで選択できました。ただし、すべての計算は依然として整数ベースでした。DirectX 9.0 をネイティブにサポートした最初のグラフィック カードの 1 つはATIのRadeon 9700でしたが、その効果がゲームにプログラムされるのはそれから何年も後のことでした。2003 年 8 月 23 日、マイクロソフトは DirectX を DirectX 9.0b に更新し、ATI のRadeon X シリーズと NVIDIA のGeForce FXシリーズのグラフィック処理ユニットで Pixel Shader 2.x (Extended) プロファイルを有効にしました。
2004 年 8 月 9 日、Microsoft は DirectX を DirectX 9.0c に再度アップデートしました。これにより、High-Level Shader Language (HLSL) 用の Shader Model 3.0 プロファイルも公開されました。Shader Model 3.0 のライティング精度は、2.0 の最小 8 ビットに対して、最小 32 ビットです。また、すべてのライティング精度計算は浮動小数点ベースになりました。NVIDIAは、32 ビットのライティング精度を使用すると、Shader Model 3.0 を使用したコントラスト比が最大 65535:1 になると述べています。当初、HDRR は Shader-Model-3.0 効果に対応したビデオ カードでのみ可能でしたが、ソフトウェア開発者はすぐに Shader Model 2.0 との互換性を追加しました。補足として、Shader Model 3.0 HDR と呼ばれる場合、HDRR は実際には FP16 ブレンディングによって行われます。 FP16ブレンディングはShader Model 3.0の一部ではありませんが、Shader Model 3.0に対応したグラフィックカードで主にサポートされています(GeForce 6200シリーズは例外です)。FP16ブレンディングは、ビデオゲームでHDRを高速にレンダリングする方法として使用できます。
シェーダーモデル4.0は、Windows VistaでリリースされたDirectX 10の機能です。シェーダーモデル4.0では128ビットHDRレンダリングが可能ですが、シェーダーモデル3.0では64ビットHDRまでしか対応していません(ただし、理論的にはシェーダーモデル3.0でも64ビットHDRは可能です)。
シェーダーモデル5.0はDirectX 11の機能の一つです。これにより、以前のバージョンのDirectX HDRテクスチャ圧縮技術でよく見られたような画質の劣化をほとんど伴わずに、HDRテクスチャを6:1の比率で圧縮することが可能になります。
OpenGL 1.4以降では、 GLSLシェーダーを使用してHDRRを開発することが可能です。