← All ideas
  • Published 8 Nov 2023

Could these ideas help stop adaptive sampling incorrectly thinking a pixel should stop being sampled?

Adaptive sampling often incorrectly stops sampling where there are bright pixels surrounded by darker pixels. Often in areas predominantly lit indirectly, or where scattering leads to bright white pixels between incorrectly dark pixels.

This often leads to swirly artefacts when denoising, requiring adaptive sampling to be disabled.

Could this be improved by having the adaptive sampling algorithm reduce it's certainty based on the sparseness and brightness of the sampled pixels. So if the currently sampling pixel is excessively bright compared to it's surrounding pixels, and it thinks it has reached the noise threshold. Instead of stopping sampling, instead pause sampling of that pixel until surrounding pixels have been sampled further, intermittently checking if it still thinks it's reached the noise threshold, and resume sampling that pixel if the surrounding pixels suggest it's relatively too bright to be correct.

Perhaps the certainty that it should stop should also be reduced if the direct lighting pass is vastly darker than the indirect lighting pass, because it's often predominantly indirectly lit areas that are more prone to the problem.

Could also reduce certainty based on % of surrounding pixels that have failed to reach a light source, or if the pixel is hitting a volume when searching for a light.

Also, Cycles could sample 1/20th of evenly spaced pixels to max samples, to build a true idea of correct pixel levels across the image, and use those pixels to help decide if the other pixels have reached the correct noise threshold based on their comparative brightness.

66.7%

Development Status: Open

Upvote 2 Downvote 1
3di
8 Nov 2023

2 Comments

thomas.albos

This happens not just with cycles, but also with octane. This isn't a 'cycles specific' problem. The solution is to increase the minimum sample count, which by default is 0. For reference, in Redshift the default minimum is 4 samples, and in octane its 256 minimum. Yes the blender developpers could improve the alogrithm for adaptive sampling, but this could also be avoided by adjusting the minimum sample count.

3di Author

I'm afraid that's usually not the case, often the only way to get rid of it is to set the min samples to the same as max samples, or to just disable adaptive altogether . By the way in cycles, the minimum samples is 4 if set to less in the UI.