glBufferSubData是OpenGL中的一个函数,它可以用来更新VBO中的部分数据。

使用方法:

glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);

参数说明:

target: 指定要更新的缓冲区类型,例如GL_ARRAY_BUFFER、GL_ELEMENT_ARRAY_BUFFER等。
offset: 指定更新数据在VBO中的偏移量。
size: 指定要更新的数据大小。
data: 指向要更新的数据的指针。
使用glBufferSubData可以更新VBO中的部分数据而不用每次重新上传所有数据。这可以提高渲染效率。

如:

float newData[] = {1.0f, 2.0f, 3.0f};
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferSubData(GL_ARRAY_BUFFER, sizeof(float) * 3, sizeof(newData), newData);

这段代码将在VBO中偏移量为3个float大小的位置开始更新3个float大小的数据,即newData数组。

在使用glBufferSubData时需要注意,修改的数据必须已经在VBO中分配过空间。因此,在使用glBufferSubData之前需要先使用glBufferData或glBufferStorage分配VBO缓存空间。

需要注意的是,使用glBufferSubData会导致之前调用的glMapBuffer或glMapBufferRange返回的指针失效,如果需要继续使用需要再次调用这两个函数。

glBufferSubData简介相关推荐

  1. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  2. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  3. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  4. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  5. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  6. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  7. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  8. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  9. 计算机视觉系列最新论文(附简介)

    计算机视觉系列最新论文(附简介) 目标检测 1. 综述:深度域适应目标检测标题:Deep Domain Adaptive Object Detection: a Survey作者:Wanyi Li, ...

最新文章

  1. 数据结构[单链表]操作大全(初始化,创建,插入,查询,删除,长度,输出)c++代码实现
  2. struts2 理解
  3. html将字符转成浮点数,stm32用串口接收到数据,怎么把接收到的字符串转换成浮点数?...
  4. leetcode算法题--1比特与2比特字符
  5. 表单验证AngularJs
  6. 从别的地方转来的 网址
  7. LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)
  8. Storm性能简单测试
  9. linux创建文件后会自动删除,linux会自动删除目录和文件的吗
  10. linux 编辑文件vim,linux下通过vim编辑文件的方法
  11. 书屋(一):读《世界是平的》有感
  12. SLAM 无人车融合 IMU 前与 融合 IMU 后的实测效果演示
  13. Chapter4.5:根轨迹法考研参考题
  14. 链家数据爬取+地图找房
  15. win10专业版激活后变成教育版怎么改回专业版
  16. 手机怎么录游戏视频 手机屏幕录制的方法
  17. JS JQUERY获取两个时间相差几个月
  18. mediawiki mysql配置_安装MediaWiki
  19. 蓝牙音响加拿大IC认证知多少
  20. 磁性微型机器人通过结肠翻筋斗以输送药物

热门文章

  1. Itext图层合并/分离
  2. linux unix shell programming,UNIX Shell Programming, 4th Edition
  3. 大数据(041)机器学习【多元线性回归实例】
  4. PyCharm如何设置源代码字体的大小
  5. 【论文学习】人脸识别——DeepFace:深度学习人脸识别开山之作
  6. 【插件】大漠后台绑定 - 剑灵2 、天堂W
  7. 升级黑苹果EFI内OpenCore和驱动等
  8. ACMer菜鸟的ACM寒假集训感悟
  9. 射频、中频、基带拉远
  10. R语言操作PDF文件的包