PDA

View Full Version : Off-screen rendering @32X FSAA - possible?



Tzupy
09-28-2006, 05:43 AM
Hi,
I recently got one 7900 GTX and will do some off-screen rendering that needs highest possible detail.
Would I get to the 32X FSAA with two 7900 GTXs in SLI?
Also, would it be possible to use a 4k x 4k render target? Some people on these forums reported problems when using over 2k x 2k.
To get SLI working I would upgrade to a nForce 590 based mobo and AM2 X2 4600, so I'd like to know if it's worth upgrading.

Thank you.

k_szczech
09-28-2006, 06:47 AM
I don't know if that answer satisfies you, but instead of rendering with AA you can render to target that has higher resolution and downsample it afterwards. So, for example 1280x1024 image could be rendered as a 5x4 grid of 1024x1024 textures, each representing 256x256 pixels of final image.
Actually, only Radeon X1k series support AA when rendering to texture, so you have to implement "your own" AA for offscreen rendering anyway.

zed
09-28-2006, 02:22 PM
yeah all nvidia cards dont support FBO + AA (most likely the g80 will though)
ive been looking into supersampling a bit recently, visually its superior to FSAA (though slower) it also has the benifits of making the textures look better (FSAA only really improves polygon edges)
7900 in SLI should have heaps of fill rate
say your final screensize is 1280x960, create a FBO of 3840x2880 (if possible) and render into that. then when u draw that texture to the screen for each pixel sample the surrounding pixels as well to find the final color value

zeoverlord
09-29-2006, 03:30 AM
Originally posted by zed:
yeah all nvidia cards dont support FBO + AA (most likely the g80 will though)Wasn't that supposed to be fixed in the next major driver release.

Ysaneya
09-29-2006, 05:31 AM
Originally posted by k_szczech:
I don't know if that answer satisfies you, but instead of rendering with AA you can render to target that has higher resolution and downsample it afterwards. So, for example 1280x1024 image could be rendered as a 5x4 grid of 1024x1024 textures, each representing 256x256 pixels of final image.
Actually, only Radeon X1k series support AA when rendering to texture, so you have to implement "your own" AA for offscreen rendering anyway. Radeon X1k series do support AA with RTT, but unfortunately it's not supported in GL drivers yet, so you're stuck on the same limitations than NVidia cards.

Supersampling "yourself" works quite well, but unfortunately its fillrate/shading cost is directly linear to the increase of texture area you have to render to ( assuming you're fillrate/shader limited ), so for example supersampling AA x4 divides the performance by x4, while "true" hardware antialiasing has a much lighter cost.

Y.

Tzupy
09-29-2006, 07:28 AM
Thank you for the replies.
For now I'll try to render to 2k x 2k textures and filter down to 256 x 256 textures, for 64X AA.
This 64X AA (or even 256X) is already done in software rendering since 2001, but it's quite slow.
Since the target images are over 256 x 256 I am afraid I'll get seams between the tiles after composing the target.
I was hoping that by now the hardware was able to do 32X. What about 32X FSAA rendering to a back buffer of 4k x 4k size?

k_szczech
09-29-2006, 07:51 AM
I am afraid I'll get seams between the tiles after composing the targetDon't worry - you won't have any problems when downscaling the image.
Only when upscaling with filtering enabled you will see edges of sections.

zed
09-29-2006, 11:42 AM
Originally posted by zeoverlord:

Originally posted by zed:
yeah all nvidia cards dont support FBO + AA (most likely the g80 will though)Wasn't that supposed to be fixed in the next major driver release. i thought this was a hardware limitation, thus driver updates aint gonna help (unless it gets pushed onto the software path)

gybe
09-30-2006, 03:49 AM
Originally posted by Ysaneya:
Radeon X1k series do support AA with RTT, but unfortunately it's not supported in GL drivers yet, so you're stuck on the same limitations than NVidia cards.
Y. Actually I think it's working in RGBA8 with the PBuffer, you need to do a glCopyTexImage to resolve the data. Unfortunately, they didn't add support for the other pixel formats.

MZ
10-02-2006, 10:20 AM
Google for "T-Bluffer" demo (yes, it's mispelled).

It shows how you can do supersampling without need of enlarging your rendertarget. Basically, you render your scene multiple times, and take average of them. The trick is in that each pass is done with slightly modified projection matrix - you nudge it by a subpixel distance in screen space. Different nudge in each pass makes for "sampling pattern".

The demo is old (but still impressive, with its simplicity), so instead of addtive blending, you can use GL's accumulation buffer, or emulate it with floating point FBO. The latter leaves you option to do gamma-corrected AA, and lets you use as many samples as you desire, without worrying about precission loss in the accumulator.

sqrt[-1]
10-02-2006, 05:35 PM
Humus did a demo like this:
http://www.humus.ca/index.php?page=3D&ID=59