Ringing artefacts – lower your filter width!

When it comes to rendering, there is always a tradeoff between detail and antialiasing. Filters play a big role in this.
I am a huge fan of the sinc filter – it’s sharp and enhances the detail beautifully. But this sharpness means that sometimes, it will produce an effect known as “ringing” – contrast-y bands on the border that separates brightly-lit areas from dim ones.
Using physically-based Fresnel attenuation of specular will often create this contrast when backlighting is bright enough.
We are often led to believe that upping filter width will create “higher quality” images, so we reach for the controls… and get an even worse case of ringing.
There’s a lot of maths involved behind the scenes, but suffice it to say that generally, if you see ringing you want to eliminate, you should do the opposite thing and turn your filter width down.
Here are a few renders – check out the highlight on Aiko3’s left ear and how the ringing, so jarring with the 6×6 filter width, gets less noticeable with filter widths of 4×4 and 2×2.
In this case, 4×4 apparently provides the best tradeoff between sharpness of detail and minimum artefacting.
Left to right: 6×6, 4×4, 2×2. (these thumbnails are clickable, make sure to check out the full versions!)

a3sinc6x6a3sinc4x4a3sinc2x2

Although if you do not show anyone the sharpest image, people will often never know that you are “cheating” ;D

Advertisements

2 thoughts on “Ringing artefacts – lower your filter width!

  1. Basically, antialiasing is what filters are introduced for in Renderman-compliant renderers (and other places like digital cameras). Elsewhere, there exist other antialiasing techniques like supersampling/multisampling/etc (game engine standard, and I guess Bryce and Carrara might also be using a variation of those). Every approach has advantages and disadvantages (think of how excruciatingly slow antialiasing passes in Bryce may get).

    Filters differ in “quality” and speed. Say, box, gaussian, triangle will all be more “blurry”, but these are faster than sinc, and they do not “ring”. IIRC those simpler filters are very often used for animations (particularly hi-res – where you can live with a little blur since the size makes it virtually undetectable; besides, that would also often be helpful to make the “feel” of CG FX match the generally softer live action shoots).

    Sinc is not particularly fast (the difference between sinc and box was quite noticeable on dual cores, and upping the filter width also gave a noticeable increase in render times in those days). However, most people were not rendering hi-res and neither were they using “advanced” features like Fresnel attenuation of specular (which was simply not available in DAZ Studio shaders before UberSurface2 – and I don’t think I saw any shader mixer networks making use of it, either) – and so a) there was a need for making a small picture as sharp as possible, and b) few people were getting contrast-y regions where “ringing” would be seen. So the default setting in DS is still 6×6, I think. And almost everyone who posted “hi quality” presets was pushing filter widths up to at least 8.

    Which may well be too much.

Comment here

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s