Intro and Goals:
The Bucket and the Progressive sampler have their very distinct pros and cons.
This post aims to analyse them and clarify their use cases, along with providing for some tips to avoid common mistakes.
The Bucket Sampler:
Pros:
Pros:
Problem:
Switching Samplers can lead to much increased render times when passing from bucket to progressive, or quicker and noisier renders when moving from progressive to bucket.
This is the case, for example, if one was to switch leaving all options at defaults.
Solution:
Make sure to match the Max AA Subdivs and the Noise Threshold between sampler types, as the defaults currently are not identical between the two.
For example, the default max AA Subdivs for the Bucket Sampler is 24 by default (or 24 ^ 2 samples, 576), while the one for the Progressive Sampler is 100 (or 100^2 samples, 10000, some seventeen times more!).
In the same way, the Noise Threshold for the Bucket Sampler defaults at 0.01, while for the Progressive Sampler it defaults to 0.005.
This alone would lead to four times longer renders for the Progressive Sampler as compared to the Bucket one.
Features Reference Table
Legend for the table below:
“Y” means a feature is available with the specified sampler, “N” means it’s not.
“+” Means a feature is more efficient with the given sampler, “-” means it’s less so.
Always refer to the points above for a more comprehensive explanation.
Parting Words:
While both engines already prove useful at their preferred tasks (final, high resolution rendering, versus quick, iterative look-development, for example), work is being actively done on them with the goals of expanding use cases, and ameliorating the weaker sides.
Last but not least, remember that these are guidelines only, and your mileage may vary depending on scene type, size and complexity, on the available hardware, and on the presence or not of Earth’s magnetic field-aligned Coronal Mass Ejections from the Sun intercepting our planet.
You’d better not be rendering then!
The Bucket and the Progressive sampler have their very distinct pros and cons.
This post aims to analyse them and clarify their use cases, along with providing for some tips to avoid common mistakes.
The Bucket Sampler:
Pros:
- The Bucket Sampler is kinder on memory usage, allocating only the amount of data needed for the active buckets. This includes the image data for the VFB and Render Elements (also called AoVs).
- The Bucket Sampler is ideal to render very high resolution images, thanks to its ability to check for noise threshold only in and around the current buckets.
- The Bucket Sampler can render without a frame buffer, writing the image directly to disk, bucket by bucket.
- The Bucket Sampler is preferred when using proxies and tiled textures, as it will allow for their graceful loading and unloading (note: provided the Light Cache is not used).
- The Bucket Sampler is more efficient with distributed rendering, providing for ideal network traffic, and optimal CPUs usage.
- The Bucket Sampler doesn’t suffer a big penalty when the Render Elements (or AoVs) are many.
- The Bucket Sampler allows for the use of the CryptoMatte RE, thereby enabling more efficient masking of scene elements.
- The Bucket Sampler allows for unfiltered Render Elements (f.e. Z-depth, or any other data-element which needs the unfiltered pixel value.) and Deep EXRs.
- The Bucket Sampler does not provide for realtime feedback on the Render quality, only offering the complete bucket or nothing at all.
- The Bucket Sampler does not provide as good a realtime feedback on post effects.
- The Bucket Sampler cannot use realtime denoising.
- The Bucket Sampler has limited use with resumable rendering, only offering the option to complete an unfinished job, exclusively at the quality it had been started at.
- The Bucket Sampler only allows to render to a given quality budget, instead of a time one.
Pros:
- The Progressive Sampler provides for realtime feedback on the Render’s quality, which will improve over time.
- The Progressive Sampler provides a very good, and fairly accurate, realtime feedback on post effects.
- The Progressive Sampler is ideal for the use of realtime denoising, making it very useful for Lighting and Look Development.
- The Progressive Sampler is well suited to resumable rendering, offering the option to increase the sampling quality of a previously stopped render (f.e. Turning a preview render into a final).
- The Progressive Sampler allows to render stills and animation with a fixed time (instead of quality) budget per frame.
- The Progressive Sampler needs to allocate the memory for the whole scene data. This includes the image data for the VFB and Render Elements (also called AoVs).
- The Progressive Sampler is not ideal to render very high resolution images, as the noise threshold checking on the whole screen will suffer a sensible performance penalty at higher resolutions, while the needed memory may become sizable.
- The Progressive Sampler cannot use the bufferless rendering mode, which would allow writing the image to disk while rendering it, and save on RAM use.
- The Progressive Sampler isn’t well suited to the use of proxies and tiled textures, as it will force the loading of all of the visible (directly and indirectly) ones from the early passes onward, and make their unloading from memory less likely.
- The Progressive Sampler is by its nature less efficient with distributed rendering, providing for non-optimal network traffic, and CPUs usage.
- The Progressive Sampler suffers a performance penalty when the Render Elements (or AoVs) are many.
- The Progressive Sampler cannot produce unfiltered Render Elements or Deep EXRs.
Problem:
Switching Samplers can lead to much increased render times when passing from bucket to progressive, or quicker and noisier renders when moving from progressive to bucket.
This is the case, for example, if one was to switch leaving all options at defaults.
Solution:
Make sure to match the Max AA Subdivs and the Noise Threshold between sampler types, as the defaults currently are not identical between the two.
For example, the default max AA Subdivs for the Bucket Sampler is 24 by default (or 24 ^ 2 samples, 576), while the one for the Progressive Sampler is 100 (or 100^2 samples, 10000, some seventeen times more!).
In the same way, the Noise Threshold for the Bucket Sampler defaults at 0.01, while for the Progressive Sampler it defaults to 0.005.
This alone would lead to four times longer renders for the Progressive Sampler as compared to the Bucket one.
Features Reference Table
Legend for the table below:
“Y” means a feature is available with the specified sampler, “N” means it’s not.
“+” Means a feature is more efficient with the given sampler, “-” means it’s less so.
Always refer to the points above for a more comprehensive explanation.
Sampler Type | Bucket | Progressive |
VFB/REs Memory Use | + | - |
High Resolutions | + | - |
Direct-to-Disk Rendering | Y | N |
Proxies and Tiled Textures | + | - |
Distributed Rendering | + | - |
Many Render Elements (AoVs) | + | - |
CryptoMatte | Y | Y |
Unfiltered REs / Deep Exrs | Y | N |
Realtime Render Quality Control | N | Y |
Realtime Post Effects Feedback | - | + |
Realtime Denoising | N | Y |
Resumable Rendering | Only to completion. | With improving quality. |
Render to Time Budget | N | Y |
While both engines already prove useful at their preferred tasks (final, high resolution rendering, versus quick, iterative look-development, for example), work is being actively done on them with the goals of expanding use cases, and ameliorating the weaker sides.
Last but not least, remember that these are guidelines only, and your mileage may vary depending on scene type, size and complexity, on the available hardware, and on the presence or not of Earth’s magnetic field-aligned Coronal Mass Ejections from the Sun intercepting our planet.
You’d better not be rendering then!
Comment