The Intersection of Game Engines and GPUs–Current & Future

by syoyo

(via http://levelofdetail.wordpress.com/ )

dice.jpg

The Intersection of Game Engines and GPUs–Current & Future
http://www.graphicshardware.org/program.html

Frostbite と呼ばれるゲームエンジンの開発を通して、
現状こーなっていて、こういう問題があって、なので将来こういうのができたらいいなぁというのを解説しています。

GPU なのにラスタラザイザがネック??

カリング処理やオクルージョン処理が GPU では遅いので、CPU である程度やっている とのこと。
最近はこういうの多いですね。
ラスタライザ HW はもう枯れていて発展も見込めないし並列化しづらいしパフォーマンスも出しづらいので、
今じゃ(最新 PC 向け GPU でも) GPU の最大のネックはラスタライザパイプラインなんじゃないだろうか.
(もともとは GPU はそれを高速化するための HW だったのにね)。

みんな CPU で先に軽くカリングとか deferred shading とかやってなるべくでラスタライザを迂回して
ボトルネックを解決しようとしているけど、そこまでやるならもうそろそろレイトレで(visibility culling やるので)いいんじゃね、と思いますね。

いまはまだ CPU でも GPU でも全面レイトレはパフォーマンス的にきついけど、
いったんレイトレ HW ロジックが CPU or GPU に搭載され、またよりよいレイトレアルゴリズムが見つかれば、
一気にゲームグラフィックスはレイトレに移行する気がする。たぶん 2010 年くらいにそうなると思っています.

mirror’s edge.

それとも関連してか、スライドではレイトレについても少し取り上げられています。
同スタジオではレイトレによる(?)反射を生かした mirror’s edge というゲームを作成していて、それを取り上げています.

mirrorsedge.jpg
http://ps3navi.com/log/2008/05/mirrors_edge.html

ジャンピングフラッシュの現代版みたいですね ^^)
キャラクタの周りだけ正確な反射を計算していて、ほかの平面反射の部分はフェイク(既存の planar reflection)みたい.

GPGPU

あとは GPGPU というかもう少し GPU を計算 unit として標準的かつ汎用的に使えるインターフェイスが欲しいねという話。
まあこれは OpenCL とか MCUDA でいいんじゃね(MCUDA はスライドでも取り上げられてますね).

Advertisements