相关疑难解决方法(0)

是否可以就地调整VBO的大小?

标题说明了一切,但为了清楚起见我会添加一些额外的单词.

在这种情况下,调整大小意味着:

  • 在旧的vbo结束时获得更多的存储空间
  • 将旧数据保存在前面
  • (希望不要复制,但至少不要在CPU端,这意味着驱动程序应该处理这个)

编辑

至于解释一些更多的细节并证明我的问题:
我会将(正手)未知大小的数据存储到VBO,但我只知道一个非常粗略估计的上限(在异常条件下10-100倍甚至更多) ).

当然我知道我存储了多少数据,当我完成它时,所以存储数据会很好,直到我发现我的VBO太小并调整它然后再继续存储.

这就是为什么我不想复制(特别是不在CPU端):
我在GPU上做这一切以获得交互式帧速率.当我不得不复制时,它很慢甚至不可能,因为没有足够的空间.最糟糕的是通过CPU复制数据,从而将所有内容通过总线传递到具有足够大小的新内存区域,然后glBufferData使用新大小的VBO和新内存区域作为源.那将是性能杀手.

绕开

我通过准确估计所需空间来规避问题.但是我会让这个问题在一个星期内无法回答,看看是否有人对此有另一个暗示,因为我对解决方案不太满意.

opengl vbo

11
推荐指数
2
解决办法
8167
查看次数

标签 统计

opengl ×1

vbo ×1