「DirectX 10のグラフィックスボードを買おうか、それとも年末のDirectX 11まで待つべきか」

 今、グラフィックスボードを買うなら、こんな風にDirectXで悩むことが多い。なぜなら、アプリケーションであるゲームのほとんどが、DirectX API(Application Programming Interface)を使っており、DirectXのバージョンによってグラフィックスの品質が違うからだ。でもこの図式は、将来には通用しなくなるかもしれない。なぜなら、3Dアプリケーションが、DirectXを使わなくなる可能性が出てきたからだ。

昔はDirectXなんて使わず3Dゲームを作っていた

 今のDirectXゲームに慣れていると、DirectXが使われなくなるという話がピンと来ないかもしれない。でも、PCでの3Dグラフィックスの歴史を見ると、DirectXがそんなに歴史のある基本的なものではないことが分かる。事実、古参のゲーム開発者たちは、昔はDirectXなんて使わずに3Dゲームのプログラムを書いていた。彼らにしてみれば、ようやくAPIなんかに縛られずに、再び自由なゲームを書けるようになるだけの話なのだ。

 そもそも十数年前のPCには、3Dグラフィックスを専門に処理するハードウエアはなかった。その時代の3Dグラフィックスは、CPU上の「レンダラー」と呼ばれるソフトウエアが処理していた。そしてゲーム開発者たちは、自分たち独自の工夫をこらしたレンダラーを書いていた。

 ところが、3Dグラフィックスを専用ハードウエアで処理するゲーム機「プレイステーション」が登場したことで、状況が変わる。PCよりずっと低価格なゲーム機で、リアルな3Dグラフィックスができるようになった。決まった処理をするなら、CPUより専用ハードウエアの方が高速で、その分リアルな絵を作ることができる。そこで、PC向けに3Dグラフィックスチップが登場し始めた。

 と言っても、最初のころの3Dグラフィックスチップは、処理の一部しかハードウエアで実行できなかった。また、3Dグラフィックスチップの機能を使うためのAPIにもさまざまな種類があり、DirectXはそのうちの一つにすぎなかった。

 だが、DirectXはWindowsの標準となったことで次第に開発者の間に浸透していった。そしてグラフィックスチップも、DirectX 7のころになるとグラフィックスパイプラインのほとんどすべての処理を、機能を固定した専用ハードウエアで高速に実行できるようになった。そのため、DirectXやOpenGLといった標準APIを通してグラフィックスチップの機能を使うことが、一般的になっていった。

 ところが、DirectX 7世代のグラフィックスチップは、時間のかかる処理は省いて決め打ちの単純な処理しかしない。だから速いけど、CGムービーのようにきれいで複雑な絵は作れなかった。CGムービーがきれいなのは、CPUの上で走るグラフィックス処理ソフトウエア「シェーダー」で、複雑な処理を時間をかけて行っているからだ。

初期の3Dゲームは、ゲームプログラムの中に3Dグラフィックスを描画するソフトウエア「レンダラー」を持っていた。やがて、レンダラーは標準グラフィックスAPIへと置き換わり、APIを通して専用の3Dハードにアクセスするようになった。しかし、現在のハードに対してはAPIを通さずに直接レンダラーを書くことができる。
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら