3
CPU-GPUメモリデータフロー[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 私は初心者のグラフィックプログラマで、最近疑問に思っています-モデルデータ(メッシュとマテリアル)はアプリケーション(CPUメモリ)からグラフィックカード(GPUメモリ)にどのように流れますか?静的モデル(建物など)があり、一度ロードしてセットアップすると、アプリの有効期間中は変更されません。 そのデータはGPUメモリに一度だけ送信され、永遠にそこに座っていますか? モデルが各フレームで実際にレンダリングされるとき、GPUプロセッサはGPUメモリから毎回そのデータをフェッチする必要がありますか?つまり、2つのモデルをそれぞれ複数回レンダリングした場合、最初のモデルを複数回レンダリングしてから2番目のモデルを複数回レンダリングするか、最初のモデルを1回だけレンダリングし、2番目のモデルを1回だけレンダリングして、そのようにインターリーブし続けましたか?この意味で、この質問を「内部GPUデータフロー」と呼ぶことができます。 明らかにグラフィックカードのRAMは限られています-1フレームのレンダリングに必要なすべてのモデルデータを保持できない場合、フレームごとにCPU RAMから(一部)を取得し続けると思いますが、それは正しいですか? インターネットにはこれに関する本や資料がたくさんあることは知っていますが、このデータフローを管理する方法に関する簡単な一般的なガイドラインがあります(何をいつ送信し、いつ、どのようにレンダリングするか)。 編集: 私は1つの区別をするのを忘れ:ありますGPUにデータを送信し、そこの設定/電流としてバッファを結合。後者はデータフローを引き起こしますか? Edit2: Raxvanの投稿を読んだ後、いくつかのアクションを区別したいと思います。 初期化によるバッファ作成 バッファデータの更新(データがCPUラムに保持されている場合は簡単で、GPUラムに保持されている場合はGPUからCPUラムにフェッチする必要があります) バッファをアクティブとしてバインドします(これは、次の描画呼び出しでこのバッファをレンダリングすることをAPIに伝える方法であり、それ自体では何もしませんか?) API draw call(ここで実際に何が起こるかをお聞きしたい)