0

我正试图用Javascript实现GPU加速计算

我通过以下方式输入图像

const gl=this.renderer.getContext()//这是一个三号投手。WebGLRendererthis.distancesTransform反馈。BSTextureLoc=gl.getUniformLocation(this.distancesTransformFeedback.program,'BSTexture');gl.activeTexture(gl.TEXTURE0);let texture=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,纹理);gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA32UI,4096,4096,0,gl.RGBA_INTEGER,gl.UNSIGNED_INT,this.paddedblendshapes);gl.uniform1i(this.distancesTransformFeedback.BSTextureLoc,0);

在我使用的着色器中

均匀高usampler2D BSTexture;

然而,它总是抛出错误

[.WebGL-000039AC02ED8000]GL_INVALID_OPERATION:纹理格式和采样器类型(有符号/无符号/浮点/阴影)不匹配。

我咨询过这个回答

我已经抬头了OnpenGL ES 3.0.6版它说这是一个有效的组合

格式 类型 内部格式(_F)
RGBA_整数 未指定_INT RGBAUI32型

我想不出是怎么回事


更新:

我尝试了Firefox浏览器,它的输出表明我没有正确输入纹理。

WebGL警告:单元0处的drawArraysInstanced:TEXTURE_2D为FLOAT类型,但着色器采样为UINT。WebGL警告:getBufferSubData:从使用非*_READ的缓冲区读取会导致管道暂停。通过STREAM_READ缓冲区进行复制。

我仍然不知道如何解决这个问题。

2
  • 什么是WebGLRenderer? 或者你是说WebGLRenderingContext(WebGL渲染上下文)? 如果是,那么应该是WebGL2呈现上下文
    – 瓦列宁
    评论 4月7日16:38
  • 谢谢你指出其中的模糊之处。这是一个三。WebGLRenderer 评论 4月7日16:53

0

重置为默认值

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.