3

私のメッシュ クラスには、単一の VAO インデックスと、頂点、色、tex 座標、法線、およびインデックス (使用されている場合) の 1 つのバッファーのインデックスがあります。そのメッシュ クラスに Wavefront .obj ファイルをロードし、すべてのグループを 1 つの VBO として扱います。次に、1 つのマテリアルを個別にロードし、それをバインドしてからメッシュを描画します。これは問題なく動作しますが、現在、複数のマテリアルを含む .obj ファイルをサポートすることを検討しています。

最も簡単な方法は、異なるマテリアルを使用する .obj 内のグループごとに新しいメッシュ インスタンスを作成し、それらを meshGroup オブジェクトまたは何かにグループ化することです。より良い (?) 方法は、メッシュの VAO 内で複数の VBO をサポートすることです。 、各バッファを描画するときに異なるマテリアルを割り当てます。2 番目の方法は他の方法よりも高速ですか (グループごとではなくメッシュごとの VAO バインディングしかないため)、または最初の方法を使用できますか?

編集:方法1を使用し、メッシュの各部分に異なるマテリアルを使用して個別のメッシュインスタンス(および関連するVAO)を作成することで機能しました。これは最善の方法ではないと確信しているので、誰かが洞察を持っているなら、それは大歓迎です!

4

0 に答える 0