【发布时间】:2021-01-28 07:33:51
【问题描述】:
我以前有很多 VBO,但现在我将它们合并为一个,并根据我绘制的内容对其进行索引。问题是,当我将顶点加载到 VBO 并记录缓冲区中有多少字节时,它与 glDrawArrays 中的参数不匹配,其偏移参数是“第一”,而不是字节偏移。如果 VBO 中的所有顶点都是相同的布局,我应该做一个划分吗?例如,sizeof(Vertex) == 12 并且它被放置在 VBO 中字节偏移量 48 处,要绘制四个顶点我需要做 glDrawArrays(GL_TRIANGLE_STRIP, 48 / sizeof(Vertex), 4) ???
如果它是一个包含两种不同类型且布局不同的顶点的大缓冲区怎么办?由于缓冲区被释放为其他缓冲区腾出空间,并且它们被移动或调整大小,这应该如何完成?
为了设置我调用 glVertexAttribPointer 和 glEnableVertexArray 四五次的顶点,我试图避免在每次绘制调用时调用它们。
【问题讨论】: