[Bf-committers] Does Cycles waste half it's possible performance or am i wrong?

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Oct 28 13:45:03 CET 2012


On Sun, Oct 28, 2012 at 12:16 PM, Tobias Oelgarte
<tobias.oelgarte at googlemail.com> wrote:
> Am 28.10.2012 03:19, schrieb Brecht Van Lommel:
>> In fact this method can reduce noise in some situations, since uneven
>> sampling of the pixel filter can introduce noise. It also avoids
>> rendering padding pixels on tiles which cost render time too.
>> http://lgdv.cs.fau.de/publications/publication/Pub.2006.tech.IMMD.IMMD9.filter/
>>
> That is correct. But there are some requirements to be fulfilled to get
> better results or to utilize its advantages. The first thing is that
> this filter is optimized for importance sampling, because importance
> sampling in combination with a partially negative filter (like mitch)
> increases noise. But so far Cycles does not use importance sampling
> (more samples for unstable/critical regions) and does not utilize the
> possible advantage this sampling method has.

What you describe is adaptive sampling, this paper is about importance
sampling and as far as I can tell Cycles implements the same method.

>> But regarding the 2x less noise, there's two wrong assumptions. First
>> is that you can't just average 1 and 4, it would be closer to
>> something like 1.333x I think (the fireflies at the center of the
>> pixel will stile take long to get rid of even if some others get
>> easier).
>
> Thats right. But you will also include fireflies/errors (more seldom of
> course) which aren't actually meant to be in this pixel. So you get a
> slight blur, but without averaging the error (no contribution to
> rightfull pixels). I'ts more like sampling a 1.333 times bigger image,
> which is effectively 1,78 (1,333²) times larger if you count the pixels.

I don't understand this explanation at all, or why you're squaring
this number. It's not clear to me when you are talking particular
sampling methods and where are talking about the behavior of the
filter.

>> Also, the shape of the gaussian function makes it so that for typical
>> filter widths most of the samples contribute little to other pixels,
>> which lowers the noise reduction further. At the corners they
>> contribute evenly yes, but there's no linear transition to the center.
>
> No. It does not. This is no actual noise reduction. You will just leave
> out parts of the scene that contribute less to the pixels. If you make
> the filter very small, then you only sample the center of the pixels,
> ignoring the area (the gap between frustums) in between pixels, which
> leads to moire patterns. If you make it large enough to have an even
> contribution, then it will already waste samples that could contribute
> to other pixels. If you make it very large, then you waste even more and
> get unsharp results, without much noise reduction.

It will waste samples, but how many does it really waste for a filter
of size 1.5-2.0? If you use larger filter widths it wastes more, but a
gaussian filter of 3.0-4.0 will already blur out all your edges.

My point was not that the gaussian filter reduces noise, but that it
further reduces that 2x less noise number you gave. If a sample
contributes 0.05 to one pixel and 0.95 to another, it doesn't affect
noise by the same amount.

Brecht.


More information about the Bf-committers mailing list