Here at Recent Spaces we had the pleasure last month of testing out the new adaptivity and denoising tools in a Corona daily build on a commercial animation job. We’d hoped that it would work more or less as promised, with both tools acting together to help produce a cleaner, noisefree image in fewer passes (i.e. in less time), with the engine working out where it needs to throw more samples and then, after the render is completed, denoising it without sacrificing too much (or ideally ny) visual detail. If it worked as described, this would allow us to render shots with fewer passes and therefore in less time. Of course, time is money when it comes to rendering. If you can shave off a few minutes per frame that translates directly to significant cost savings for animation work, or indeed for stills.
We were expecting a few minutes to be shaved off per frame, but the results were in another league completely…
Spec for reference: Rendered resolution is 1080p & workstation is a dual xeon E52670v3 @ 2.3ghz (48 threads at 2.3ghz) with 64GB RAM, running Corona daily build from 12th March on Max 2016 SP3, Windows 10. Adaptivity was enabled in all cases, so the results below are a comparison of denoised v not denoised. We might do a comparison of adaptivity V no adaptivity soon as well to show the effect on noise distribution.
First, let's do a simple comparison of non-denoised V denoised, both at 75 passes:
Denoising has worked very well here. Details are preserved in the wood grain, fabric textures and in small details, but the noise has been removed completely.
Now, let's compare a 300-pass non-denoised render with a 75-pass denoised render:
As you can see from the images above, we’ve gone from 300 passes and 42 mins per frame for a reasonably clean image to 75 passes and 11 mins per frame, with the same visual detail and noise quality (perhaps even slightly improved).
This is an almost 74% reduction in render time.
And let’s not forget that the loss of detail when using denoising is negligible if you are careful with its strength (we keep it at around 0.6 instead of the default of 1.0). Furthermore, you can use the new Beauty render element to save out multiple versions of the shot/frame with varying levels of denoising. You can then use masks/mattes to denoise only certain areas such as large white walls and ceilings where noise is typically more visible. I’m sure that we can also expect a simple include/exclude option for denoising in a future build as well, to make this even simpler, and perhaps tools for denoising based on object ID, mat ID etc.
Currently there is an issue with using adaptivity with DR in Corona, where if both are enabled, adaptivity will only be calculated on the master machine, not on the DR nodes. DR and denoising together also seems to present issues for some users. This should all be fixed for 1.5, we’ve been told, which is just around the corner also.
The images above are from our recently completed Primrose Hill project.