Anti-aliasing

From Ultrafractal Wiki

Jump to: navigation, search

Anti-aliasing (also 'antialiasing') is the technique of minimizing the distortion artifacts known as "aliasing", when representing a high or infinite-resolution image at a lower resolution.

In the image domain, aliasing artifacts can appear as jagged edges, wavy lines or bands, moiré patterns, and in animations can lead to popping, strobing, or unwanted sparkling.

In the sound domain they can appear as rough, dissonant, or spurious tones, or as noise.


adapted from: Wikipedia on Anti-aliasing


Contents

See Also


Informal description of what anti-aliasing is

Marc Librescu wrote:

"Can you explain what you mean by "where the detail is pushing up beyond one feature-per-pixel?"

Dan's Reply

Hey Marc,

Alan is certainly on the right track, but i'll have a go at answering your question :D antialiasing is one of my favorite things to try to explain  ;)


If you think about the shapes that a fractal (or coloring method) generates, and specifically about their size (or 'slope') with respect to the size of the pixels, you can start to form an idea about how many pixels the detail is covering, or how fast the actual function underneath is changing with respect to the pixels that you are trying to use to capture a picture of it.


If you think about a fractal as being made up of waves (like a sound), this aspect would be thought of as the 'frequency' (or pitch) of the waves. Many fractals have higher than pixel-frequency content, (that is, wavelengths that are /smaller than a pixel/) and unless you do something about this, it causes an artifact called 'aliasing' in the image, in other words, bad image quality.


If you look at things from the pixels side, you can start to look at how much detail you are trying to fit into each pixel, when you try to fit too much in, you have to use some extra sampling (called 'antialiasing') or else (if you only take one sample per pixel for instance) you get a bad estimate of the function under that pixel - this leads to nasty looking jagged edges, uncontrolled noise, "moire" interference patterns or (if its an animation) unwanted sparkling, crawling or strobing.


In short, aliasing in a render leads to a more inaccurate (than necessary) representation of what is actually going on under those pixels.


Most classical fractals (like mandelbrot, julia etc) have one specific line (or a 'dust' of points) around which the detail is smaller than the pixels that you're rendering, the rest of the fractal is usually a fairly smooth gradient, which doesn't contain any higher frequencies than the function it is trying to represent. This makes them easier (and faster) to render because you only have to do a lot of extra sampling work near the edge.


There is some more insight about this on wikipedia:


Returning to the explanation of my comment, I really like it when the detail in a fractal makes the antialiasing do a lot of work everywhere, which is about having some high frequencies /everywhere in the frame/. I find that it makes the image feel very high quality, like it would have taken patience and care to render and it hints at the idea that it could even be infinitely detailed without even zooming. Some of your renderings are moving towards that kind of situation, and I like it :D.


thanks for asking Marc, I hope it makes sense. Keep up the good work :D

dan

***


Discussion of Image Resolution

Cornelia asked:

" I hate to sound ignorant, but I guess I will this time. I really don't understand why you all are trying to render such huge images. I have been rendering my pictures to disk at about 1200x1200 pixels and 300 dpi, and then having them printed by either a photoprint (color copier method) or as giclee (high quality inkjet), and they all look wonderful with no sign of pixels and all the detail that I can see by eye. My machine is a fairly old AMD and it almost never takes more than a half hour. What am I missing here?"

Response from Dan Wills

Hi Cornelia,

It may not yet be apparent why a large image might be better, but just think about how big each pixel of your image would be if it was printed (or projected, or whatever) at a really large size!  :)


There is something deep to understand about image resolution too, and that is to do with 'anti-aliasing'. Wikipedia on Antialiasing


Fractals often contain infinitely detailed shapes, which are hard to capture nicely into a finite set of pixels.


I am extremely against aliasing and I try to fight aliasing at all costs!!


Fractals can have lots of aliasing because they can contain a lot of infinitely sharp detail, this is a problem that only taking more samples can fix up (which is sortof equivalent to rendering a larger image).


The largest size I have rendered fractals at so far is 16000x16000 pixels square (with antialiasing turned on of course) I call this size '16k'.


It was a fractal quite similar to this one


I had it printed onto metallic photo paper using a giclee process and it was really impressive to see how close you could go up to it and not lose any sharpness or detail at all, it had a semi-microscopic detail feeling about it, even though the entire object is 1.5 meters square.


My "preview with antialiasing" render resolution for ultrafractal renders is actually larger than your final print res, it' s 2048x2048, ie '2k'. (I do visual effects work on films and we have a custom in that industry of using 'k' to express the number of thousands (k's) of pixels wide an image is, tv frames are barely half a K, medium formats are about 1k, and cinema frames are usually 2k).


I do hope that eventually I'll find a use for a render even larger than 16k, I think even up to or beyond 64k pixels might not be out of the question. I am interested in looking into some incredibly high fidelity (ie truly microscopic) 3d fractal printing and etching processes one day ;D.


There's some thoughts on image size Cornelia, I hope you find some nice detailed fractals to make good use of all those pixels! :D

dan

Personal tools