Я использую WebGL для некоторой обработки изображений, и я хотел бы, чтобы мой фрагментный шейдер выводил на 1 или 2 канальную текстуру.Я могу прикрепить RGBA или RGB текстуру к кадровому буферу и вывести их успешно.Но если вместо этого я присоединяю текстуру LUMINANCE или LUMINANCE_ALPHA к кадровому буферу, состояние fb отображается как неполное и не работает.Надеюсь избежать ненужных лишних текстурных каналов, но не уверен, возможно ли это.Спасибо за любые предложения!
Если формат изменен на gl.RGBA ниже, то это работает:
gl.getExtension("OES_texture_float")
var tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
var format = gl.LUMINANCE;
gl.texImage2D(gl.TEXTURE_2D, 0, format, 512, 512, 0, format, gl.FLOAT, null);
var fb = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, tex, 0);
if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) {
alert("framebuffer not complete");
}