【发布时间】:2013-08-08 02:11:56
【问题描述】:
我正在尝试编写可以绘制没有纹理的通用形状的函数。这包括一个原始多边形形状的系统,但作为示例,我将使用显示我的矩形函数:
void 矩形(float x1,float y1,float x2,float y2);
鉴于我的所有渲染都使用 VAO,我不确定如何最好地处理这个问题。我目前的想法是使用一个附有单个 VBO 的 VAO,并在每次调用其中一个函数时编辑这个 VBO。因此,对于矩形示例,我将简单地绑定缓冲区并调用 glBufferData,传入一个带有矩形点参数的数组,然后将顶点数组传递到我的渲染系统的其余部分。
我找不到关于 VAO 是存储对缓冲区的引用还是根据缓冲区和格式制作数据的内部副本的信息。每次我要使用它的 VAO 绘制时都可以编辑缓冲区吗?如果是这样,我每次都必须调用 glVertexAttribPointer 吗?
【问题讨论】:
-
Iirc,参考资料说 VAO 存储绑定到它的 VBO 的 ID,但没有什么可以阻止您将 VBO 绑定到多个 VAO。使用 VAO 的目的是避免为给定的渲染管道设置绑定通常需要的所有样板代码。
-
there 你去吧。
-
“参考”是指 opengl 规范。
标签: opengl vertex-buffer