WebGL中相关Buffer的使用

2019-10-15  本文已影响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

// 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:是需要更新的数据

上一篇 下一篇

猜你喜欢

热点阅读