DirectX9リアル対応3Dゲームが出てこない理由(その2)(1/3 ページ)
Direct X 9世代GPUで期待されたHDRレンダリング
前回に引き続いて、もう一つの非互換部分に迫ってみたい。それは各GPUの「レンダーターゲット」サポートの違いだ。
レンダーターゲットとは、3Dグラフィックスの描画先バッファ、いわゆる「フレームバッファ」のこと。通常、3Dグラフィックスは32ビットカラーとか16ビットカラーといったバッファに描画されるわけだが、Direct X 9のDirect3D(以下 D3D9)では、仕様上、これ以外のフレームバッファが新設され、これがPC上の3Dグラフィックスにおいて、フォトリアリティ実現へのステップアップに繋がるはずだった。
フォトリアリティの実現では具体的になにが必要になってくるのか。これも順を追って説明していこう。
従来、3Dグラフィックスはディスプレイに表示できる色数で描画を行ってきた。この説明に多くの読者は「なにを当たり前のことを」と思うかもしれない。
ところが、現実世界にはその数千倍以上の色(光)が存在するのだ。例えば「Windows XPデスクトップ画面の背景色」と「晴天の青空」は同じ水色でも、どちらが眩しく感じるか。この違いは誰でもすぐに実感できるだろう。
実際は人間の視覚能力にも限界がある。眩しいときには瞳を絞って、眼球内側壁面の網膜に到達する光の量を調節している。それでも強い光を見たときには、その光が眼球内の水晶体で乱反射したり、受光細胞が受ける情報が飽和気味になったりして、「視界全体が白い光に包まれて見える」などの、一種独特の映像を見ることになる。このような特殊な視覚現象こそが人間の「リアル」という感覚に繋がっているのだ。
そういうわけで、PC上の3Dグラフィックスの表現でも、ディスプレイの表示色限界については度外視して、まず現実世界に則した情景をレンダリングし、これに「人間が見た感覚」というシミュレーションを付加することで、リアルな映像を作り出そうというアプローチがとられた。これが「ハイダイナミックレンジ(HDR)レンダリング」という技術だ。
HDRレンダリングという概念は、1677万色の数千倍に及ぶ広い範囲の光(色)を(演算処理の中で)描画することから始まる。となれば、演算で扱うデータの桁数も膨大なものになり、Direct X 8時代まで標準に使われてきた32ビット整数カラーでは手に負えなくなってくる。
D3D9では、このHDRレンダリングに対応するために、3Dグラフィックスを描画するフレームバッファ(レンダーターゲット)として、浮動小数点実数フレームバッファやαRGBの各ビットを8ビットより大きくした整数フレームバッファが新設された。
この新規格バッファに1677万色を超えるダイナミックレンジでシーンをレンダリングしたあとで、どの程度の明るさを基準点にしてシーンを見るかを決定する(これは、瞳を絞って光量を調整する人間の動作に相当する)。HDRでレンダリングしたシーンを、ここで決定した基準の明るさを中心に1677万色へ丸め込む最終プロセスでは、プログラマブルピクセルシェーダを活用して処理を行う。
この、HDRシーンをディスプレイ表示色に丸め込む工程はとくに「トーンマッピング」と呼ばれている。
Direct X 8.1時代の異常事態は今も続いている?
HDRレンダリングに欠かせない浮動小数点実数レンダーターゲットや多ビット整数レンダーターゲット。実はこのフォーマットに対するサポート範囲もDirect X 9世代GPUのなかでばらつきがある。
これを調べてみたのが下の二つの表だ。フォーマットの表記自体は、前回のテクスチャフォーマットの表記と同一。また、3Dゲームにあまり活用されなさそうなフォーマットについては省略している。
浮動小数点実数レンダーターゲットGeForceFX系RADEON9500以上DeltaChrome系Volari系D3DFMT_R16F×○×○D3DFMT_G16R16F×○○○D3DFMT_A16B16G16R16F×○××D3DFMT_R32F×○○○D3DFMT_G32R32F×○××D3DFMT_A32B32G32R32F×○××
整数レンダーターゲットGeForceFX系RADEON9500以上DeltaChrome系Volari系D3DFMT_A8R8G8B8○○○○D3DFMT_R5G6B5○○○○D3DFMT_A1R5G5B5×○○○D3DFMT_A4R4G4B4×○○○D3DFMT_G16R16×○×○D3DFMT_A2R10G10B10×○○×D3DFMT_A16B16G16R16×○××
これを見ても分かるように、浮動小数点実数レンダーターゲットに関して万全なサポート体制になっているのはRADEON9500以上だけ。GeForce FXに至ってはまったくサポートされていないことが分かる。
また、DeltaChromeやVolariはいくつかサポートしているものがあるが、もっとも活用しやすいフォーマットと思われる「D3DFMT_A16B16G16R16F」「D3DFMT_A32B32G32R32F」はサポートしていない。
整数レンダーターゲットについても、すべての多ビット整数レンダーターゲットをサポートしているのはRADEON9500以上のみ。GeForce FXはいわゆる32ビットカラーと16ビットカラーのフォーマットにしか対応していない。
ゲーム開発者の間では「ベンチマークソフトならばともかく、実際の3Dゲームで浮動小数点実数レンダーターゲットを活用するのは時期尚早」という意見もある。これは「3DゲームでそこまでのHDR表現は必要とされない」という理由と、「浮動小数点実数レンダーターゲットを使うと遅くなる」からという理由が根拠になっている。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
ITmedia NEWSに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
SpecialPR
本日の新着記事
アクセスランキング
-
1
陸自が「イオンモール熊本」内部をドローン撮影 防衛省が映像公開
-
2
タムロン、ソニーからの買収提案認める 特別委員会を設置して検討
-
3
PayPayアプリで熊本地震への寄付が可能に 最短3ステップ・1円から
-
4
熊本「通れた道」マップ、トヨタが公開 ホンダも「通行実績情報マップ」
-
5
「Xが情報収集に役立たない……」熊本地震で不満の声続出 「Twitterを返して」
-
6
TSMC熊本工場、段階的に通常操業へ 熊本の地震で一時中断、従業員の無事確認 台湾報道
-
7
ドコモ、ahamoを30→40GBに増量 8月1日から 料金据え置きの新キャンペーン
-
8
熊本で非常時Wi-Fi「00000JAPAN」発動中 KDDIが無料開放、他社ユーザーも利用可
-
9
光学25倍ズームのソニー「RX10 V」はもう“レンズ一体型α” 1台で何でも撮れそうな万能感に浸れるぞ
-
10
農水省の“クソダサ”ポスター話題 「AIよりよっぽど良い」の声も 担当者に狙いを聞いた
ITmedia NEWS SNS
インフォメーション
注目情報をチェック
ITmediaNEWSをフォロー
あなたにおすすめの記事PR