我对 WebGL 主题很陌生。我想要做的是计算 6 个不同帧缓冲区的平均颜色,如下图所示。现在我想知道最好的方法是什么?我试着做
gl.readPixels(0, 0, 256, 256, gl.RGBA, gl.UNSIGNED_BYTE, pixelValues);
但这似乎很慢......有没有办法在显卡上发生这种情况?
this is how the FBO is set up - I have this from a tutorial:
...
我对 WebGL 主题很陌生。我想要做的是计算 6 个不同帧缓冲区的平均颜色,如下图所示。现在我想知道最好的方法是什么?我试着做
gl.readPixels(0, 0, 256, 256, gl.RGBA, gl.UNSIGNED_BYTE, pixelValues);
但这似乎很慢......有没有办法在显卡上发生这种情况?
this is how the FBO is set up - I have this from a tutorial:
...
在我的头顶
我认为着色器看起来像这样
--片段着色器--
precision mediump float;
uniform sampler2D u_textures[6];
uniform float u_bias;
void main() {
// since we know we are rendering only with the last mip
// then there is only 1 texel.
vec2 center = vec2(0.5, 0.5);
vec4 sum =
texture2D(u_textures[0], center, u_bias) +
texture2D(u_textures[1], center, u_bias) +
texture2D(u_textures[2], center, u_bias) +
texture2D(u_textures[3], center, u_bias) +
texture2D(u_textures[4], center, u_bias) +
texture2D(u_textures[5], center, u_bias);
gl_FragColor = sum / 6.0;
}
你有两个选择