What happened to Scrambling Distance? It´s been used in Theory and it will help speed up rendering


#1

What happened to Scrambling Distance? It´s been used in Theory and it will help speed up rendering, at least for advanced users, can´t we have it in Master please?

Since it´s an already developed feature and it has been used in production, it could be easy to add it as an experimental one, and will give us some speed improvements and some controle over bias of our results.

Cheers!


#2

I’ve commented on this in some detail here: https://blenderartists.org/t/cycles-development-updates/1110067/465

The short version of it is that the setting makes it way too easy to mess up a render without noticing it, which is why I don’t want to add it in its current state. Yes, you can get good results with it, but if you get it wrong your renders will be wrong and you won’t notice it.


#3

When you mean that we won´t notice it… if the render looks fine, why is it going to be wrong?

Also, that´s why I say to include it inside “experimental”, let users try it and play with it, and let´s check what people extract from it, it may be good, it may be wrong, but we will be able to try it :slight_smile:

I´m sure I can even convince Lord Odin to make a short tutorial about it :slight_smile:


#4

Easy to mess up? You mean just like if you do absolutely anything wrong in blender?
Normal maps in color mode
Bounces too low
Denoising at 2px
Denoising at 20px (Denoising artifacts more than scrambling)
Literally typing any render settings in wrong.

You are saying we cant have features because people are incapable of learning how to use blender xD. Might as well turn the entire render panel in to a “Send file to a competent human to complete your render” Button


#5

It is odd to have an option that if you enable it will basically break volume and hair rendering completely, and will also be problematic in general for any render that requires a high number of bounces or uses denoising.

My concern is not so much that it is easy to break renders with this, but that it is fundamentally incompatible with a lot of other Cycles features. As a principle we try to keep all render features compatible with each other as much as possible.

Other renderers could also have this kind of option easily, and they don’t for probably similar reasons, that it is breaking the sampling algorithms with unpredictable consequences.

Anyway, I’m not entirely opposed to having this option in the Advanced sampling panel. But I would first like to see some clear evidence of the speedups this provides, comparing render noise levels and time on some non-trivial scenes. When I did some tests in the Cycles benchmark scenes the results were not really convincing.


#6

Well being the render TD on many actual productions I can 100% say it wouldn’t be possible to do some of the renders without scrambling and dithered sobol

We used it on every single shot of Man in The High Castle, Silicon Valley, The Good Wife, Jean Claude Van Johnson, Electric Dreams, Sesame Street

Also how does scrambling break volumes? Its one of the best case scenarios from my past experiences. The artifacts here are from the smoke colliding with the bounding box but that was my oopsie on a color ramp

The blender community can benefit more than not with scrambling (And dithered sobol that really seals the deal)

I can do some render tests in a day or two

Speed improvements are only on GPU but noise improvements are significant in some cases. Especially when combined with dithered.




Previews dont work but they are clickable lol
These results are Faster AND Cleaner.


#7

We need to see the result of scrambling and dithering individually as well though, to see what the effect of each is.

The scrambled + dithered volume render is wrong right below the light, it is brighter on one side than the other. This is the kind of bug you can get by not properly decorrelating sample dimensions. The lighting in general seems like it would converge to a somewhat different result, although it’s hard to say for sure.

I have the result of some comparison at home, I can post them later. A simple cloud with a few scattering bounces renders wrong even with scramble distance 0.95.


#8

Wrong or not the same. Because to an artist pathtraced accuracy isnt necessary 90% of the time. A result that looks like what they want is the only requirement.

These renders were at 64 samples. If it were something like 500 samples which is more like something people actually render with the results would be closer but you still get the speed up and less noise.

Simplify AO breaks reflections and does all kinds of crazy crap but its ok if the artists enables it because they know its going to get crazy from that point.

Simplify AO + Scrambling + Dithered Sobol, I guarantee you can compete with redshift in most cases if not beat them with combined CPU + GPU support

Again we use scrambling usually around 0.1 - 0.2 on every project because we want results not physically accurate science projects to give to our physics teachers. Clients pay us for work. We use at least 10-20% of that money on rendering. Remove Scrambling and Dithered we are up to 20-40% of our budget spend on rendering. Which means less money we can give to developers which means less features for blender. Lukas made the denoiser while working at Theory. Along with sampling threshold, Scrambling, Cycles network rendering, UDIMS, Persistent data (Which is one of the biggest speed ups we can get in some of our 90GB scenes)

Scrambling at 0 has a huge speed up in flat shaded / toon renders (Which we surprisingly do a lot of) most of the time we are at sub 5 seconds a frame. Most of that time is spent compressing a PNG after the render and loading the next scene. Oh the bottlenecks that hold back the time the computer is actually rendering.


#9

OMG… Persistent Data is also important!

I have a scene with a preparation time of 25 to 30 minutes, with that I could improve animation rendering time A LOT!

This is something we need for set rendering:

Is there some problem or incompatibility because this has not been implemented? (maybe it´s just a matter of lack of time, IDK)


#10

Also, I´m going to test scrambling and dithered sobol and post here results, but my firsts tests seem to be much better, at least for my scene.

