У меня есть QOpenGLFramebufferObject, в который я писал и читал с использованием texture () в моем приложении. Я добавил второе цветное вложение, чтобы включить в него некоторые дополнительные данные, но похоже, что данные в него не записываются.
// creating the FBO (this has been working)
_drawFbo = new QOpenGLFramebufferObject(PAINT_FBO_WIDTH, PAINT_FBO_WIDTH, QOpenGLFramebufferObject::Depth);
// now I'm adding another color attachment
_drawFbo->addColorAttachment(PAINT_FBO_WIDTH, PAINT_FBO_WIDTH);
И затем в моем шейдере я пишу в оба вложения, когда шейдер связан:
layout(location=0) out vec4 meshWithPaintColor;
layout(location=1) out vec4 primitiveId;
void main() {
...
meshWithPaintColor = vec4(finalColor, 0);
primitiveId = vec4(1,1,1,1);
Когда я пытаюсь прочитать из этого 2-го вложения, используя значение textures () [1], привязанное к сэмплеру шейдера, значения всегда кажутся равными нулю.
Нужно ли мнесделать что-нибудь с QOpenGLFramebufferObject, чтобы разрешить рисование во втором цветном приложении?