OSは全てWindows95、DirectXのランタイムバージョンは5、NekoFlightのバージョンは0.7です。
ここでは、画面のモードを640x480、6万色モードにし、その状態でNekoFlightを最大化してスタート地点の真下近辺の地面に立って東を向いた状態でのFPS(秒当たりの画面描画回数、画面の左上に表示されている)を調べてみました。
まず、少し古めの環境ということで S3のTrio64を積んだビデオボード
+ Pentium 100MHz で測定。
Trio64 + Pentium 100MHz
DirectX使用 ON の場合 (=HEL描画)
Polygon OFF | 14から15 FPS |
Polygon ON Texture ON | 1から2 FPS |
Polygon ON Texture OFF | 2から3 FPS |
DirectX使用 OFFの場合 (=GDI描画)
Polygon OFF | 21から23 FPS |
Polygon ON Texture OFF | 11から12 FPS |
でした。 Trio64はDirect3Dの機能がないので、DirectX
ONの場合、HELによる表示、
DirectX OFFの場合、GDI表示となります。
DirectXのポリゴン表示は遅すぎて操作不能です(^^;
次に、CPUの速さがどの程度影響するかということで
もう少し早いAMDのK6-166MHzに取り替えてみました。
Trio64 + K6-166
DirectX使用 ON (=HEL描画)
Polygon OFF | 17から18 FPS |
Polygon ON Texture ON | 2 FPS |
Polygon ON Texture OFF | 3 FPS |
DirectX使用 OFF (=GDI描画)
Polygon OFF | 27から29 FPS |
Polygon ON Texture OFF | 17から18 FPS |
この場合も、DirectX ONの場合はHELによる表示、DirectX
OFFの場合、GDI表示となります。
全体的に早くなりますが、それでもDirectX HELのポリゴン表示は遅くて使い物になりません(^^;
次にビデオボードをもう少し早い2Dボードに変えてみました。
具体的には、S3のVision968を積んだものに変えてみましたが、Trio64の場合と全然変りませんでした(^^;
ミレニアムあたりで実験すれば少しは変わると思いますが、ある程度最近の2Dボードではあまり違いが出ないようです(ちなみに、プロファイラでプログラム実行時に内部で何に時間がかかっているかを調べると、GDI表示の場合、バッファ切り替えのためのBitBltに時間の半分をかけており、あとはライン表示やポリゴン表示、画面クリアがのこり半分。計算にはほとんど時間がかかっていないことが判ります。DirectX
ONの場合、実際に画面を更新しているDirect3DのRenderメソッドが90%以上を占めます)。
次に3Dボードに変えてみました。ここではS3社のViRGE/GXを用いたビデオボードです。
ViRGE/GX + K6-166
DirectX使用 ON (=HAL描画)
Polygon OFF | 38から39 FPS |
Polygon ON Texture ON | 16から17 FPS |
Polygon ON Texture OFF | 19から20 FPS |
DirectX使用 OFF (=GDI描画)
Polygon OFF | 27から29 FPS |
Polygon ON Texture OFF | 17から18 FPS |
この場合、DirectX使用ONではHELではなく、HALが使用されます(=ハードへの直接アクセス)。
DirectX使用 OFFではGDI表示です。
HAL使用によるハードウェアアクセラレーションでDirectX
ONでの表示レートが劇的に向上してます。
やはりDirect3Dは3Dボードがないと意味がなさそうです。
それと同時に面白いのが、DirectX使用 OFF時のGDIによるポリゴン表示結果。
結構古いビデオチップであるTrio64とまったく同じ結果です(^^;
そもそもVison968でも同じ値でした。
結局3DボードはNekoFlightに関してはテクスチャマッピングを用いるときだけ役に立ちます。
また、GDI表示に関しては、重要なのはビデオボードよりCPUの様です。