Reading color pixel information from FBO

Started by
3 comments, last by Alessandro 12 years, 2 months ago
So I have FBO working just fine (generated texture is bind to a simple test quad and show ok).

However I have troubles reading the color information of the buffer. Here is how I do it:


glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboId);
glReadBuffer(GL_COLOR_ATTACHMENT0);
unsigned char *pixels_rgb= new unsigned char[window_width * window_height * 4];
glReadPixels(some_x, some_y, 1, 1, GL_RGBA_INTEGER, GL_UNSIGNED_INT, pixels_rgb);


The pixel_rgb just contains null data.
Advertisement
Never mind: I solved it (made an error with the unsigned char assignment). Sorry
Never mind: I solved it (made an error with the unsigned char assignment). Sorry.

However, there is still something I'd like to ask. Using glReadPixels to get pixel information is very slow. What alternative could be used? Maybe PBO's?
Never mind: I solved it (made an error with the unsigned char assignment). Sorry.

However, there is still something I'd like to ask. Using glReadPixels to get pixel information is very slow. What alternative could be used? Maybe PBO's?
PBO can help make glReadPixels a async operation. That way, you can hide the latency if you don't need the pixel values *immediatly* after the call to glReadPixels.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Thanks, got it working!

This topic is closed to new replies.

Advertisement