Archived

This topic is now archived and is closed to further replies.

dslprog

OpenGL OpenGL raw

Recommended Posts

I have a texture in RGBA mode, but instead of color values, I''ve got 32 bit directions on it. I need to draw it on the frame buffer exactly as is, without any filter nor clamping. I use glReadPixels to read the frame buffer but when I do it, I don''t obtain the same pixels (32 bit directions), and that''s very bad, I think I''ve disabled everything that modifies the pixels: glDisable(GL_LIGHTING); glShadeModel(GL_FLAT); glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL); glTexImage2D(...,GL_NEAREST); // MIN and MAG filters But I''ve read that glReadPixels does some pixel operations before storing the data to the client memory. Is there any way to prevent OpenGL to do such operations?

Share this post


Link to post
Share on other sites
Have you checked if you''re rendering in 16 or if the textures are stored in 16 bit? If they are, you''ll lose some precision hence your problem.

Also, I''m sure it''s possible to just read the texture data directly. Might be not, but I''m pretty sure it is.

Share this post


Link to post
Share on other sites
quote:
Original post by dslprog
The textures are in 32 bpp (RGBA) 8 bit per component.


... maybe your application is running at 16 bpp. I mean - meaby your data buffer (not the texures) is set to 16 bpp and that''s why you lose the precision?

-----------------


... you got me on my knees, Layla

Share this post


Link to post
Share on other sites
I''m sure my application is running at 32 bpp. I''m using a PBuffer to render the scene, but I''ve configured it also at 32 bpp. Anybody knows if it''s possible to store 32 bit directions in a texture using OpenGL, drawing it, and then obtain the actual values?

Share this post


Link to post
Share on other sites
... you know what? I suggest that you should visit www.opengl.org - you''ll find there the best OpenGL related forum !

Share this post


Link to post
Share on other sites