[Bf-cycles] Cache-Friendly Micro-Jittered Sampling

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Aug 9 01:25:51 CEST 2016


Lukas experimented a bit with this, and the authors of the paper also
provided us a code snippet describing the main change which is quite
simple. Anyone with a little coding skill could experiment with it:

       if(dimension & 1)
              shift = (*rng >> 16) * (1.0f/(float)0xFFFF);
       else
              shift = (*rng & 0xFFFF) * (1.0f/(float)0xFFFF);

+      shift = 2.f * kernel_data.integrator.micro_jitter_radius * shift;
+      shift -= kernel_data.integrator.micro_jitter_radius;

       return r + shift - floorf(r + shift);

However, I believe computing the best radius to avoid correlation
artifacts is not so simple. In the author's implementation it was
tweaked manually using a setting in the UI, which we should avoid. For
such a patch to go in we should figure out the automatic way to set
this value and test it on various scenes to avoid correlation
artifacts.

The method is also somewhat incompatible with progressive rendering /
adaptive sampling, as the number of samples needs to be known in
advance. Though if a minimum number of samples is known that can
provide a lower bound.

Also kind of interesting, this is sort of doing the opposite of the
Blue-noise Dithered Sampling paper. One makes the sampling patterns in
neighboring pixels as similar as possible (to improve performance on
GPUs), and the other makes them as different as possible (to reduce
perceived noise).


On Tue, Aug 9, 2016 at 12:35 AM, Mohamed Sakr <3dsakr at gmail.com> wrote:
> cool! as it is already done and tested in Cycles, may be the author will
> publish the branch soon? I guess this can go to trunk as it is :)
>
> On Mon, Aug 8, 2016 at 9:24 PM, Ilja Razinkov <razinkov at gmail.com> wrote:
>>
>> Pretty cool, seems like results are less noisy too!
>>
>> On Mon, Aug 8, 2016 at 9:11 PM, Marco G <marco.gzt at gmail.com> wrote:
>> > From a talk at Siggraph 2016, giving quite impressive speed increase.
>> > Additionally, authors implemented it in Cycles as mentioned in the paper
>> > and
>> > as seen in the video.
>> >
>> > Links:
>> >
>> > - Blog self shadow listed among other papers
>> > http://blog.selfshadow.com/2016/07/31/siggraph-2016-links/
>> >
>> > - Paper link
>> >
>> >
>> > http://pascal.lecocq.home.free.fr/publications/sig2016_cacheFriendlyMicroJitteredSampling.pdf
>> >
>> > - Video (showing Cycles dropping render time from 60 to 40 minutes)
>> >
>> > https://www.youtube.com/watch?v=zBANWjpbl74&list=LLDYq4NveuflgCZ3Cr7X6kXA&index=1
>> >
>> > Regards,
>> > MG
>> >
>> > _______________________________________________
>> > Bf-cycles mailing list
>> > Bf-cycles at blender.org
>> > https://lists.blender.org/mailman/listinfo/bf-cycles
>> >
>>
>>
>>
>> --
>> с уважением, Разинков Илья
>> _______________________________________________
>> Bf-cycles mailing list
>> Bf-cycles at blender.org
>> https://lists.blender.org/mailman/listinfo/bf-cycles
>
>
>
> _______________________________________________
> Bf-cycles mailing list
> Bf-cycles at blender.org
> https://lists.blender.org/mailman/listinfo/bf-cycles
>


More information about the Bf-cycles mailing list