Would anyone like to speculate how floating-point renderable buffers (slated for introduction with ATi’s R300 and nVidia’s NV30 generation GPUs) will be exposed in OpenGL 1.4?
In particular how will be they exposed under GLX? GLX allows you to select buffers based on the number of bits-per-component, but can’t distinguish between integer and floating-point formats (as far as I can tell).
Presumably it would be implemented as a GLX extension?
There’s already an extension for depth floats, so something similar to extend WGL_ARB_pixelformat is probably needed ( WGL_RGBA_FLOAT_ARB pixel type attribute ).
No need for an extension for this. The current pixel format allows you to ask for 32-bits per component when requesting a pixel format. Therefore, all an implementation needs to do is decide that a 128-bit framebuffer means, intrinsically, floating-point precision.
Although that could be confusing, or violate the specification. So, maybe an extension is the best thing.
The thing you need to remember here is that the framebuffer doesn’t support values outside the range 0 to 1. This means you really do need an extension. Also, I don’t know of any OS that allows the allocation of windows with a color depth to match thet request. This means you will likely need to request it as a pbuffer.
Using pbuffers seems like a good idea for another reason - multiple render targets. But that would likely require another extension to allow multiple pbuffers to be current ( similar to ARB_make_current_read perhaps ) ?
EDIT: Or use 4 auxiliary buffers in a single pbuffer ( I don’t remember if that’s allowed ).
[This message has been edited by PH (edited 08-02-2002).]
Originally posted by ehart:
The thing you need to remember here is that the framebuffer doesn’t support values outside the range 0 to 1.
Yes, I was also wondering how this aspect of FP buffers might fit in with the overall ethos of OpenGL.
Won’t some of the blending equations (p217 of the Red Book) break down (or at least give “interesting” results) if the component values in the render target are outside the range 0 <= RGBA <= 1 ???