I have two suggestions concerning features for a next release of openGL.
First of all, I suggest to be able to create high bit depth frame buffers (16 bits per components, 12 bits, …), to increase multipass precision and to enable real time high dynamic range images. What would be nice would be to be able to define the output range used when creating the video signal.
The second suggestion would be to start introducing some techniques for speeding up image based rendering, if ever possible. For example, a new texture format that combines RGBA+Depth and warp functions to warp these kind of textures.
For the first suggestion, that has nothing to do with OpenGL itself. There’s nothing in OpenGL today that stops you from using a framebuffers with hery high precision. The problem is when you create the pixelformat, that you can’t create the pixelformat you want. But that’s not OpenGL’s fault.
OpenGL only defines a minimum precision, but not an upper limit.
You’re right. Well then at least if we could define the output range. Something like glColorBufferRange(0.2, 0.8) or something.
What do you mean by the color range? You want to clamp the color in the framebuffer to, in that example, the range [0.2 0.8] instead of todays [0.0 1.0]?
If so, you can do that with the GL_EXT_blend_minmax extension.
Its more of a color display control kind of functionnality like the Image/Levels control in Photoshop. You define what is the maximum level for “black” and minimum level for “white” that will be used when creating the video signal from the color buffer.
Well its probably not something that would belong in OpenGL maybe… But it would be damn useful for high intensity lighting effects!
Wait a minute, maybe the equivalent of glDepthRange would be perfect! glColorRange(Rmin, Rmax, Gmin, Gmax, Bmin, Bmax) + a glColorGain(GLfloat)…
[This message has been edited by Olive (edited 01-09-2002).]
Extended-range color buffers (and texture images) have been suggested in the past and will probably show up at some point. For example, signed color buffers with the range [-1, 1] or floating point buffers (say 10 bits mantisa, 5 bits exponent, 1 sign bit). The people involved in image processing and IBR would like that.