アプリケーション(CPU側)とGPU側の境界について混乱しています。誰かが、アプリケーションがゲームで一般的に何を担当しているのかを理解するのを手伝ってもらえますか?
私の理解では、アプリケーションはGPUがレンダリングするフレームを送信します。これは、頂点シェーダー、ラスタライズ、およびピクセルシェーダー(最も基本的なレンダリング形式)を含むプロセスです。これにより、GPUにはフレームごとに何が発生するかについての概念がないと私は信じています。
これは、アプリケーションがすべてのオブジェクトが世界空間のどこにあるかを追跡していることを意味しますか?また、ユーザーが文字を移動した場合(たとえば)、アプリケーションは新しい場所を決定し、GPUに新しい変換を送信しますか?
これは特に混乱を招きます。頂点シェーダーは、基本的に2つの静的ポーズに基づいてモデルを時間の経過とともにアニメーション化するモーフィングなどに使用できることを読んだからです。
最新のエンジンとは連絡を取り合っていませんが、前回確認したところ、ゲームの状態のほとんどすべてが通常CPUに保存されており、データはCPUからGPUに書き込まれることが多く、ほぼ同じ頻度で読み返します。
これには、CPUに保存されている冗長データも含まれる可能性があります(ドライバーの機能については説明しません)。たとえば、エンジンはCPUとGPUの両方に三角形メッシュを格納し、メッシュをCPUに保持して、錐台カリング、衝突検出、ピッキングなどを実行する場合があります。この冗長性の理由の1つは、ゲームロジックの大部分をGPUコードで記述することが、場合によっては不可能ではないにしても、非常に難しいためです。たとえば、GPU側で衝突検出の一部を高速化できる場合がありますが、物理システムを物理システムからのGPUプッシュイベントで完全に記述して、オーディオシステムが衝突イベント(GPU)でサウンドを再生できるようにすることはできません。オーディオハードウェアと通信できません)。もう1つは、GPUは一般に、メモリに関してより制限されていることです。
GPUは依然として非常に特殊なハードウェアです。結局のところ、GPUにPongを書き込むことすらできません。これは、キーボード、マウス、ゲームパッドなどからユーザー入力を直接読み取ったり、オーディオを再生したり、ハードドライブからファイルを読み込んだりすることができないためです。CPUは今でもすべてを調整する「マスターブレイン」のようなものです。
トゥイーンやスキニングのようなものに関しては、それはしばしばGPUで計算されますが、それは「状態管理」のようなものではありません。CPUは、各ボーンの行列をボーン階層に格納し、それらの行列と変形されていない頂点位置をGPUに送信して、その場で計算できるようにする場合があります。そのシナリオでは、GPUにフレームごとにオンザフライでデータを計算させるほど、ゲームの状態がGPUに保存/管理されるのではなく、これらのシナリオでは超高速で実行できます。そもそも永続的に保存されます。このような場合、CPUは結果のデータを読み戻すことさえしません。
通常、GPUは状態の管理にはあまり使用されません。それは、それを行うのに適している場所で、非常に高速に物事を計算するためによく使用されます。そこに状態が保存されている場合、CPUにはすでに十分なデータがあるため、破棄して再生成できる一時的な状態であることがよくあります。例外は、私が見たいくつかのGPGPUソフトウェアで、実際にはアプリケーションの状態をGPUに排他的に保存し、CPUにはコピーがまったくなく、CPUはGPUへの書き込みよりもGPUからの読み取りを多く行っていますが、ゲームはないと思いますそれをかなりやっています。
したがって、ほとんどの場合、はい、通常、GPUはゲームの世界と状態をかなり気にしません。CPUは、テクスチャデータやメッシュや画像からのVBOなど、破棄可能なデータを一時的にあちこちに保存するために使用し、GPUを使用して大量の破棄可能なデータをその場で非常に高速に計算して出力します。永続データの保存と出力にはそれほど頻繁には使用されません。
大雑把な例えを考え出すと、ピザレストランのビジネスマネージャーが住所などの顧客レコードを永続的に保存するようなものです。彼らは一時的に彼の速いオートバイでピザ配達人にピザを配達するために住所を与えるかもしれません、しかしそれはあまりにもつながるので、彼らはピザ配達人にすべての顧客の住所を追跡するために独占的に任せるつもりはありません多くのやり取りがあります(さらに、ピザを配達する人は、ピザを配達するすべての顧客の住所を覚えていない可能性がありますが、マネージャーは、大量の顧客データを保存するためのデータベースを備えたコンピューターを持っています)。それは主にビジネスマネジャー->ピザ配達人からの一方向のコミュニケーションです。つまり、「高速バイクを持っているピザ屋さん、この住所にピザを配達してください」のようなものです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加