1990年代後期~DirectXの急速進化の歴史
1990年代後期、PC業界が一丸となって強化に取り組んだことにより、PCグラフィックスは急激な進化を遂げる。
1998年には、当時までに発表された様々なリアルタイム3Dグラフィックス機能を取り込んだDirectX 6が発表され、翌1999年には、その後のPCグラフィックスの進化の方向性を決定づけたDirectX 7も発表される。
DirectX 6以前までは、3Dグラフィックス処理ハードウェアはポリゴンとピクセルの対応付けを計算したり(ラスタライズ処理)、画像テクスチャを貼り付ける処理をしたり……、といったピクセル単位の処理のみを担当していた。
DirectX 7では、それまでCPUが担当としていた頂点単位(ポリゴン単位)の座標変換処理や、光源処理を3Dグラフィックス処理ハードウェアが担当できる仕組みを実装したのだ。グラフィックス"ハードウェア"で、"頂点単位の座標変換(Transform)と光源処理(Lighting)を処理できる"仕組みを、特にこの頃は「ハードウェアT&L」(T:Transform L:Lighting)と呼んでもてはやした。
なお、このタイミングでPC業界は「グラフィックス処理全般を担当するプロセッサ」の意を汲んで、このようなハードウェア(プロセッサ)をGPU(Graphics Processing Unit)と呼び始め、後に定着した。余談だが、GPUという呼び名はもちろん、音韻と字面をCPU(Central Processing Unit)になぞらえたものだ。DirectX 7対応GPUとしてはNVIDIAのGeForce 256、ATIの初代RADEONなどが登場している。
リアルタイム3Dグラフィックス技術は、それまで家庭用ゲーム機の方が先行していた感が強かったが、DirectX 7時代に突入してからは、完全にPCが逆転した構図になる。これは、家庭用ゲーム機が、普及が最優先されるその戦略的な制約もあり約5年サイクルでしかハードウェアの仕様変更が出来ないのに対し、PCは最新技術を毎年吸収して進化できたため。また、当時、ゲーム機のシェア争いが3社程度のメーカー間で争われていたのに対し、PCグラフィックスは10社近いメーカー間で争われていたために、激しい競争原理が働いたことも少なからず影響はしていたことだろう。ただし、続くDirectX 8時代に突入するまでに大きな淘汰の波が押し寄せ、GPUメーカーも数社に絞られていく。
2000年~プログラマブルシェーダアーキテクチャの幕開け。GPUメーカー淘汰のDirectX 8時代
1998年にはセガ・ドリームキャスト、2000年には待望のソニー・プレイステーション2が発売となるが、3Dグラフィックスの処理能力的には、それぞれの時点での最新PCグラフィックスと同程度に留まっていた。
確かに、先進性はPC側/DirectX側にあったものの、ハードウェア(GPU)の急激な進化がソフトウェア業界を牽引できず、PC側は技術のシンクロニシティがとれなくなってきていた。
とはいえ、PC業界としては、どうしても毎年、全世界の研究者達の手によって生み出される革新的な最新3Dグラフィック技術を積極的に取り入れていきたいという基本方針は維持していきたい。なぜなら、最新技術そのものが牽引していくPC業界にとって、家庭用ゲーム機のようなゆったりとした進化サイクルを導入することは難しいためだ。かといって、新機能を新GPUに搭載し、そのたびにDirectXにその機能を活用するためのAPIを新設していたのではDirectXが増殖していくばかりだ。
また、実装された新機能が実際のアプリケーションで利用されるとは限らず、そうした機能はDirectX内で化石機能として残り続ける。GPU側にとっても化石機能のためにトランジスタを食うことは、不当にコストと消費電力を上けることになり意味がない。
そこで、グラフィックス処理をソフトウェアの形で実装できるような仕組みをGPUに導入してはどうか、というアイディアが提唱される。それが「シェーダがプログラム可能」という意味を込めた「プログラマブルシェーダ」(Programmable Shader)という概念だ。(続く)
世界初の民生向けプログラマブルシェーダ・アーキテクチャ採用のGPU「GeForce 3」 |
GeForce 3の人面アニメーションデモより。プログラマブルシェーダを活用して実装した法線マップによるバンプマッピング表現が、服のレリーフや人肌のシワに対して適用されている |
(トライゼット西川善司)