何故現行PX2は遅かったか? PVNGとPX2の比較。



[ このメッセージへの返事 ] [ 返事を書く ] [ home.html ]



投稿者: Mystique @ sotaro-mizoguchi.umeres.maine.edu on 98/2/24 09:31:53

eXtreme 3Dに面白い投稿があったので、PVNGに追加される新しいハードに
ついて検証したいと思います。

まずPVNGのアーキテクチャに関しては、こちらのサイトの図を見ると解ると
思います。

http://www.canadawired.com/~gvink/Global/index.html

まず気が付くのが、見慣れない三つのハードウェアがあるという事です。
つまり、Tile Accelerator、ISP Setup Engine、TSP Setup Eningeです。

ご存知の通りPowerVRはポリゴン表示には無限平面という特殊な手法を
使います。 これによって座標演算に必要なCPUの負荷が大幅に減るのと、
データ転送量が減り、バスボトルネックが少なくなる訳です。

ところが、これはDirect3Dを含む一般的なポリゴン描画方法(平面ではなく
点が基準)とは異なる為、普通のDirect3Dゲームではまず動かないか、
動いても全然パフォーマンスが出ません。 何故ならば、この平面→点という
変換作業をソフトウェアにおいて行わなければならないからです。 そして
これがCPUパワーを食う原因でもあり、PowerVRがD3Dで遅い原因でもあります。

では最近出てきたPowerVR ReadyのDirect3Dゲームはどこが違うかと
あくまで推測なんですが、最初から無限平面で定義するようにしたのか、
この平面→点というプロセスを出来るだけ最適化したのではないかと僕は
思います。

さて、やっとPVNGですが、Video LogicのSimon Fennyさんによると、
このプロセスを完全にハードウェアで処理するんだそうです。 そして、
それをするのが"Tile Accelerator"という訳です。 基本的にPowerVRの
アーキテクチャ自体は何ら変化が有りません。 ですが、新たにハードで
この変換処理をする事によって、CPUの負荷は大幅に減ると思います。


次のISP/TSP Setup Engineですが、言うまでもなくセットアップ処理を
ハードウェアで完全に行えるようになります。 レンダリングプロセスには
座標演算(頂点演算)、セットアップ(水平線の集合に分解)、レンダリングと
ありますが、一昔前のアクセラレータはレンダリングのみを行い、最初の
二項目は全てCPUが行っていました。

これではCPUの負荷が増えるばかりで、描画性能は上がりません。 座標演算に
関しては、アクセラレータ側で行う事は現行のDirectX5でも、次の6でもまだ
認められていませんので、セットアップ処理までをカード側で行う事が出来ます。
RIVA128、VooDoo2などもこのセットアップ処理を完全にカード側で行えます。

そうする事によって、CPU負荷が更に減り、結果として座標演算、セットアップ、
レンダリングのトータルスループットが向上、つまりCPU性能がどんどん上がれば
レンダリングエンジンはその最大Fill Rateまでいくらでも速くなります。 要は
CPU性能を反映し易くなるという事です。 現行のRIVA128を見れば解りますように、
Pentium IIに変えた途端に急激に速くなるのは、これを見事に現していると
思います。

また、セットアップエンジンの演算精度は画像全体のクオリティーにも
影響するそうです。 通常は整数演算で近似値を取る方法が使われるそうですが、
最近のカードは大抵専用の浮動小数点演算ユニットをカード側に持っていて、
より精度の高い演算が出来るそうですが、それでもRIVAとかはテクスチャの
繋ぎ目に線が入ったりしますよね。

結論からして、今度のPVNGはDirect3Dでも十分はパフォーマンスを出すと
僕は予想します。 今週中にはGame Mansionのサイトに実際のスクリーン
ショットがアップされるそうですし、PowerVRのオフィシャルサイトも
アップデートされるそうです。

また、NECとVideo Logicからもより詳しいリリースがあると思われます。