2008年9月9日より3日間、昭和女子大を会場にして、日本最大級のゲーム開発者会議「CEDEC2008」が開催された。
この中で、行われたTIM SWEENEY氏(Unreal Engineの設計者でEPIC GAMESのCEO兼任)の講演「未来のゲーム開発テクノロジー」が、非常に興味深い内容であり、前編では彼が予見する2012年~2020年までのメインプロセッサの姿とその効果的なプログラミングモデルまでをレポートした。
後編では、この講演の中で語られた2012年~2020年の3Dグラフィックスの姿についてレポートする。なお、内容の一部は、公演後のTIM SWEENEY氏に対する個別取材で得られた情報も含まれている。
前編はこちら
【レポート】CEDEC 2008 - EPIC GAMESのTIM SWEENEYが語る「10年後のゲーム機の姿、ソフトウェアの形」(前編)
現状のGPUの問題点
現在の3Dグラフィックスのパイプラインは約25年前にシリコングラフィックス社が考案したものをベースにしており、各レンダリングステージでプログラマブル拡張されてはいるが(プログラマブルシェーダ・アーキテクチャ)、パイプライン全体としてみると固定的な手順で進められている。
「現在の3Dゲームグラフィックスがみんな似たような感じに見えるのは、この固定的なレンダリングパイプラインの構造の影響が大きい。仮に、この先、各プログラマブルシェーダのパフォーマンスが20倍になったとしても、この固定構造のパイプラインのままでは見栄えは二倍程度よくなればいいほうだろう」(TIM SWEENEY氏)
現状のDirectX 10.x世代の3Dグラフィックスのパイプラインでは頂点シェーダ、ジオメトリシェーダ、ピクセルシェーダの3つのプログラマブルシェーダがあり、プログラマブルではあるが、各シェーダの行える"役割"は固定的であるし、勝手に新しいプログラマブルシェーダのステージを新設することは出来ない。次世代のDirectX 11ではハル・シェーダ、テッセレータ、ドメイン・シェーダといった3つのシェーダ・ステージ(テッセレータは固定機能、他2つがプログラマブルシェーダ)が新設されるが、こうしたメジャーなアーキテクチャ改変を待たなければ、新しい表現、新しいアルゴリズムは実装できないのだ。
TIM SWEENEY氏は、現状の3Dグラフィックス・レンダリング・パイプラインについて、いくつかの苦言を呈した。
氏は第一にメモリアクセスの手法が限定されてしまっている点を挙げる。メモリの書き出しに関しては基本的にその時点でレンダリングしているピクセルにしか書き込めない。
第二に任意のデータ構造を定義して、メモリを確保をして作成して、これを自在に操作出来ないという点。データ構造は規定されたテクスチャフォーマットに準じたものになり、シェーダプログラムで動的なメモリの確保、解放が行えない。
第三は、CPU側のメインプログラム側と、GPU側のシェーダプログラムとでデータの連係/共有が出来ないところを挙げる。前述のように3Dグラフィックス側はデータ構造がテクスチャフォーマットに規定されたものとなっているし、さらにそうしたデータは3Dグラフィックス側は専用APIを通じて操作しなければならないため、GPU側のデータはCPUと論理的に親和性に乏しい。
スライドではプログラミング言語が独自拡張されたC,C++という一風変わったプログラミング言語であることも問題として指摘している |
全ての3Dゲームグラフィックスが似たように見えるのはレンダリングパイプラインが固定的なせいなため? |
3Dゲームグラフィックス……というよりも、リアルタイム3Dグラフィックスが次のステップに行くにはこうした部分も進化させないとダメだろう、とTIM SWEENEY氏は予見する。
「次にリアルタイム3Dグラフィックスが大きな進化を見せるとすれば、それは再びソフトウェアレンダリング時代に回帰したときだろう」(TIM SWEENEY氏)
2012年~2020年までに登場するであろうCPU & GPU統合型プロセッサ(あるいはCPU同等のプログラマビリティを備えたGPU、以下同義とする)であれば、OpenGL、DirectXを超越した100%ソフトウェアレンダリングが現実的なパフォーマンスで実現されるというわけだ。
大胆な発言に思えるかもしれないが、実際に、これまでの歴史でも、多様なコンピューティング・パラダイムは「ソフトウェア→ハードウェア→ソフトウェア」という回帰特性をたびたび見せている。
近年ではDVD再生がそうだ。1996年頃から数年はPCでのDVDビデオ再生のためにDVDデコーダー拡張カードが流行した。その後、CPUへのMMX命令の追加、CPUの高速化に伴ってDVDデコーダ(MPEG2デコーダ)は2000年頃までにほぼ完全にソフトウェア実装に立ち戻った。これは専用ハードウェアデコーダを追加コストを伴って搭載するよりは、追加コストなしで同等の機能が得られるソフトウェアデコーダの方がユーザーに受け入れられたからだ。
CPU & GPU統合型プロセッサが主流になってソフトウェアレンダリングでそれまでのGPU同等以上のレンダリングが行えるようになったときには、確かにビデオカード(GPU)の存在価値は薄れてくることだろう。
リアルタイム3Dグラフィックスの「アクセラレーター」としてのGPUの役割は2012年~2020年の間に終わる可能性があるというのだ。