• ベストアンサー

DirectX7とDirectX9の速度の違い

フリーソフトや市販の3Dゲームで、DirectX7や8で開発されたゲームは割りと 私の非力なPCでもさくさく動くのですが、同じゲームのDirectX9版見つけ、 試しに入れてみると、ものすごく重くなっていました。 実際には試していませんが、仮にC++で開発したとしてDirectX7とDirectX9で 3Dモデルや画像を同じ数同じような条件で沢山表示させたとしてら、 DirectX7の方が動作が軽いのでしょうか? もしそうなるなら恐らくDirectX9の方が機能が多いので標準でより多くのメモリを システムが占有してしまうからだと推測していますが・・。 DierctX10や11など、DirectXのバージョンが上がるほど重くなるものなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

「あなたのパソコンのグラフィックボードが、DirectX8までしかサポートしてない」のではないでしょうか? グラフィックボードがハード的にDirectX8までをサポートしているならば、DirectX7や8向けに作られたゲームは、グラフィックボードがハードで処理しますから、サクサク動いて当然です。 しかし、グラフィックボードがDirectX9をサポートしていない場合、ゲームがDirectX9以降の機能を呼び出すと、DirectX9のデバイスドライバは「グラフィックボードがDirectX9をハードでサポートしてないから、ソフトウェアで処理しよう」として、グラフィックボードを使用せず、ソフトウェアでエミュレーション処理します。 ハードを使わずソフトで処理するんですから、ものすごく重くなって当然です。 パソコンにDirectX9をインストールし、DirectX9用のゲームを動かすなら「DirectX9対応の3Dアクセラレータ(GPU)が搭載されたグラフィックボード」を搭載しなければなりません。 因みに「3Dアクセラレータ(GPU)が載ってないグラフィックボードを載せたパソコンや、3Dアクセラレータ(GPU)が載ってないノートパソコン」では、DirectX9で増えた新機能の殆どすべてが、ソフトでエミュレーション処理されます。 なので、俗に「3Dポリゴンゲー」と言われるゲームは、起動時に「3Dがハードでサポートされてない」とエラーが出てまったく動かないか、ソフトでエミュレーション処理されて激重になります。 DirectX9用のゲームをサクサクと動かすなら「DirectX9対応の3Dアクセラレータ(GPU)が搭載されたグラフィックボード」が必須になります。 なお「DirectX9対応の3Dアクセラレータ(GPU)が搭載されたグラフィックボード」と言っても、すべての機能がハード処理される訳ではなく、安価なボードだと「一部の機能はソフトウェアでエミュレーション処理されます」って場合があります。

RockmanX
質問者

お礼

わたしのPCはノートで数年内に発売されたものでしてDirectX9ゲームもめちゃくちゃ重いと いうほどでもないのですが、 やはりDirectX7世代のゲームに比べるとどうも重いと感じることが多いのです。 恐らくおっしゃるように一部のDirectX9の機能がハードウェアで対応されてないからかなぁと思いました。 回答ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • parts
  • ベストアンサー率62% (6366/10152)
回答No.2

アプリが9と8で別々に提供されているということは、それぞれハードウェアに最適化しています。 具体的には8と9では、固定シェーダがプログラマブルシェーダになり、固定シェーダは互換用のレガシーになりました。9にするということは、即ちシェーダ2,0を利用するということになります。 光源を柔軟化したシェーダ2は、CPUでは全てを処理できない上に、処理できても、演算が複雑です。これが答えになります。 尚、8以前ではバージョン差による速度差が余りなかったのは、9以降で上記の固定処理を廃し、プログラマブル化したのに対し、以前は固定処理の延長だったためです。

RockmanX
質問者

お礼

私のPCではむしろシェーダーが使われたX9プログラムは激重ですね。。 GPUがオンボードだからかもしれません。

すると、全ての回答が全文表示されます。
回答No.1

単純には判断できません。 DirectXはバージョンが上がる度に機能が増えていっています。 また、その機能を使用するためにH/Wが実装されていない場合はS/Wによるエミュレーションを行います。 H/W実装を前提にしている機能を使用していれば、当然H/W実装されていないPCではS/Wエミュレーションにより負荷がかかることになります。 従って、単純にバージョンだけの問題とは言えません。

RockmanX
質問者

お礼

恐らくそれでしょうね。H/WとかS/Wってハードウェア、ソフトウェアの略でしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A