1. ホーム
  2. performance

[解決済み] 3Dゲームってなんであんなに効率的なの?[クローズド]

2022-04-14 08:23:19

質問

私には理解できないことがあります。GTA IVのような大作PCゲームがCPUの50%を使用して60fpsで動作しているのに、回転するティーポットのDXデモが60fpsで、なんと30%も使用されているのですか?

どうすれば解決するの?

一般的に、それは

  1. ゲームはレンダリングに必要なものについて最適化されており
  2. ハードウェアを特別に活用するのです。

例えば、簡単にできる最適化としては、見えないものを実際に描こうとしないことです。の街並みのような複雑なシーンを考えてみてください。 グランド・セフト・オートIV . レンダラーは、実際にはすべての建物や構造物をレンダリングしているわけではありません。その代わり、カメラに見えるものだけをレンダリングしています。もし、同じ建物の裏側に回り込んで、元のカメラの方を向いたら、中途半端に空洞化したシェル構造を見ることができます。カメラで見えないところはすべてレンダリングされない。見えないのだから、見せようとする必要はないのです。

さらに、特定のハードウェアに対して開発する場合、最適化された命令や特殊なテクニックが存在し、より高速化を図ることができます。

もうひとつは、デモがなぜそんなにCPUを使うのかという質問です。

<ブロッククオート

... 一方、60fpsで回転するティーポットのDXデモは、なんと30%も消費するのですか?

グラフィックスAPIのデモではよくあることです(例えば dxdemo と呼ばれるものにフォールバックしてしまいます。 ソフトウェアレンダラー ハードウェアが、きれいなサンプルを表示するために必要な機能をすべてサポートしていない場合。これらの機能には、影、反射、レイトレーシング、物理、その他が含まれるかもしれません。

これは、APIの全機能をアピールするために、存在しそうもない完全にフル装備のハードウェアの機能を模倣したものです。しかし、そのハードウェアは実際には存在しないので、代わりにあなたのCPUで実行されます。これは、グラフィックカードに委ねるよりもはるかに非効率的です。