Cycles Development Updates

I’ve gotten some weird patterning like that just with multiple GPUs, not just CPU+GPU. Setting a very low value for max samples tends to make it more obvious, I’ve noted.

Instaed of just zipping up your build folder, run `cpack -G ZIP’ in your build folder from the command line, it’ll package it up the same way the buildbot does and leaves out the stuff that is not needed. You can also replace ZIP with 7Z if you want to use a different compression method.

1 Like

What does it do to indirect indoor sun lighting?

***Note: low sample count renders like this do not effectively demonstrate the capacity of this feature, more extensive testing is required.

Not much, on initial testing. If there is a difficult dark corner, but the rest of the scene is well lit, it could help distribute samples a little more effectively, but it doesn’t have much of a direct effect for indirectly lit areas:


There is a window of the frame to the right, with sunlight hitting a wall behind the camera. Enabling adaptive sampling had about a 1-2% reduction in render time.

we need GI caching for this kind of renders :stuck_out_tongue:

***Note: low sample count renders like this do not effectively demonstrate the capacity of this feature, more extensive testing is required.

image
slightly more complex scene, shows a similar ~1% speed increase. Not much to write home about in this case.

…But why?

1% isn’t much of an improvement, it’s better than nothing, just not that significant.

Hmm… if only this patch could be added to master soon hidden behind the “Experimental” feature set.
There’s a lot to be done still, but even in its infancy it gives quite robust results.

I wonder if with the algorithm implemented by Stefan, later it could be implemented something where you do not need at all specify Samples settings. The parameter to be adjusted would be noise level, for example 0 being very noisy and 1 an image without noise. If you set a value close to 1, the algorithm decides the necessary samples in each zone until reaching the selected noise level (almost without any noise in this case).

This scene is super noisy, so what should an adaptive sampler do if it’s not given the needed amount of max samples? It basically shoots about the same amount of rays as a fixed sampler would do.
You will see a difference if you add a lot more samples up to the point where you get a clean image without the adaptive sampler. Yes, it will takes ages. Now switch on the adaptive sampler and you should see a difference.

Certainly true, But I don’t have ages!

I can see how doing low commitment tests like this doesn’t really show off the best capabilities of the feature, though. I will lay off on the low sample count tests.

People often mistakenly assume that adaptive sampling means faster rendering. That’s not (technically) true. What adaptive sampling means is even noise convergence. So typical example is:

  • You have an image to render that has a few strong highlights in defocused DoF or motion blur
  • The image is pretty clean already after 10 minutes/500 passes but takes another 30 minutes/2000 passes for the noise in the defocused highlights to resolve to acceptable level, making rendertime 40 minutes total.
  • You enable adaptive sampling. Now your image is pretty clean after 20 minutes instead of 10, but the noise on the highlights is on the same acceptable level as noise everywhere else. So effectively you have cut down rendertime of the noisiest part of the image, but the overall noise level is a bit higher.

What this ultimately means, is that these interior examples you guys are posting won’t benefit from the adaptive sampling that much. There may be some gain in evaluating adaptivity in the more sensorimetric manner (more similar to how human eye sees the image, so in this case a bit more sampling in darker areas), but even that may not bring any observable difference.

So it’s very important to not think of adaptive sampling as universal speed up, but as a tool to make image render evenly, so that you don’t wait hours for that last noisy spot to resolve while rest of the image is excessively clean already.

EDIT: 2 posts below this one you can see a perfect example of this. The noisiest part of the image - the agents face - has the same noise level on both images, yet the adaptive sampled one renders twice as fast, but at the same time, you can see the noise level elsewhere, like on the chair and on the floor are actually worse. Adaptive sampling just made the noise level even across the image.

2 Likes

It works pretty much like this now. If you set your scene samples to 10k, then set the threshold value to something like .005, you will get a uniform level of noise across the image. set it to .05, and you will get less noise. it appears to terminate sampling once it reaches a target amount of noise.

I think these render tests by Stefan Werner show what’s already possible:

Fixed sample

Adaptive sample

Sample amount

3 Likes

Ok, I’m going to try. But it seems a less user friendly configuration than just configuring noise levels.
I also have doubts about how high that sample value should be to ensure that all areas will be free of noise. For example I imagine not having configured a sufficient value of Samples to eliminate noise in noisier areas.

OFF


ON

more noise with adaptive sampling, is it normal ? did you change the samples ?

Yeah, play with it and see what works. Some of the caustic renders I was doing earlier were no where near resolved at 10000 samples, so if you really want clean caustics, you’ll need to bump it up a fair bit.

But honestly, if you really want caustics, you should be looking into a different renderer. Cycles is definitely not suited for those types of light paths.

To me, that means the sun interior scene should perform better than 1%. There should be direct light from the sky as well. If you need 10000 samples to clear the dark corner (indirect only), it should stop at 1000-2000 for the rest of the scene that doesn’t require that much. Today I would have to live with 10000 across the whole scene, live with the noise, or remove the sun (preferred :p).

Isn’t that what adaptive means?

Totally, and I bet it would work much better with more samples, I was lazy and didn’t really commit to enough samples to make it work. I highly recommend throwing some of your scenes at it and seeing how it fares. In some of my scenes, I got an easy 30% speed up for the same level of noise.