我正在使用OpenGL编写一个小图形引擎(通过带有C#的OpenTK).
为了定义顶点属性,我有一个VertexDeclaration类,其中包含一个VertexElement结构数组,这些结构映射到glEnableVertexAttribArray/glVertexAttribPointer调用.
此外,为了支持多个顶点流,我有一个特殊的结构,包含顶点缓冲区,顶点声明,顶点偏移和实例频率(如XNA的VertexBufferBinding结构).
目前,每当调用一个绘图调用时,我迭代所有设置的顶点流并绑定它们的顶点缓冲区,应用顶点声明,禁用未使用的顶点属性并绘制基元.
我想使用VAO将glEnableVertexAttribArray调用缓存到它们中,并且每当应用顶点流时,绑定VAO并更改其数组缓冲区绑定.
这是VAO的正确用法吗?
opengl ×1