webgl2 将数据从 pbo 移动到 vbo 大小限制
webgl2 moving data from pbo to vbo size limitations
我正在尝试将一些数据从纹理复制到 VBO。我不太确定我是否做对了,也不确定我是否理解 PBO 是什么,但我有这样的事情:
gl.bindFramebuffer(gl.FRAMEBUFFER, this.fb);
gl.bindBuffer( gl.PIXEL_PACK_BUFFER , this.vbo );
gl.readPixels( 0,0, this._numVerts * 2 , 1 , gl.RGBA , gl.FLOAT , 0 );
据我所知,这是可行的。
我对 gl.readPixels 中矩形的大小感到困惑。是否可以读取任意数量的像素?
说我想读 GL_MAX_TEXTURE_SIZE + 1
?我可以读取整行,但我能对其余部分做些什么,有没有办法提供偏移量并通过多次读取来做到这一点?
即
gl.readPixels( 0,0, textureWidth , someNumberOfRows , gl.RGBA , gl.FLOAT , 0 );
//? something like bufferSubData
gl.readPixels( 0, someNumberOfRows, remainder , 1 , gl.RGBA , gl.FLOAT , 0 );
简短的回答是否。 AFAICT 您只能读取数据的矩形,并且必须按整个像素读取。
可以考虑将整行四舍五入或更改输出以适合最小的矩形。
我正在尝试将一些数据从纹理复制到 VBO。我不太确定我是否做对了,也不确定我是否理解 PBO 是什么,但我有这样的事情:
gl.bindFramebuffer(gl.FRAMEBUFFER, this.fb);
gl.bindBuffer( gl.PIXEL_PACK_BUFFER , this.vbo );
gl.readPixels( 0,0, this._numVerts * 2 , 1 , gl.RGBA , gl.FLOAT , 0 );
据我所知,这是可行的。
我对 gl.readPixels 中矩形的大小感到困惑。是否可以读取任意数量的像素?
说我想读 GL_MAX_TEXTURE_SIZE + 1
?我可以读取整行,但我能对其余部分做些什么,有没有办法提供偏移量并通过多次读取来做到这一点?
即
gl.readPixels( 0,0, textureWidth , someNumberOfRows , gl.RGBA , gl.FLOAT , 0 );
//? something like bufferSubData
gl.readPixels( 0, someNumberOfRows, remainder , 1 , gl.RGBA , gl.FLOAT , 0 );
简短的回答是否。 AFAICT 您只能读取数据的矩形,并且必须按整个像素读取。
可以考虑将整行四舍五入或更改输出以适合最小的矩形。