Так что сейчас я пытаюсь визуализировать мою текущую сцену с 2 текстурами, связанными на FBO как GL_COLOR_ATTACHMENT (0 & 1).
В состоянии инициализации я прикрепил 2 текстуры и вызвал glDrawBuffers, чтобы указать 2расположение вывода для шейдера.
glBindFramebuffer(GL_FRAMEBUFFER, m_RendererID);
unsigned m_ColorBufferTexture;
glGenTextures(1, &m_ColorBufferTexture);
//...
unsigned m_AddtionalColorBufferTexture;
glGenTextures(1, &m_AdditionalColorBufferTexture);
//...
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, m_ColorBufferTexture, 0);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1,
GL_TEXTURE_2D, m_AdditionalColorBufferTexture, 0);
uint32_t drawBuffers[2] = {GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT1};
glDrawBuffers(2, (GLenum*)drawBuffers);
А во фрагментном шейдере я просто указываю
layout(location = 0) out vec4 color;
layout(location = 1) out vec4 pseudo_color;
Проблема заключается в том, что я пытаюсь проверить, успешно ли записана m_AdditionalColorBufferTexture путем рендеринга этой текстурына экране это не удалось, и я получил черный экран.(теперь m_ColorBufferTexture может отображаться очень хорошо.)
Но если я переключу порядок COLOR_ATTACHMENTs в drawBuffers, а также переключу расположение вывода цвета и pseudo_color в шейдере, m_AdditionalColorBufferTexture можно будет отобразить на экране.
Кажется, у меня не работает glDrawBuffers.И что будет первым в списке drawBuffers, может получать только выходные данные от фрагментного шейдера?
Что не так с моим кодом?