首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebGL错误: ArrayBuffer不足以满足gl.LUMINANCE情况下的请求

WebGL错误: ArrayBuffer不足以满足gl.LUMINANCE情况下的请求
EN

Stack Overflow用户
提问于 2017-03-14 15:19:18
回答 1查看 2.7K关注 0票数 2

我正在尝试使用Uint8Array来呈现一个图像,并获取WebGL: INVALID_OPERATION: texImage2D: ArrayBufferView,它不够大,不足以满足请求的需要。

代码语言:javascript
复制
var gl = currentImage.gl;
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, columns, rows, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, Buffer);

在很少的图像上,它工作得很好,但是它抛出的ArrayBuffer不足以对少数图像产生请求错误。

但是,如果我从列和行中减去1,它工作得很好,但是图像会倾斜。不过,我可以维护一个2d画布,并把它推到GPU上,但是我不想维护它,因为它会破坏一些性能,而且我需要不必要地处理画布。

这就是从1减去后的工作原理。

代码语言:javascript
复制
var gl = currentImage.gl;
gl.activeTexture(gl.TEXTURE0);
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, columns-1, rows-1, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, Buffer);

我是做错了什么还是错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 22:12:56

我怀疑问题纹理的宽度不会除以4,而且您没有考虑到UNPACK_ALIGNMENT。

试一试

代码语言:javascript
复制
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42789896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档