テクスチャなしで一般的な形状を描画できる関数を作成しようとしています。これには、プリミティブな多角形のシステムが含まれますが、例として、show myrectangle 関数を使用します。
void Rectangle(float x1, float y1, float x2, float y2);
すべてのレンダリングで VAO を使用しているため、これをどのように処理すればよいかわかりません。私の現在の考え方は、単一の VBO が接続された 1 つの VAO を使用し、これらの関数のいずれかが呼び出されるたびにこの VBO を編集することです。したがって、四角形の例では、単純にバッファをバインドし、glBufferData を呼び出して四角形のポイントのパラメータを含む配列を渡し、頂点配列をレンダリング システムの残りの部分に渡します。
情報が見つからないのは、VAO がバッファへの参照を保存するか、バッファとフォーマットに基づいてデータの内部コピーを作成するかです。VAO で描画しようとするたびにバッファを編集しても問題ありませんか? その場合、毎回 glVertexAttribPointer を呼び出す必要がありますか?