The GL_ARB_multisample/WGL_ARB_multisample/GL_SGIS_multisample/WGL_EXT_multisample are not supported on NV1X hardware. How to enable fullscreen antialiasing on these GPUs? The Direct3D API supports it.
I don’t think the specs allows for plain super sampling so unless the driver has a registry key you can set you’re probably screwed. But then, the NV1x series of chips really can’t both do AA and render fast at the same time so it’s not that big a loss
If you really need this, you can simply render to an off screen pbuffer four times the size of your viewport and use the bilinear texture filter to do a 2x2 boxfilter downscale to the viewable buffer.
Could you please elaborate on the registry key, where could I find such a tweak (not for NV1x, but for NV3x and current drivers)?
Or maybe an undocumented value for the multisample hint (vendor specific) could do the job?
AFAIK you can’t render to a texture through a pbuffer, if the pbuffer format is already multisampled (for best quality).
I don’t know how the nvidia drivers store FSAA settings, try using regmon when starting an OpenGL program or when twiddling settings in the driver control panel.
The pbuffer method doesn’t use multi sampling at all, trhe NV1X can’t do multi sample AA! The idea was to use plain old super sampling and use the bilinear texture filtering hardware to perform a 2x2 box down filter. It’s essentially the same method the drivers use to implement automatic mip map generation.
Harsman, thank you for the answer, and N64Marin, sorry for hijacking the thread…
My previous post was confusing, I’ll try to make it clearer.
For a custom CAD application that I wrote and am maintaining, I’m using smooth
[coverage-blending] AA. If it were possible to use pure supersampling, together
with the smooth AA, the quality of the AA lines would improve. When using common
multisampling [8x] and smooth AA, the quality is lesser than when using just smooth AA.
I’m using GeForce 5900, but the problem was the same when I had GeForce 4200.
So I’m interested in the same registry tweak that would allow NV1x to do FSAA.
Such a tweak worked fine on GeForce2Ti and very old drivers, but newer drivers
don’t allow it. Maybe there’s a new version of this tweak? Here’s the old one:
I know that it’s possible to render to a pbuffer, copy to a texture, and use that texture with
bilinear filtering to display the result [including zooming], but I was too lazy to do it yet.
Since the nVidia maximum texture size is 4096, and Ati only 2048, the technique above
may not work properly on Ati [texture size / display size < 2], without texture tiling, which
has it’s own problems [on the texture edges].
I’ll try to intercept the registry changes corresponding to the control panel FSAA settings.
It’s a good idea, thank you.
P.S. Why normal parantheses are not allowed in the post anymore?