VAOとglVertexPointer等を組み合わせてもいいのか
OpenGLのVBOを使ってると、
glBindBuffer(...); glVertexPointer(...); glBindBuffer(...); glNormalPointer(...); glBindBuffer(...); glColorPointer(...);
のようなコードが描画のたびに現れます。 最近はglAttribPointerが主流みたいですが、まだ上のようなコードもあると思います。 VAOを使えばこういうコードをまとめることができてスッキリ、便利、効率的らしいですが、VAOのサンプルはglAttribPointerを使ってるものが多い。しかし、なんとなくglAttribPointerに書き換えたくないけど、VAOは使いたいという状況。
やってみたら動きました。
使い方
VAOを作る:
GLuint vao; glGenVertexArrays(1, &vao); glBindVertexArray(vao); glBindBuffer(...); glVertexPointer(...); glBindBuffer(...); glNormalPointer(...); glBindBuffer(...); glColorPointer(...); glBindVertexArray(0);
VAOを使って描画:
glBindVertexArray(vao); glDrawArrays(...);