opengl学习笔记——缓冲区对象-创新互联
1、创建缓冲区对象标示符
站在用户的角度思考问题,与客户深入沟通,找到昌黎网站设计与昌黎网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖昌黎地区。glGenBuffers(GLsizei n , GLuint * buffers),
生成n个当前未使用的缓冲区对象标示符(注意是标示符,不是缓冲区对象,缓冲区对象(即以下的target)包括GL_ARRAY_BUFFER(顶点数据),GL_ELEMENT_ARRAY_BUFFER(表示索引数据),GL_PIXEL_UNPACK_BUFFER(表示传递给Opengl的像素数据),GL_PIXEL_PACK_BUFFER(表示从opengl获取的像素数据),GL_COPY_READ_BUFFER和GL_COPY_WRITE_BUFFER(表示在缓冲区之间复制数据),GL_TEXTURE_BUFFER(作为纹理缓冲区存储的纹理数据)、GL_TRANSFORM_FEEDBACK_BUFFER(表示执行一个变换反馈着色器的结果)、或者GL_UNIFORM_BUFFER(表示统一变量值))。
2、创建激活缓冲区对象
glBindBuffer(GLenum target,GLuint buffer)
完成以下三个任务之一:1、当buffer时一个首次使用的非零无符号整数时,他就创建一个新的缓冲区对象,并把buffer分配给这个缓冲区对象;2、当绑定到一个以前创建的缓冲区对象时,这个缓冲区对象变成为活动的缓冲区对象;3当绑定到一个值为0的buffer时,opengl就会停止缓冲区对象。
3、数据分配和初始化缓冲区对象
glBufferData(GLenum target, GLSizeiptr size,const GLvoid *data, GLenum usage);
target代表缓冲区对象;size缓冲区大小,data用于初始化缓冲区对象,若为null则保留size个单位的空间内存,但不会对他进行初始化,usage代表读取写入方式
4、更新缓冲区对象的数据
glBufferSubData(GLenum target, GLintptr offset,GLsizeiptr size, const GLvoid* data)
代表用data指向的数据更新域target相关联的当前绑定缓冲区对象中从offset开始的size个字节数据。
GLvoid* glMapBuffer(GLenum target,GLenum access)
返回指向与target相关联的当前绑定缓冲区对象的数据存储,在完成数据的存储访问后,调用glUnmapBuffer(GLenum target)取消缓冲区映射。
5、清除缓冲区对象
void glDeleteBuffers(GLsizei n,const GLuint * buffers);
完成对缓冲区对象的操作后,可以释放它的资源,并使它的标示符可以由其他缓冲区对象使用。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:opengl学习笔记——缓冲区对象-创新互联
本文网址:http://azwzsj.com/article/ghcip.html