Stable noise pattern

This feature affects RCSDK (all products) in general, and MAX LIVE in particular.

We have been reviewing and reworking the QRN seed a lot in the past days. Besides fixing a small bug in v2.x (we were sometimes repeating some seeds in the first frame if multiple rendering devices were involved), we have finished a feature that never worked in fryrender when the QRN seed was configurable, or in previous versions of Arion:

Now when you select a fixed number of passes, it is guaranteed that all devices in all stations will compute the exact same sequence of QRN seeds, and in the same order.

That is, there is a function that tells for each pixel at each pass what QRN seed will be used, and that function is ‘universal’ across all stations and devices.

Furthermore, the rendering loop makes sure now that if you set a fixed number of P passes, the accumulation buffer will keep the first [0..P] samples for each pixel and rule out any other seeds that might arise early due to the difference in speed between devices.

This sounds a bit complex if explained so technically, but the impact in the engine is very easy to understand:

Now, when rendering an animation (even if multiple devices or computers are involved), the noise pattern will be completely stable across frames, no matter what.

We have rendered a motion-blurred animation kindly provided by our friend Luima Morillo which you can watch below:

NOTE: The video has been rendered at a fixed number of passes (4) per frame to produce a deliberately noisy animation, for you to see the stability in the noise pattern.

NOTE II: Video compression smudges the actual noise a lot, so here’s a bunch of raw (uncompressed) frames:

This improvement is part of RCSDK v2.5.0, which is what we are working on as of this moment. v2.5.0 will bring upgraded builds for:

– MAX LIVE.
– RHINO LIVE.
– Arion stand-alone.

Thanks for watching!