美文网首页
WebGL中相关Buffer的使用

WebGL中相关Buffer的使用

作者: 不决书 | 来源:发表于2019-10-15 16:55 被阅读0次

1、createBuffer() 在显存中创建缓存区

triangleBuffer = webgl.createBuffer();

2、bindBuffer() 将创建好的缓存区绑定到WebGL对象上

webgl.bindBuffer(webgl.ARRAY_BUFFER, triangleBuffer);

3、bufferData() 上传数据到缓存区

webgl.bufferData(webgl.ARRAY_BUFFER, new Float32Array(jsArrayData), webgl.STATIC_DRAW);

数据类型,可以是 gl.ARRAY_BUFFER , gl.ELEMENT_ARRAY_BUFFER ,本例中使用的是 gl.ARRAY_BUFFER

  • 缓冲类型,有这么几种可以供我们选择 GL_STREAM_DRAW , GL_STATIC_DRAW ,GL_DYNAMIC_DRAW

  • 缓冲区的数据偶尔变动用GL_STREAM_DRAW,缓冲区的数据不变用GL_STATIC_DRAW,缓冲区数据经常变动用

    GL_DYNAMIC_DRAW (红色是WebGL中常用的)

// WebGL1: 
void gl.bufferSubData(target, offset, ArrayBuffer srcData); 
void gl.bufferSubData(target, offset, ArrayBufferView srcData);

这个是用来做缓存数据的部分更新, target :同上数据类型,offset offset单位是字节,意思是从

BufferDataSource? data所指向的数组或缓冲的首地址偏移offset个字节开始读数据,上面代码offset是0,代表是从数组或缓冲区首地址开始读数据,若offset=2时,如下图所示:

1568991304459-69ea5292-d1be-487e-ac2d-892059934afa.png

srcData:是需要更新的数据

相关文章

网友评论

      本文标题:WebGL中相关Buffer的使用

      本文链接:https://www.haomeiwen.com/subject/znksuctx.html