【コラム】

3Dグラフィックス・マニアックス

46 HDRレンダリング(6)~HDRレンダリングの歴史と動向(2)

    西川善司  [2009/01/16]

    PS3のGPU「RSX」はNVIDIAのGeForce 7800 GTXをベースにした設計であるため、FP16-64ビットバッファに対してMSAAが利用できない制約も受け継いでしまっている。コナミのPS3専用タイトル「メタルギアソリッド4」(2008年)では、この制約とフィルレートに配慮して、FP16-64ビットバッファの採択を断念した。

    CEDEC 2008のスライドより。「メタルギアソリッド4」では32ビット整数バッファでのHDRレンダリングを採用した

    なお、やや変則的な手法ではあるが、「Half-Life2」の開発元のVALVEは、このFP16-64ビットバッファに対する制約を回避しつつ、FP16-64ビットバッファに対してHDRレンダリングするテクニックを発表している。

    このVALVEの実装では、テクスチャやレンダリング先をFP16-64ビットバッファとするが、ブルーム効果やグレア効果の処理の前にトーンマッピングを行って32ビットのLDRバッファにしてしまう。

    VALVEが実装した妥協案的リアルHDRレンダリング

    この方法では、ブルーム効果やグレア効果を処理する時点ではHDR情報は完全に失われてしまっているわけだが、LDR(RGBが0~255)バッファ中の高輝度領域(例えばRGBが平均240以上など)を抽出し、そこからブルーム効果やグレア効果を生成する。反射や屈折した情景(動的生成される環境キューブマップなど)についても、レンダリング自体はHDR次元で行われ、そのシーンに適合したトーンマッピングが行われるので、HDR情報はたしかに失われてしまうが、後段のブルーム効果、グレア効果も矛盾のない出方をしてくれるという。厳密なHDRレンダリング手順手順としては全く正しくはないのだが、総じて不自然さはないとしている。

    トーンマッピングされたあとのLDRフレーム

    ここから高輝度部をボカしてブルーム効果フレームを生成

    これらを合成

    この方式のメリットは、ブレンディング、MSAAなどがLDRバッファで行えるということ。つまり、FP16-64ビットバッファでMSAAが使えないDirectX 9世代のGPUでも互換性が保証されるのだ。この妥協案的リアルHDRレンダリングは「Half-Life2:LostCoast」(VALVE,2005)、「Half-Life2:EPISODE ONE」(VALVE,2006)で採用されている。

    妥協案的リアルHDRレンダリング技法を実装した「Half-Life2:LostCoast」(VALVE,2005)より。左が2004年のオリジナル「Half-Life2」時代の疑似HDRレンダリング。右が妥協案的リアルHDRレンダリングによるもの。右の方は水面に映り込んだ太陽にもちゃんとブルーム効果が出ている事が分かる

    2007年に発売されたWindows Vistaとほぼ同時に提供が開始されたDirectX 10世代/SM4.0世代のGPUではFP16-64ビットバッファ、FP32-128ビットバッファに対してもMSAA処理が適用できるようになり、理想通りのHDRレンダリングの工程が全てのメーカーのGPUで実装できるようになっている。

    こうしてみてくると、2002年頃から始まった疑似HDRレンダリングの期間が意外にも長く、最近になってやっと理論通りの本物のHDRレンダリングが実現できるようになったということが分かる。(続く)

    (トライゼット西川善司)

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        新着記事

        特別企画

        マイナビニュースマガジン