Friday, July 21, 2006

Adaptive Anti-aliasing

Tonight I wrote Adaptive Anti-Aliasing. This is a process which determines where there are pixels in the image that differ too much from their neighbouring pixels and these pixels are then "super sampled." This means sending a grid of rays across this pixel by subdividing the pixel a certain amount.

The overall effect of this is that this process smoothes out the Raytraced images so they look sharper and smoother. It's a nice effect and will definitely make my final scene look more professional. Sweeet.

Here are some pics from tonight.


First try at anti-aliasing, dividing by the wrong value!


Non-heir with no anti-aliasing. Notice the jaggies along the edges of the objects and along
the edges of the shadows.


These are the edges determined to be "bad pixels" by my Adaptive method.


Running Adaptive Anti-aliasing, notice the smooth edges.


Naive super sampling runtime


Adaptive Anti-aliasing runtime with removal of double entries for super sampling


Cows scene, not anti-aliased. Notice the jaggies on the edges of the cows and the shadows.



Cows scene, pixels marked by Adaptive Anti-aliasing method.


Cows scene with Anti-aliasing


Naive supersampling runtime


Adaptive Anti-aliasing runtime


Adaptive Anti-aliasing runtime with extra optimization, so that initial ray from 1st pass of ray tracing is re-used and not cast into the scene again.

No comments: