PDA

View Full Version : Multisample from Floating Point Buffers ?



pocketmoon
09-18-2002, 02:07 AM
I gather from the Nvidia OpenGL 1.4 'slides' that this wont be supported ??

Does this means that I wont be able to bind directly to a floating point pbuffer and use a frag prog to take multiple samples from it ? I'm unclear on whether this restriction only applies to ARB_MULTISAMPLE or to multiple samples from a fragment programme as well.

- Rob J.



[This message has been edited by pocketmoon (edited 09-18-2002).]

vshader
09-18-2002, 05:52 AM
it's gotta be ARB_MULTISAMPLE.
50% of useful fragment programs will be sampling the same texture several times - doesn't make any sense to restrict it for float buffers. the HDR tricks nvidia and ATI have been suggesting cannot work without downsampling the same floatbuffer many times.

jwatte
09-18-2002, 10:58 AM
ARB_MULTISAMPLE and running multiple TEX lookups on the same texture source are very different operations.

The specification for NV_fragment_program explicitly allows any number of texture look-ups in a fragment program, and explicitly allows it from the same texture.

pocketmoon
09-18-2002, 12:21 PM
Originally posted by jwatte:
ARB_MULTISAMPLE and running multiple TEX lookups on the same texture source are very different operations.

The specification for NV_fragment_program explicitly allows any number of texture look-ups in a fragment program, and explicitly allows it from the same texture.


But the Nvidia Opengl slides state that a limitation on floating point buffers is no multisample support.

I agree with you that ARB_MULTISAMPLE and multiple tex lookups are not related and the wording suggests they meam ARB_... rather than multitexturing.

The terminology gets more confused when you look at Cg, which has 'samplers' rather than 'texture' http://www.opengl.org/discussion_boards/ubb/smile.gif

Rob

pbrown
09-20-2002, 08:15 PM
The previous comments are correct.

ARB_multisample (often referred to as "FSAA") doesn't work on floating-point buffers.

In NV_fragment_program, you should be able to define a floating-point texture (either directly or using NV_render_texture_rectangle and a floating-point pbuffer), and do arbitrarily many texture lookups.

Well, not quite arbitrarily many -- you can only do 1024 of them. :-)

ehart
09-21-2002, 06:07 AM
Multisampling is also not available on float targets with the Radeon 9700.

-Evan

jwatte
09-21-2002, 05:09 PM
I think the original question stemmed from a confusion of what the word "multisampling" means.

"multisampling" means that you sample a frame buffer (or a virtual frame buffer :-) more than once to generate a single output pixel.

"texture filtering" means that the hardware samples the same texture in more than one pixel (and, potentially, in more than one level of detail) and apply math to arrive at the actual texture look-up value when asking to sample a texture at a specific place.

However, "sampling the same texture multiple times" in a fragment shader does NOT count as multi-sampling, nor does it count as filtering in the texture look-up. You can "fake" texture filtering out of a floating-point texture by just issuing more texture look-up requests and filtering the results yourself -- it will just run a bit slower.

As far as I can tell, this is actually how you do things like percent-closer filtering on a Radeon 9700. (and depth-of-field, and other such nice effects)

Did I address all concerns with sufficient clarity? Or did I just mis-understand the initial question?

pocketmoon
09-21-2002, 10:57 PM
Did I address all concerns with sufficient clarity? Or did I just mis-understand the initial question?[/B]


Spot on http://www.opengl.org/discussion_boards/ubb/smile.gif