But in general I agree, we could decide to have a correct render result, but could be awesome to decide to get an incorrect render result as long as the result is the intended one, and if we have limitations… we will have to live with them, but my test went from needed 1400 samples to being perfectly fine at 800 samples, from 1 hour 5 minutes (30 minutes translation) to 43 minutes (the same 30 minutes of translation)

This will save us TONS of headaches, even when it can produce some of them in some cases.


#11

Is there any chance I can grab one of those (win) builds? I have an old theory build that lacks of dithered sobol


#12

I´m looking for one to share, but if someone could share one it will be very welcome :slight_smile:


#13

I can´t find it, I was pretty sure that I saw one in BlenderArtists, but I can´t seem to be able to find it.

I can´t share the one I have right now because it was given to me by a friend and it has some other developed things that I cannot share :stuck_out_tongue:

So if someone can make a build with those two things, Dithered Sobol and Scrambling Distance, so more people can test it, it will be very welcome.

Cheers!


#14

Ok, here is one with Scrambling Distance and Dithered Sobol!

@Bretch I will prepare the comparisons, but why is Dithered Sobold not present in Master, I understand the reasons given by @lukasstockner97 , while I disagree after testing those two features, I can´t find any risk in breaking anything, is like any other render engine value, you may have some settings that if you enable them it may do the render look funny… but then you disable it and everything is back to normal, it´s up to the user to loose some precission and gain some speed.

And when I refer to speed is not actual speed in achieving a defined number of samples, is getting less noise in the same number of samples, and probably the same render time (or at least similar).

Cheers!


#15

Thanks for the build @JuanGea! I just did a test on a simple scene I’m working on, and I have to say I can’t see any glaring errors or mistakes. The images don’t look that different, if anything, using dithered sobol and scrambling distance gives a better render time.

Time: 11:04:78 - Sobol - Scrambling distance 1 - Denoiser off - 500 samples

Time: 11:02:55 - Dithered Sobol - Scrambling distance 0.1 - Denoiser off - 500 samples

Time: 10:53:03 - Dithered Sobol - Scrambling distance 0.02 - Denoiser off - 500 samples

EDIT: Forgot one image
Time: 10:05:36 - Dithered Sobol - Scrambling distance 0.02 - Denoiser off - 500 samples - Simplify AO bounces: 2


This one messes the reflections on the windows because of the AO simplify, but on an animated scene with motion blur where the main focus of attention is a character or a car no one will notice that in the back. Is clear here because there are other versions of the image to compare, but otherwise it wouldn’t be a problem.

I have to check with volumes and hair to see how bad it can get as Brecht mentioned, but so far I’m adding a big +1 to have this added in master. :slight_smile:


#16

From what I’ve seen Scrambling Distance causes most trouble with geometry where one side has a lot of light and the other is supposed to be in darkness such as what happens with interiors for example. I suppose it has to do with some sort of simplification of the scene underneath but that’s for Lukas to explain maybe. He probably has somewhere but I couldn’t find it.

Also this render you made is probably super clean at 500 samples anyway.


#17

Thanks @JulianPerez !!

Are you rendering with CPU or GPU?

Can you test the difference between Sobol + Scramble disabled (1.0) in GPU vs Dithered Sobol + Scramble at 0.2 with GPU?

Awesome tests!

@AdamPreisler I´ll test in an interior scene, but in any case, even if there are corner cases were this is not the best solution, we should have this in master as an advance setting, it´s like wanting to disable Simplify AO because it could break glass translucency… of course it can… but we should know how to work with this, and after a few tries, Scramble distance is something pretty intuitive, and if you can´t make it work then just don´t use it :slight_smile:

I´ll post my findings!

Cheers!


#18

Could Scrambling Distance just be put under an Unsupported features panel with an explanation why the feature is unsupported? It seems that Theory and a number of people are willing to take their chances and this would be a good compromise. There is already an Experimental features option.


#19

This seems to be the best solution. Maybe put the option hidden under a collapsed menu named “Super experimental and dangerous settings! Just don’t use it!”
Maybe this could be a perfect place for other experimental and other “error trigger options”.

Or hide the option and make it only available with a particular python command, so this option isn’t visible to “regular users \ or beginners”.

Seems like the Scrambling distance is already developed and could be added easily to official release.
Why not give the option to the users who use blender and cycles on a professional and daily basis.

We render a lot of large Images and the option to use scrambling distance would be a big advantage in our render pipeline. Saving render time is significant, especially for people who want to use blender in a commercial environment.

I would like to have some imprecise renderings, but have less noise and can reduce denoising artifacts.

Please make it happen and give us the choice :slight_smile:


#20

But this is not triggering any error… this is just an Advanced setting, if a new user wants to play with it… well he may understand what´s happening or not… but he will have to learn it, if the user wants to avoid advanced settings, just leave it disabled (at 1.0) and that´s it, and put the warning in the tooltip and/or in the documentation.

And the Dithered Sobol, I really don´t understand why this is not already in Master… the improvement on visual noise (preceived noise, I´m not talking about numbers here, but about artistic perception) it´s amazin! and there is one important thing, since the noise is a lot more uniform, the denoiser suffer A LOT less than with Sobol, and we get much more uniform surfaces and avoid the weird “cloud” effect.