Я создал текстуру путем рендеринга в FBO и долгое время безуспешно пытался прочитать текстуру. После неудачных попыток использовать glReadPixels () и glGetTexImage () (ошибки нарушения прав доступа) я решил попробовать PBO.
Вот код, который я использую сразу после рендеринга в буфер кадра и успешного создания текстуры:
glReadBuffer(GL_FRONT);
glBindBuffer(GL_PIXEL_PACK_BUFFER, PBO);
glReadPixels(0, 0, 1024, 768, GL_RGB, GL_UNSIGNED_BYTE, 0);
glBindBuffer(GL_PIXEL_PACK_BUFFER, PBO);
GLubyte* ptr = (GLubyte*)glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY);
if (ptr)
{
//processPixels(ptr, ...);
glUnmapBuffer(GL_PIXEL_PACK_BUFFER);
}
glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
Однако я никогда не ввожу l oop, что означает, что значения не читать. Я что-то забываю?