Maniphest T68919

Scrambling distance
Closed, ResolvedTO DO

Assigned To
Brecht Van Lommel (brecht)
Authored By
Dalai Felinto (dfelinto)
Aug 20 2019, 9:28 PM
Tags
  • Cycles
  • Render & Cycles
Subscribers
Alex Fuller (mistaed)
Bartosz Moniewski (monio)
Brecht Van Lommel (brecht)
Christian Beckers (Beckersc)
Dalai Felinto (dfelinto)
Juan Gea (juang3d)
Julien Leménicier (mistajuliax)
2 More Subscribers
Tokens
"Burninate" token, awarded by monio."Love" token, awarded by Schamph."Burninate" token, awarded by crantisz."Burninate" token, awarded by xdanic."Love" token, awarded by mistajuliax."Like" token, awarded by YAFU."Love" token, awarded by juang3d."Love" token, awarded by bnzs.

Description

Need more information.

Event Timeline

Dalai Felinto (dfelinto) lowered the priority of this task from 90 to Normal.Aug 20 2019, 9:28 PM
Dalai Felinto (dfelinto) created this task.
Dalai Felinto (dfelinto) mentioned this in T66305: Render & Cycles Module.Aug 20 2019, 9:40 PM
Maciej Jutrzenka (Kramon) added a subscriber: Maciej Jutrzenka (Kramon).Aug 20 2019, 10:35 PM
Dalai Felinto (dfelinto) mentioned this in P1075 New Tasks for the Modules.Aug 21 2019, 4:34 PM
B (bnzs) awarded a token.Aug 26 2019, 8:48 PM
Juan Gea (juang3d) awarded a token.Aug 31 2019, 12:54 AM
YAFU (YAFU) awarded a token.Aug 31 2019, 4:25 AM
Philipp Oeser (lichtwerk) added a subscriber: Philipp Oeser (lichtwerk).Sep 1 2019, 12:05 AM
Julien Leménicier (mistajuliax) awarded a token.Nov 4 2019, 9:49 PM
Julien Leménicier (mistajuliax) added a subscriber: Julien Leménicier (mistajuliax).
Daniel Calderón (xdanic) awarded a token.Nov 20 2019, 4:35 PM
Michael Soluyanov (crantisz) awarded a token.Nov 26 2019, 12:51 PM
Silas Opel (Schamph) awarded a token.Feb 14 2020, 2:04 AM
Christian Beckers (Beckersc) added a subscriber: Christian Beckers (Beckersc).Feb 18 2020, 12:57 PM
Brecht Van Lommel (brecht) edited projects, added BF Blender (2.90), Render & Cycles; removed BF Blender.Jun 18 2020, 5:42 PM
Brecht Van Lommel (brecht) moved this task from Backlog to Under Development on the Render & Cycles board.
Bartosz Moniewski (monio) awarded a token.Jun 18 2020, 6:57 PM
Bartosz Moniewski (monio) added a subscriber: Bartosz Moniewski (monio).
Brecht Van Lommel (brecht) triaged this task as High priority.Jun 18 2020, 7:28 PM
Brecht Van Lommel (brecht) moved this task from Backlog to bcon2: Features on the BF Blender (2.90) board.Jun 25 2020, 3:57 PM
Juan Gea (juang3d) added a subscriber: Juan Gea (juang3d).Jun 25 2020, 4:31 PM
Brecht Van Lommel (brecht) lowered the priority of this task from High to Normal.Jul 17 2020, 2:40 PM
Brecht Van Lommel (brecht) removed a project: BF Blender (2.90).
Brecht Van Lommel (brecht) added a subscriber: Brecht Van Lommel (brecht).

I did some tests with this but found there to be no way we could enable this by default, since it simply does not converge fast enough to the correct results even with low values. This is probably just the wrong approach to the problem, and we need to look more at sample ordering, sorting or increasing occupancy with a split kernel.

Juan Gea (juang3d) added a comment.EditedJul 17 2020, 3:58 PM

Thanks for testing it.

Can you elaborate a bit please?

This project was fully rendered with scramble distance and dithered sobol, we never use one without the other:

https://vimeo.com/366900975

And the times were reduced nearly to a 50%, and the amount of samples was also reduced since there was less perceived noise.

