Game Development Community

FSAA?

by Joshua Halls (Xerves) · in Torque 3D Professional · 09/30/2009 (5:45 pm) · 8 replies

Mentioned this elsewhere and thought I would start a thread. I am not sure if the Edge AA shader was made to replace FSAA or provide a cheaper solution, but I was curious if there was plans on adding this back in as an option or will it still take it as an option now if it set?

About the author

Part of the team that works on The Repopulation, a SciFi based MMO using a heavily modified version of the Torque MMO Kit - T3D. I also take care of the T3D version of the Torque MMO Kit.


#1
10/01/2009 (5:53 pm)
*bump*
#2
10/01/2009 (6:16 pm)
Edge AA is meant to replace FSAA as FSAA cannot be used with deferred shading without hardware capable of rendering to multisampled render targets. I believe that DX10 and DX11 ready hardware are finally capable of this but obviously those features can't be used as long as T3D uses DX9, and if Opengl 3 were to be used FSAA could only work on the latest hardware so Edge AA would still need to be supported for anything older then a Nvidia Geforce 8x00 or ATI equivalent. The Edge AA can be just as effective as FSAA if it is done right as is proven in S.T.A.L.K.E.R. and a steadily increasing number of deferred shaded games. Unfortunately I don't know enough about HLSL to know why T3D's Edge AA is practically useless compared to most of the games out there that obviously use the same method of anti-aliasing.
#3
10/01/2009 (6:22 pm)
Guess that explains that. That shouldn't make it exempt from BL though? Either way I guess I need to know more about the Edge AA Shader and how to get some better use out of it.
#4
10/01/2009 (6:28 pm)
We can hope that hardware accelerated anti-aliasing will eventually get added back for BL, but hopefully the edge AA stuff will eventually get fixed up enough so that it actually anti-aliases the scene rather then just blurring everything.
#5
10/01/2009 (6:35 pm)
I put in a class called FormatChangeToken which works in the context of renderManager.cs in the scripts. This construct lets you do things like enable MSAA, than resolve to the back-buffer before drawing your particles (provided you have a depth target to sample from). The format token is disabled by default, and than selectively enabled. Do a search for "AL_FormatToken.enable();" in the scripts.

I highly suggest checking out renderManager.cs :) It is script configuration, and ordering of the render system. You can add, remove, re-order...it's very cool.
#6
10/01/2009 (9:01 pm)
Sounds interesting. Sounds like it could also be very expensive since MSAA by itself is a fairly expensive process and then add on the expense of copying between buffers, it may just not be worth it on most hardware. If ones game uses many slow moving particles it could be a good way to improve visual quality by useing this for MSAA on the particles, but a more functional edge AA can improve the appearance of the entire scene enough that one might not need MSAA. Shortly before I graduated while I was finishing up on my dissertation (which was on deferred shading of all things) I vaguely remember coming across a paper on a post-process AA like edge AA which gives almost identical results to a higher quality MSAA. Unfortunately I don't remember what sort of performance it got and I can't remember what the technique was called to point you at it, but it does make me think that if the edge AA stuff can be fixed up T3D won't need any sort of MSAA. If I ever find the time to learn HLSL properly rather then using trial and error based upon my knowledge of GLSL and limited Cg knowledge, I may have a go at porting some of my dissertation work to T3D which had a much better result with edge AA.
#7
10/01/2009 (9:18 pm)
Well, you have to resolve the MSAA buffer before the system can present it to the screen, so resolving it in one place instead of another place does not incur any additional overhead. The idea is actually that you resolve the MSAA before particles and HUD elements, since particles are so fillrate intensive without MSAA, and with MSAA they can be brutal; also you usually don't want MSAA on HUD elements or text anyway.
#8
10/02/2009 (1:43 pm)
The 1.0 EdgeAA should be significantly better than it was in Beta5.

I corrected a half-pixel offset which was causing it to blur everything somewhat and also reeled in the edge-blur some, so it no longer appears to blur objects silhouetted behind an edge.

The EdgeAA shaders are currently very simple if you want to take a look at them.