← All ideas
  • Published 1 Jul 2020

Adaptive Sampling support for cycles

NOTE: THE IMAGE IS NOT A REAL WORLD EXAMPLE, BIG BUCK BUNNY DOESN'T EVEN USE CYCLESit's just a demoI just want to make that clear before people start railing me for that  Adaptive sampling is a feature so common place in the modern 3d world... at least in the top dogs like Vray and Cinerender..etc"or those who dont know, adaptive sampling is in very basic terms just a method that the render-engine uses to determine whether a particular tile still has noise, and if the noise is reduced to an acceptable level, it stops rendering the tile, and moves to the next tile.it can save quite a bit of time, as the renderer will spend less time on noise-free areas, and more time on tiles that have a lot of noise, instead of spending the same amount of time on all areas. hope that makes sense… :P" - Rico Cilliers Thanks Rico! :)Would be great if cycles could jump in the bandwagonThere was a prototype before for blender, I'm not sure what happened to it but...Would be nice if somebody in BF continued work on ityoutube.com/watchMy apologies of I'm asking for too much.

98.9%

Development Status: Done

Upvote 177 Downvote 2
fdfxd2
1 Jul 2020

16 Comments

rico.cilliers

For those who dont know, adaptive sampling is in very basic terms just a method that the render-engine uses to determine whether a particular tile still has noise, and if the noise is reduced to an acceptable level, it stops rendering the tile, and moves to the next tile.

it can save quite a bit of time, as the renderer will spend less time on noise-free areas, and more time on tiles that have a lot of noise, instead of spending the same amount of time on all areas. hope that makes sense... :P

9
fdfxd2 Author

I'll just copy your definition because it's way more descriptive than what I was going to say

1
rico.cilliers

No problem :D

I've used a lot of render engines, and already cycles is not too far behind the other gpu rendering engines. I think if adaptive sampling gets added, then I wouldn't be surprised if it overtakes the other engines in terms of speed.

RayMairlot

I think it would be useful to explain what 'Adaptive Sampling' actually is for those that don't know.

3
animegeek57

Excellent point! That should go right in the main post.

Peine_Perdue

This feature is now in Blender 2.83 !

2
animegeek57

It is a big feature to ask for, but I think it is still really important. Just look at Gooseberry. Don't get me wrong; the movie looked amazing, but when I think about how much render farm power went into rendering it, and how it had all the highest level experts of Cycles rendering working on it, but there STILL ended up being very noticeable noise in the tornado and other places... I think Cycles really needs adaptive sampling if it's going to be accepted in the industry for animation. Sad but seems likely to be true.

1
tirthvalu

SALUTE

TargetCrafter

This feature is now available in Blender 2.83 beta

this is in 2.83 alpha now.

mauricio.kanada

Gradient-domain path tracing could give better results than adaptive sampling. But one does not exclude other. Both techniques can be used together.

kookitoocg

It's already been developed by theory studios search in graphical for bone studio

m2459426

Yes, This would be amazing, i'd imagine using this with progressive render would be even faster because instead of whole tiles, the renderer could skip individual pixels

camplowell

@m2459426: Even with the tile-based method, pixel-wise stopping is still possible. Additionally, given multiple evaluation passes for stopping (powers of 2 beyond a minimum?) the noise-detection can begin to rely on how much the tile/pixel has changed between the last and current checkpoints (essentially progress on convergence, taking advantage of the diminishing returns of high sample count) to estimate noise.

LapisSea

I propose an outline how blender could do this. It would be done by defining baseline minimum samples that would render the whole frame with first, then denoise it or use some other way of creating an estimated target image. Then compare the before and after denoise image Then do a step[1] on those tiles that have above threshold of difference.

[1] Step : a defined number of further samples before checking noise again or if possible, a dynamic sample. This "dynamic sample count" would be calculated according to amount of noise on first pass (defined by minimum samples) or on tiles that require further samples use a comparison of noise from previous step to create a more accurate prediction of noise/samples curve.