May be something that works better with dithered sobol? like Adaptive Sampling uses progressive multijitter.

Juan Gea (juang3d) added a comment.Jul 17 2020, 4:40 PM

BTW another question regarding this, at what values have you tested?

The speed of convergence was different depending on the scramble distance value you used, usually with standard scenes or animation we use from 0.2 to 0.5, it accelerates quite a bit but the difference between those and pure cycles in results at lower samples is not big.

For scenes where we want a big speed up and it's going to be a single image, we could use even up to 0.02, the difference is bigger, but since there is no animation involved at some samples the glitches it may generate are not perceived anymore, and it's way faster than without SD enabled.

BTW SD is never enabled by default, it's an advanced option for the user, so you know you introduce some bias while accelerate the render.

And let me stress this out, we never use it without Dithered Sobol, the results are not comparable.

Anyways, if you think there is a better alternative to accelerate cycles quite a lot, but at the same time retain a perfect result, and this means we cannot get SD, I'm all in favour of it, but if it means waiting another 2 to 3 years, then it makes no sense.

As artists/users we need results now, our clients asks us to be on pair with our competition or they simply stop being our clients, and the speed up is something totally required, no matter if it comes in form of Scramble Distance, GI Cache or any other technique, but it does not matter if we are talking about 2.90, because we've been waiting a long time for some cycles optimizations, and you know why I'm so worried about this because I told you in some conversations.

YAFU (YAFU) added a subscriber: YAFU (YAFU).EditedJul 17 2020, 5:12 PM

This feature has sometimes been shown to be useful and has even been used for production. But it is also true that this should be used by people who know what they are doing and who know the limitations of the feature. Would people be happy if "scrambling distance and dithered sobol" is added and maintained at least as an experimental feature?

Brecht Van Lommel (brecht) added a comment.Jul 17 2020, 5:16 PM

@Juan Gea (juang3d) do you have a patch combining scrambling distance and dithered sobol?

Alex Fuller (mistaed) added a subscriber: Alex Fuller (mistaed).Jul 17 2020, 7:12 PM

Just to clarify @Brecht Van Lommel (brecht) when you mention sorting for split kernels, you mean accumulating samples and sorting them to better feed shaders/kernels for SIMD/occupancy for stuff like incoherent/GI rays? Something I'm interested in also that wouldn't introduce bias afaik if done right.

Juan Gea (juang3d) added a comment.Jul 17 2020, 7:38 PM
In T68919#981000, @Brecht Van Lommel (brecht) wrote:

@Juan Gea (juang3d) do you have a patch combining scrambling distance and dithered sobol?

I have a branch, but I imagine I can extract a patch.

The branch with Cycles modifications, that are basically lightgroups, dithered sobol, scramble distance and the modification of some sampling variables to push a bit more the gpu's, is this one:

https://github.com/juangea/boneMaster/tree/bone-cycles_290

I just add my git as an additional remote over the blender repo, so nothing weird to get it, I imagine it could be faster for you to just pick the branch, because I'm a bit slow with all the patch-management thing.

I just updated it, so it's based on today's master.

If you still want me to try to extract the patch tell me and I'll try to do my best.

Juan Gea (juang3d) added a comment.Jul 17 2020, 7:52 PM

Ok, I tried to generate a patch, may not be perfect because some of the modifications along the time, but the problems should be just a matter of ui, in case you have any problem, and you will be able to overcome any problem in seconds I guess.

Here it is, I hope this helps.

Juan Gea (juang3d) added a comment.Jul 23 2020, 4:49 PM

Hey @Brecht Van Lommel (brecht) was this useful at all? :)

Brecht Van Lommel (brecht) added a comment.Jul 30 2020, 7:10 PM

Thanks for the info, it is useful, but I will only have time to come back to this in a few weeks from now.

Juan Gea (juang3d) added a comment.Jul 30 2020, 8:02 PM

Awesome, thanks! 👍

Brecht Van Lommel (brecht) moved this task from Under Development to Cycles Performance on the Render & Cycles board.May 4 2021, 3:18 PM
Brecht Van Lommel (brecht) closed this task as Resolved.Oct 28 2021, 1:57 PM
Brecht Van Lommel (brecht) claimed this task.

This was added in 3.0.