首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换现有VAO中的VBO

替换现有VAO中的VBO
EN

Stack Overflow用户
提问于 2012-08-30 14:21:05
回答 1查看 1.6K关注 0票数 8

我有一个带有VBO的VAO,用于各种顶点属性:顶点位置、顶点法线和元素数组VBO(均为STATIC_DRAW),因此呈现一个实例只需:

代码语言:javascript
复制
glBindVertexArray(vao);
glDrawElements(GL_TRIANGLES, <count>, <type>, 0);

但是,我希望绘制一个对象的多个实例(我仅限于OSXGL3.2核心配置文件BTW),每个实例具有不同的顶点纹理(s,t)坐标。texcoord使用STREAM_DRAW提示(尽管我可能不使用DYNAMIC_DRAW)。

绑定VAO、绑定当前的texcoord、通过glVertexAttribPointer设置属性指针、用glBindVertexArray(0)完成VAO并绘制具有不同纹理坐标的新实例是否更有效?还是更新VAO的成本使得这是一种糟糕的方法?如何用绑定VAO中的glBufferSubData更新texcoord呢?

我非常希望在对单独的方法进行基准测试之前提供一些反馈,因为错误的选择会导致重大的重构。

EN

回答 1

Stack Overflow用户

发布于 2012-08-30 14:47:33

只需创建多个VAO。顶点数组对象是轻量级的,它们用于一次性设置顶点数组.

一个VBO可以绑定到多个VAO,使您的生活更容易和更快。

如果您想要在某个时候进行另一种属性配置,那么丢弃旧的VAO并创建一个新的属性配置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12199042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档