PDA

View Full Version : float color buffer



Amir Meteraso
09-27-2006, 06:42 AM
Hello,
I would like to render data (float) and read back the result as float. There seems to be ARB_color_buffer_float support for rendering to float buffer but I didn't found any good example how to use it.
what is the best way to render data to float buffer
and readback the result as float. any pointer to some example will be great
Thanks
Amir

k_szczech
09-27-2006, 07:36 AM
Common solution is to create texture with RGB_FLOAT16 or RGB_FLOAT32 format, and render to this texture using Pbuffer, or better yet Framebuffer object.
Remember that only GeForce6 and Radeon X1k will support blending when rendering to FLOAT16 texture. No hardware currently supports blending when rendering to FLOAT32 texture. The same goes to floating point texture filtering.
ARB_color_buffer_float also requires GeForce 6 but is not supported on ATI.

Amir Meteraso
09-27-2006, 10:09 AM
Thanks. I'm now checking render to texture (float32) with FBO and have some performance issue on nvidia (7600).
what do you think about ARB_color_buffer_float,
do you have any code exmaple using it?
I checked the spec and it seems to have what
i'm looking for: float frame buffer rendering with no clamping of value and the ability to
read the data as float. no lack getting it to work...-(

k_szczech
09-27-2006, 11:51 AM
what do you think about ARB_color_buffer_floatNever used it since it's not (yet) supported on ATI. I have 7800GT, but I want my applications to run on many GPU's.
Using textures+FBO has a few advantages, but a few drawbacks, too. If you want to avoid [0,1] clamping, then you have to use shaders. On the other hand shaders can access texture, but not the framebuffer, so you can perform many operations on your framebuffer directly in GPU if it's in texture.

have some performance issue on nvidia (7600)I've been using FBO on Radeon 9550, Radeon X850, GeForce 6600 and GeForce 7800 - no problems.
On GeForce I'm using FLOAT16 and on Radeons I'm using RGB10 (this is what I'm requesting, but it's actually RGB8 on older GPU's).