0

通常、メッシュ固有の情報 (VBO/VAO) をインスタンス固有の情報 (変換、ユニフォームなど) から分離しようとします。

このように、インスタンス情報を操作するコードの部分は、VBO/VAO について何も知る必要がなく、その逆も同様です。

しかし、最近、glDrawInstanced を使用してハードウェア インスタンス化を使用し始めました。また、インスタンス属性が VAO で結合されているという事実により、懸念事項の分離が難しくなっています。

その理由は、通常、VBO/VAO は私の .OBJ ローダー (これを構築するために必要なすべての情報を持っています) から構築され、コードの他の部分はシェーダーのユニフォームだけを心配していたためです。ここで、コードのこれらの部分は、インスタンス属性に関する情報を添付するために、VAO の構造について知る必要があります。

これは、通常のレンダリングとインスタンス化されたレンダリングの両方で再利用できる VBO がある場合、さらに厄介になります。

メッシュ アトリビュートとインスタンス アトリビュートの設定の間で懸念事項を分離できる推奨される方法はありますか?

1 つは通常のレンダリング用、もう 1 つはインスタンス化されたレンダリング用で、必要な追加のインスタンス属性を追加するための 2 つの VAO を用意することを考えましたが、元の VAO データを複製または検査する方法が見つからなかったので、私のコンポーネントはインスタンスパラメータだけでなく、VBO/VAOの実際の構造。

4

1 に答える 1