我正在使用WebGL进行一些图像处理,我希望我的片段着色器输出为1或2通道纹理。我可以将RGBA或RGB纹理附加到帧缓冲区并成功输出到帧缓冲区。但是,如果我将亮度或LUMINANCE_ALPHA纹理附加到帧缓冲区,则fb状态显示为未完成,并且它不起作用。希望避免不需要的额外纹理通道,但不确定这是否可能。谢谢你的建议!
如果将格式更改为下面的gl.RGBA,则可以正常工作:
gl.getExtension("OES_texture_float")
var tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
v
所以,我把纹理读入我的片段着色器。我可以输出到“显示”,但是如何输出/写入另一个纹理呢?基本上我想做的是:
read in info from texture 1 // working
do stuff with data //working.
output to texture 2 // ??
display texture 2 // working.
第二轮:
read in infom from texture 2 // working
do stuff with data //working.
output to texture 1 // ??
display texture
我试图弄清楚如何在WebGL中进行混合模式。到目前为止,我使用了本机HTML5画布绘图函数,例如,您可以这样做:
var ctx = new Document.getElementById('canvas').getContext('2d');
ctx.globalCompositeOperation = 'lighter'
现在,出于性能考虑,我尝试将其移植到WebGL。但是,我很难理解如何影响WebGL中的混合模式。据我所知,顶点着色器决定哪些不同的纹理/多边形是可见的,然后对这些纹理/多边形的可见部分的每个像素调用片段着色器。然而,如果我有