Unrelated Engine – Deferred Rendering and Antialiasing

I tried to implement the explicit multisample antialiasing and I got good results, but it’s slow on a GeForce 9600GT. A scene of 110 fps became 45 fps with only four samples, just to point out the slow down. While I was jumping to the ceiling for the amazing image quality of a REAL antialiasing with deferred shading (not the fake crap called FXAA) I fell down to the floor after I seen the fps, what a shame.

UnrelatedEngine01

Anyway, I decided to change from a deferred shading to a deferred lighting model just to implement a good trick in order to use the classic multisample (that in my card can do pretty well also with 16 samples!) reading from the light accumulation buffer in the final step and writing the geometry to the screen with the antialiasing enabled. The result is a little weird, but you can fix it by using that crap fxaa on the light accumulation buffer which is smoother than the other image components. For example, I can use: a mipmapping or anisotropic filtering to eliminate the texture map aliasing, a FXAA to eliminate the light accumulation buffer aliasing and finally a MSAA to eliminate the geometry aliasing.

ps: I used the nanosuit model from this site: www.gfx-3d-model.com/2009/09/nanosuit-3d-model/

4 Comments

DarleneJanuary 16th, 2012 at 2:12 pm

Nice to read your blog

Lauretta omegaJanuary 24th, 2012 at 1:40 pm

Just bookmarked you under Digg under “TextureMind » Blog Archive » Unrelated Engine – Deferred Rendering and Antialiasing”. So hopefully our friends can give you a visit. Keep up the good stuff.

2 Can SamJanuary 27th, 2012 at 12:59 am

Looks good. I think Skyrim is using a similar technique. They have very good texture filtering and anti-aliasing, even on Xbox360. I’ve also noticed a strange white halo around characters standing in light. It’s probably the post-process anti-aliasing being used for the deferred lighting.

Overall, I think it’s a great technique, because it saves texture quality. Which is very important.

adminJanuary 31st, 2012 at 12:35 am

Thanks. I tried another technique because in many cases I cannot use FXAA as a post process filter on the light accumulation buffer. I resolved it using a normal multisample with an interpolation of the neighbour pixels in the light accumulation buffer. Sometime it misses some pixel in particular with thin polygons but after all it’s good and pretty fast. Moreover, I can use FXAA as a post process filter in the last stage also to improve the final image. The result is pretty good with a 8x and fast, even if i consider how slow an explicit multisample could be.

Leave a comment

Your comment