OpenGL缓冲对象:glBufferSubData、glNamedBufferSubData简介

  1. OpenGL缓冲对象概念
  2. 缓冲区对象 Buffer Objects API列表

  1. 缓冲区对象 Buffer Objects
  2. 创建和绑定缓冲区对象 Creating and Binding Buffer Objects
  3. 创建缓冲对象数据存储 Creating Buffer Object Data Stores
  4. 修改缓冲对象数据存储 Modifying Buffer Object Data Stores
  5. Clear缓冲对象数据存储 Clear Buffer Object Data Stores
  6. 映射映射缓冲数据 Mapping Buffer Data
  7. 刷新映射缓冲数据 Flush Buffer Data
  8. 取消映射缓冲数据 Unmapping Buffer Data
  9. 使缓冲区数据无效 Invalidating Buffer Data
  10. 缓冲区间复制 Copying Between Buffers
  11. 缓冲对象查询 Buffer Object Queries

void glBufferSubData( enum target, intptr offset,sizeiptr size, const void *data );

void glNamedBufferSubData( uint buffer, intptr offset,sizeiptr size, const void *data );

glBufferSubDataglNamedBufferSubData 是 OpenGL 中用于修改缓冲对象数据存储区中部分或全部数据的命令。

  • 对于 glBufferSubData 函数,需要指定目标(target),该目标是缓冲对象当前绑定到的目标类型,必须是表6.1列出的值之一。通过这个函数,你可以修改与特定目标类型相关联的缓冲对象的数据。

  • 对于 glNamedBufferSubData 函数,直接通过名称(buffer)来指定要修改的缓冲对象。

在两个函数中,参数 offsetsize 都是用来指示缓冲对象内将被替换数据的范围,以基本机器单位为单位。而 data 参数则指向客户端内存中长度为 size 个基本机器单位的区域,其中包含用来替换缓冲区指定范围内的新数据。

总结来说,这两个函数都允许开发者更新已分配的缓冲对象中的部分内容,而不是整个重新分配和填充新的数据。这对于需要频繁局部修改缓冲内容的情况非常有用。

你可能感兴趣的:(OpenGL,图形渲染)