Как нарисовать внеэкранные данные в объекте кадрового буфера в QGLWidget?

Я использую glGenFramebuffer, glBindFramebuffer и другие связанные функции для создания объекта Framebuffer (FBO) и использую FBO для рисования данных вне экрана. Теперь мой вопрос заключается в том, чтобы я завершил упомянутые шаги внутри QGLWidget и как я могу отрисовать данные в FBO обратно в QGLWidget? Большое спасибо!

1 ответ

Предполагая, что вы прикрепили цветной буфер к вашему кадровому буферу, используя

glFramebufferTexture2D( myfboID, GL_FRAMEBUFFER, GL_TEXTURE_2D, mytexID, 0);

Измените кадровый буфер на виджет

glBindFrameBuffer(GL_FRAMEBUFFER, 0);
glClear(GL_COLOR_BUFFER_BIT);

Просто визуализируйте QUAD, текстурированный с предыдущей текстурой. Вы можете просто визуализировать четырехугольник от [-1,-1] до [1,1] и с указанной выше границей текстуры, и координаты текстуры будут [0.0,0.0] - [1.0,1.0].

Другие вопросы по тегам