首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL单VBO与多VBO

OpenGL单VBO与多VBO
EN

Stack Overflow用户
提问于 2016-05-17 20:22:57
回答 1查看 1.1K关注 0票数 2

目前,在我的渲染引擎中,每个网格数据都有一个VBO (1个VBO用于顶点,1个VBO用于法线,1个VBO用于纹理坐标,1个VBO用于切线,1个VBO用于双切线),所有这些数据都与VAO绑定在一起。

我现在正在考虑更改系统,以保存包含所有网格数据(顶点、法线等)的单个VBO。但是我能从中得到多大的好处呢?说到速度和效用(因为如果我的网格没有纹理,我可能没有所有的数据,只提供顶点和法线)。

EN

回答 1

Stack Overflow用户

发布于 2016-05-17 20:40:20

您将寻求减少整体内存带宽。如果buffer对象包含交错在一起的所有属性,则意味着整个数组对象只引用内存的一个连续部分。这对于存储器子系统来说更容易高速缓存。这与CPU的原理完全相同--本地连续内存访问越多,速度就可能越快。

还有一个潜在的缺点:一般规则是,您应该将元素与元素大小和四个字节中较大的那个对齐。这导致了一些浪费的空间。但好处几乎总是大于坏处。

显然,唯一会受到影响的是GPU获取顶点所花费的时间。如果你是镶嵌或填充绑定,你不会立即看到任何改进。

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

https://stackoverflow.com/questions/37276090

复制
相关文章

相似问题

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