2017-11-22 4 views
1

アプリケーション(CPU側)とGPU側の境界については混乱しています。ゲームでアプリケーションの一般的な役割を理解するのに役立つ人はいますか?3DゲームのCPUとGPU:誰が何をしていますか?

私の理解では、アプリケーションは、GPUのレンダリングフレーム、頂点シェーダ、ラスタライズ、およびピクセルシェーダ(最も基本的なレンダリングフォーム)を含むプロセスを送信します。これにより、GPUにはフレームごとに何が起こっているのかという概念はないと私は考えています。

これは、アプリケーションがすべてのオブジェクトがワールドスペース内のどこにあるかを追跡していることを意味しますか?また、ユーザーがキャラクターを移動すると(たとえば)、アプリケーションは新しい位置を決定するので、GPUに新しいトランスフォームを送信しますか?

これは、モーフィングのようなものに頂点シェーダを使うことができますが、これは基本的に2つの静的ポーズに基づいてモデルをアニメーション化するということです。

答えて

1

私は最新の最新技術のエンジンに触れていませんが、最後に確認したところでは、ほとんどのゲーム状態は通常CPUに保存されており、データはCPU GPUには、ほとんどの場合よく読まないでください。

これは、CPUに格納された冗長データを含むこともできます(そして、ドライバが何をしているかについては言及しません)。たとえば、エンジンはCPUとGPUの両方に三角形メッシュを格納し、CPUにメッシュを保持して、錐台のカリング、衝突の検出、ピッキングなどを行うこともできます。この冗長性の理由の1つは、ゲームロジックの大部分をGPUコードに書き込むことは、不可能ではないにしても、あまりにも困難であるためです。たとえば、GPU側で衝突検出の一部を加速することは可能かもしれませんが、物理システムをGPUプッシュイベントに完全に書き込むことはできません。物理システムから物理システムに衝突イベント(GPUオーディオハードウェアと通信できません)。もう1つは、一般的にGPUのメモリが限られていることです。たとえば、CPUがゲームマップ用のすべてのイメージを格納することができます(ハードドライブを「CPUメモリ」として含む)。アクティブなテクスチャデータをGPU上に重複して(テクスチャは状況に応じてより低い解像度を使用するかもしれない)。

GPUは依然として非常に特殊なハードウェアです。あなたは、キーボード、マウス、ゲームパッド、またはオーディオを再生したり、ハードドライブなどからファイルを読み込んだりすることはできないため、GPUにPongを書き込むことはできません。 CPUは、すべてを調整する "マスターの脳"のようなものです。

トゥイーンやスキニングなどは、GPUで計算されることがよくありますが、それは「状態管理」とは異なります。 CPUはボーン階層の各ボーンの行列を保存しておき、それらの行列と変形されていない頂点の位置をGPUに送り、その場で処理することができます。このシナリオでは、ゲームの状態がGPUに格納/管理されているわけではないため、GPUがフレーム単位でデータを即座に計算できるようになります。これらのシナリオでは、最初の場所に永続的に保存されます。その場合、CPUは結果データを読み戻すことさえしません。

通常、GPUは状態を管理するためにそれほど使用されません。それは、それを行うのに適している場所で、実際に高速で物事を計算するためにより頻繁に使用されます。そこに状態が格納されている場合は、一時的な状態であることが多く、CPUには既に十分なデータがあるため、破棄して再生成することができます。例外はGPGPUソフトウェアですが、実際にGPUに何らかのアプリケーション状態を保存していたところで、GPUからの読み込みをCPUより多くしてCPUに何もコピーしないで、どこに書き込むのかは分かりませんが、ゲームとは思えませんそれと同じようにしています。

ほとんどの場合、通常、GPUはゲームの世界と状態を気にしません。 CPUは、テクスチャデータやメッシュや画像のVBOなどのコピー可能なVBOのように、ここで一時的に廃棄可能なデータを一時的に保存し、GPUを使用して大量の破棄可能なデータを高速に計算して出力します。永続データを格納して出力するために頻繁には使用されません。

もし私が粗雑な類推を考えようとすると、ピザレストランのビジネスマネージャーは、自分の住所のような顧客記録を永続的に保存するようなものです。彼らは一時的に速いバイクでピザを顧客に送ってくれるピザの配達人に住所を与えるかもしれませんが、ピザを残しておいてすべての顧客の住所を把握するよう配達するわけではありません。多くの前後のコミュニケーション(そしてピザの配達員は、顧客データのボートロードを格納するデータベースを備えたコンピュータのようなマネージャを持つ一方で、ピザを配信するすべての顧客アドレスを覚えていないかもしれません)。それはビジネスマネージャー - >ピザの配達人からのほとんど一方向のコミュニケーションです。だから、速いバイクをしてピザを持って、このアドレスにピザを届けてください。GPUとCPUの似たようなことがあります。「ちょっとGPU、これは本当に速く計算してください。 "

+1

ありがとうございました。事を明確にするのに本当に役立ちました。 – Colin

関連する問題