メッシュごとに1つの頂点バッファを使用する必要がありますか、複数のメッシュを1つの頂点バッファに格納できますか?もしそうなら、私はそれをしなければなりません、どうすればいいのですか?1つの頂点バッファに複数のメッシュがありますか?
答えて
複数のメッシュを1つの頂点バッファに格納することができます。いくつかの小さなメッシュを1つのバッファに入れることで、ある程度のパフォーマンスを得ることができます。非常に大きなメッシュの場合は、別々のバッファを使用する必要があります。 SetStreamSource
では、現在のメッシュの頂点バッファオフセットを指定できます。
pRawDevice->SetStreamSource(0, m_VertexBuffer->GetBuffer(), m_VertexBuffer->GetOffset(), m_VertexBuffer->GetStride());
OpenGLを使用すると、glVertexPointer()
を使用して、VBO内の特定のオフセットから描画を開始できます。 D3Dについてはわからない
TBH一般に、それらをすべて1つの大きなバッファに入れる理由は、描画呼び出しを保存することです。頂点バッファを切り替えるコストは、ごくわずかです。 1つの頂点バッファにそれらをすべてマージして、1つの描画呼び出しで10個のオブジェクトをレンダリングすることができれば、大きな勝利を得ることができます。
通常、それらをマージするには、すでにワールドが変換されているすべての頂点データを順番に1つの大きな頂点バッファを作成します。それらを次々とレンダリングするインデックスバッファを設定します。その後、最小限の描画呼び出しですべての描画を行います。もちろん、静的ジオメトリにとって理想的な理由である頂点バッファの一部を更新する必要があるものを移動する場合は、
すべてのオブジェクトが同じ場合、1つの頂点バッファ(1つのオブジェクト定義あり)と1つのインデックスバッファのみが使用されます。行列はオブジェクトを移動またはアニメーション化します...
すべてのオブジェクトが異なっていて移動/アニメーション化されている場合は、個々のVBを使用してください。私はあなたがそれらをすべて一緒にマージすることによってどんな違いに気づくのか疑いがない。
私の経験では、あなたのバッファーが本当に小さいか本当に巨大でない限り、それほど大きな違いはありません。私は、バッファを切り替える際の非効率性は、ドライバがより小さなバッファでメモリを管理するためのより多くの操作を与えることによって、効率の向上と一致すると考えている。
- 1. 頂点からの頂点バッファ
- 2. 頂点バッファの数が多すぎますか?
- 3. 頂点変位破砕メッシュ
- 4. 複数の頂点バッファをDX10/DX11で使用する
- 5. VBO頂点バッファのデバッグ
- 6. OpenGL ES 2.0、複数の頂点バッファを使用した描画
- 7. Three.js(面)のメッシュ3D頂点のレンダリング
- 8. Managed Direct3DXメッシュ頂点/インデックスの制限?
- 9. 1つの列に複数の変数がありますか?
- 10. 複数のアプレットが1つのjarファイルにあり、複数のアプレットが1ページにありますか?
- 11. LWJGL頂点インデックスバッファにより「メッシュ」の半分が読み込まれる
- 12. バリアントサイズの頂点バッファを作成する
- 13. 1つのgitリポジトリに複数のプロジェクトがありますか?
- 14. 1つのTextViewに複数の画像がありますか?
- 15. 複数の列が1つのStaggeredGridViewにありますか?
- 16. 1つのドメインに複数のCookieがありますか?
- 17. D3:1つのSVGに複数のレイアウトがありますか?
- 18. 複数のパイプラインに1つのバスがありますか?
- 19. 1つのビューに複数のテーブルがありますか?
- 20. 1つのAdaプログラムに複数のランダムタイプがありますか?
- 21. 1つのRTTに複数のSQLコマンドがありますか?
- 22. 1つのドメインに複数のアプリがありますか?
- 23. 複数のページに1つのPHPファイルがありますか?
- 24. 複数のエントリーが1つの列にありますか?
- 25. 単一の頂点バッファで複数の三角形をレンダリングする
- 26. DSEグラフ - メタプロパティを持つ頂点は、複数のクエリを読み込む必要がありますか?
- 27. 頂点からメッシュの三角形を取得する
- 28. Symfony3の1つのコントローラに複数のフォームがあります
- 29. vscodeの1つのキーボードショートカットに複数のアクションがあります
- 30. matlabの頂点値からメッシュ矩形を作成