Welcome to Fractal Forums

Fractal Software => Programming => Topic started by: murkey on January 23, 2015, 10:44:31 PM




Title: Supersampling: RGSS, flipquad, ??
Post by: murkey on January 23, 2015, 10:44:31 PM
I multithreaded my libgmp-based Mandelbrot renderer and got render times down to a couple minutes - not great, but good enough to move on to some smoothing. I'm thinking about using the RGSS or Flipquad supersampling pattern (or maybe quincunx), and was wondering if anyone had experience with these or thoughts as to which would yield the highest quality results.

Discussion of various techniques in these papers:
https://mediatech.aalto.fi/~samuli/publications/hasselgren2005cgf_paper.pdf
http://fileadmin.cs.lth.se/cs/Education/EDA075/lectures/L11a-AA.pdf

I'm also interested in filter-based methods for anti-aliasing, but it seemed like supersampling would yield sharper, more accurate results - maybe?

Thanks!


Title: Re: Supersampling: RGSS, flipquad, ??
Post by: hobold on January 24, 2015, 02:47:19 AM
Supersampling is a general high quality solution. Flipquad and rotated grid, however, are tuned for speed over quality. They were both designed with realtime graphics in mind. Both target the most objectionable aliasing in that context: straight edges that are nearly horizontal or vertical (rotated grid also helps for near diagonal edges).

The advantage of the above sampling patterns is that they require relatively few extra samples per pixel. They won't help smoothing pixel noise in highly detailed regions, but they probably do a good job for the outer, smoothly curved, level set boundaries.


Title: Re: Supersampling: RGSS, flipquad, ??
Post by: murkey on January 24, 2015, 03:09:51 PM
That's true, good point. So do people generally just use a square grid for supersampling?


Title: Re: Supersampling: RGSS, flipquad, ??
Post by: dom767 on February 26, 2015, 07:26:17 PM
Dunno if you got anywhere with the supersampling? I just completed a review of a bunch of different 2d sampling algoirthms using antialisaing as the case study, my conclusion is the best sampling algorithm for 2d is a variant of poisson disc sampling I've called relaxing poisson sampling. But there are forms of grid sampling that perform well too.

http://woo4.me/wootracer/2d-samplers/

Note that there's some definite gotchas with grid based supersampling if you're doing an incremental renderer!

Dom