Есть ли способ рендеринга в буфер рендеринга и на дисплей без необходимости многократного вызова функции рисования? Я хотел что-то вроде этого:
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE2D, tbo, 0);
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
GLenum* attachments[2] = {GL_COLOR_ATTACHMENT0, ...} //with the second I want to render to screen which would have the same value like the first
glDrawBuffer(2, attachments);
glDrawElements(GL_TRIANGLES, 12*3, GL_UNSIGNED_INT, 0);
Так что я могу использовать то, что нарисовал одновременно, как текстуру для другого rendercall. Я мог бы просто написать
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glDrawElements(GL_TRIANGLES, 12*3, GL_UNSIGNED_INT, 0);
, но для этого потребовалось бы снова нарисовать сцену, что было бы медленно. Другим решением было бы просто нарисовать кадровый буфер, но я подумал, что будет более разумное решение.