【问题标题】:add new data to a buffer while keeping existing data in OpenGL将新数据添加到缓冲区,同时将现有数据保留在 OpenGL 中
【发布时间】:2020-01-17 21:26:15
【问题描述】:

我想向我的缓冲区添加新数据。

我不能使用glBufferSubData,因为缓冲区没有足够的分配内存。

当我尝试预先使用glBufferData 更改缓冲区大小时,已经存在的数据会丢失。

在保留现有数据的同时添加新数据的正确方法是什么?

【问题讨论】:

    标签: opengl buffer


    【解决方案1】:

    你没有。您应该为缓冲区对象分配您认为合理需要的尽可能多的内存,然后使用当前需要使用的存储空间。因此,“添加数据”只是使用更多的现有存储空间。

    【讨论】:

    • 有可能吗?
    • @IceRise:定义“可能”。我的意思是,有一种显而易见的方法是将数据复制到另一个缓冲区,扩展原始缓冲区的大小,然后将其复制回来,但这显然很愚蠢,因为它需要一堆额外的内存分配和内存复制,而你本来可以分配第一次正确的存储量。此外,这意味着重新分配缓冲区的存储空间,这又不是一个好主意。
    • 好吧,就我而言,无法预测缓冲区中的数据量,因此不可避免地我可能需要在某个时候更改缓冲区大小。由于没有有效的方法来做到这一点,我可能只是为每个缓冲区设置一个固定限制,并在需要时创建更多缓冲区。
    猜你喜欢
    • 2023-01-07
    • 2011-04-04
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多