如何从纹理中读回RGBA浮点数

时间:2016-01-14 20:38:09

标签: javascript textures webgl

我有一个512x512纹理,我存储在WebGL中

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 512, 512, 0, gl.RGBA, gl.UNSIGNED_BYTE, null)

之后我写了这个纹理。现在我想让RGBA浮起来。

据我所知,这个纹理使用4个通道(RGBA)来存储浮点数,这些浮点数被归一化[0; 1]。

我正在做以下事情来回读:

  var framebuffer;
  framebuffer = gl.createFramebuffer();
  gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
  gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
var mydata= new Uint8Array(512 * 512 * 4);
gl.readPixels(0, 0, 512, 512, gl.RGBA, gl.UNSIGNED_BYTE, mydata);

但我正在阅读垃圾值。

我哪里出错?

0 个答案:

没有答案