Ways to use the Arion AOVs to denoise a conflictive render

Arion becomes more robust version after version and we’re already offering a very powerful set of features which allow the user to fight fiercely against noise and render times. However, sometimes your scene is either too complicated, or you’re unsure where your noise is coming from, or you’re about to meet your deadline and need an easy way to stay out of trouble and get a clean render.

In this short tutorial we will study the case of a render that is mostly clean except for some caustics.

NOTE: This particular example has been set up to generate excessive noise and fireflies from specular surfaces.

Method #1: Using the Main and Caustics AOVs

To achieve our denoising goal with this method, all we need to do is enable the Caustics AOV and let Arion render until most of the image is clean.

The Main AOV:

The Caustics AOV:

By subtracting the Caustics AOV from the Main AOV, we get a clean render of the full GI, minus caustics:

We can carefully denoise or despeckle the Caustics AOV to remove all the fireflies:

Now we can add the despeckled Caustics AOV to the Main AOV and get the final (clean) image:

Method #2: Using the Direct/Indirect AOVs

This method is similar to the previous one, but requires fewer editing steps.

Note that for this method, you may need to enable the Lights AOV as well, as direct vision of light sources is not included in the Direct/Indirect AOVs.

Here is the Direct AOV:

Here is the Indirect AOV:

And here is the Lights AOV:

Just like in the previous method, we carefully denoise or despeckle the Indirect AOV:

Then we add it back to the Direct AOV, without forgetting to add the Lights AOV as well, in order to restore the full image:

As you can see, using Arion’s v2.5.0 AOVs, it’s possible to get out of a difficult rendering situation without sacrificing quality, when the deadline is about to expire.

Note that, in both cases, denoising the Caustics/Indirect AOVs is virtually non-destructive to the final image, because most of the sharpness and evident details in the render are present in the Main/Direct AOVs, which remain intact through the process.

Note also that, strictly speaking, all these operations must happen in HDR (linear) space so addition and subtraction of AOVs is correct.

Thank you for watching!

Finite sampling and exit colors (II)

In the example images below, a low number of bounces was used for the specular and glossy components, while a little higher value was used for diffuse bounces. This resulted in a nice 45% faster rendering for a visually indistinguishable image:

As explained in our previous post, each render component features an Exit color, which can be used to compensate the darkening coming from a too low path recursion depth. Some very important speed increases can be achieved on dielectrics and Sub-Surface Scattering materials if exit colors are used properly:

Here are some more examples, where every SSS material is using an exit color, and the total number of SSS bounces was cropped to 6. As you can see, it renders not only faster, but also cleaner:

Thanks for watching!

Finite sampling and exit colors (I)

The Arion v2.5.0 rendering core features a brand new set of controls to constrain path-tracing depth on a per-feature basis.

i.e., now you can control the maximum number of specular/glossy/diffuse/refraction/scattering GI bounces independently.

This new feature will be available to all the v2.5.0 releases of our products. For example: you can see what the UI looks like in the Arion stand-alone in the image to the right.

Cropping the maximum number of GI bounces in a scene allows for a significant speed increase in exchange for a controlled darkening of the GI in hard-to-reach areas.

Note that this feature does in no way break unbiasedness. However, if you want to stay fully physically-correct and render times are not your main concern, then you can just crank the GI limits up to their maximum values to fully disable bounce cropping.

For those of you curious about technical details, this feature works by keeping separate bounce counters during the path-tracing loop. As soon as one of these counters reaches the limit set by the user, the path is aborted, contributing to the framebuffer either nothing (by default), or a user set exit color.

Exit colors have different practical uses:

1- You can use them to learn how many bounces your scene needs for optimal performance. You can enable them and keep increasing the GI bounce limits until the exit colors disappear from your scene. Then disable them and render normally.

2- You can use exit colors to greatly optimize dielectrics and SSS. For example, you can set a skin-like exit color for a skin SSS material (*) to get super-fast clean SSS with very few bounces.

(*) Exit colors can also be configured either globally, or on a per-material basis.

We will post some visual examples of this all in our next post.

Thanks for watching!

New Caustics AOV

As mentioned in previous blog posts, Arion’s compositing capabilities have been greatly reviewed and extended for v2.5.0. An example is the new Caustics AOV.

As you probably know, Arion features a ‘Disable caustics’ switch (which you can enable either globally or per-material). This switch dims sampled contributions proportionally to ‘how caustic’ they appear to be. This solution effectively removes caustics from the render.

In general, and in true unbiased/physically-based rendering spirit, one should never want to remove caustics from a render. However, in practice, sometimes most of the noise (or even fireflies) in an image come from caustics.

The ‘Disable caustics’ switch is fine. However, it leaves you with no control in case that you only want to remove only some of the caustics, as it is an all-or-none switch.

So, for v2.5.0 we have done the following:

1- We have improved the way the ‘Disable caustics’ switch works, making it filter caustics more finely than before.

2- We have added a new AOV which gathers the contributions that the ‘Disable caustics’ switch would trim out of the final render. This AOV works regardless of whether the ‘Disable caustics’ switch is ON or OFF.

In other words, now you can render normally, and then deal with caustics separately in post-processing.

To obtain a caustics-less render in v2.5.0 you can:

1- Either render with the ‘Disable caustics’ switch turned ON.

2- Or render normally, and then subtract the Caustics AOV from the Main AOV in post-processing.

Both operations are equivalent. Here’s a little example, where the Caustics AOV has been subtracted from the Main AOV:

Once you have a caustic-less image and a Caustics AOV you can do things such as:

– Denoise or despeckle the Caustics AOV, and then add the result to the Main AOV.

– Dim whichever caustics are bothering you and add the result to the Main AOV.

– Pump the caustics up for artistic effect.


In order for these post-processing operations to work (correctly), you must work with 32-bit raw (untonemapped) EXR output. Additions and subtractions of AOVs only work as they are intended to if they happen in unclamped linear space (a.k.a. Linear Workflow / LWF). Doing operations such as the ones mentioned above with tonemapped 8-bit or 16-bit output would ‘seem to work’ but be technically incorrect, because each channel would be LDR-clamped and gamma-corrected.

A little status update:

We’re still working on Arion stand-alone v2.5.0, MAX LIVE v2.5.0 and RHINO LIVE v2.5.0. We will release each of them as soon as they are ready, which should hopefully happen during the upcoming weeks (Aug/Sep).

Thanks for watching!

IBL Importance Sampling

Arion v2.5.0 features a brand new Importance Sampling system for Image-Based Lighting that immensely improves render speed in HDR-illuminated scenes. The speed improvement becomes really massive as soon as the HDR environment starts to be heterogeneous enough (i.e., contains some particularly bright spots such as the sun, etc…)

IBL-IS (Image-Based Lighting Importance Sampling) analyzes the HDR environment map, splitting its surface in areas classified by brightness. From then on, the brighter areas are sampled more often than the darker areas, so variance (noise) is reduced much faster. The speed improvement ranges from faster to extremely faster.

The most typically extreme case for IBL-IS is an HDR photograph of the sky, because most pixels are even in brightness and color, except for the sun ball. With regular stochastic sampling, the sampler would need to hit the sun ball by chance. But thanks to IBL-IS, light paths are automatically driven towards the sun area more often than they are to the rest of the sky.

In other words, it is now possible to render efficiently any HDR environment with fast and nearly-immediate hard shadows, even if the map features tiny bright spots, a sun ball, studio light gear, or anything that you can think of.

This feature is a blessing for product-viz and exterior shots.

So here you have some examples of the IBL-IS feature in action.

The images below were rendered using IBL-IS (v2.5.0) and stochastic sampling (v2.x.x) for the same amount of time. Difficult HDR environment textures were used for demonstrative purposes.

Example #1:

Example #2:

Example #3:

Example #4:

And last but not least, here’s another demonstration of the power of the Arion MLT sampler.

This is a render of an inflatable pool with full physical underwater caustics. Subtle dispersion was enabled to add some natural color fringing. The image was illuminated with an HDR environment map.

This render does not use the native sky/sun system!

Thanks for watching!

Renewed Shadows AOV

For v2.5.0 (stand-alone + MAX + RHINO) we have re-done the Shadows AOV. This is one of the various fixes or improvements that we have made in the rich compositing/AOV system introduced in v2.4.x.

Our new Shadows AOV has some very interesting properties:

– It catches shadows coming from every feature in the engine (emitters, sky/sun, env).
– It catches shadows coming from the GI as well (not just direct shadows).
– It catches the HDR color and power of the incoming light/GI in the unshadowed areas.
– As expected, it is decoupled from the reflectance of the BSDF of the shadows catcher.

To allow for this all, the Shadows AOV is now HDR RGB (compared to LDR grayscale as it was before).

Here’s a visual example, where the following channels have been rendered for a test scene:

– Main.
– Shadows (backdrop set as shadows catcher).
– MtlID mask (backdrop set to mask).

And here’s a quickie where the rendered objects have been incrustated in a photographed backplate:

Note that one of the key properties of this renewed Shadows AOV is that it is an HDR RGB channel, where (all) the incoming light arriving to the shadows catcher is captured, keeping its real power and spectral color. This provides a much more complete solution to render/photo incrustation than a simple direct-lighting only, or grayscale-only Shadows AOV.

Note also how the new Shadows AOV (as expected) is decoupled from the reflectance of the BSDF of the shadows catcher (although the GI cast by the shadows catcher correctly affects the GI received by itself). This allows the user to set a shadows catcher that resembles the final backplate, if desired. However, using a default lambertian for the shadows catcher is often more than enough.

Here’s the same example, where the backdrop is textured. The Shadows AOV has a slight red shift now, but the checkerboard is absent as expected.

Thanks for watching!

Swimming pools and MLT power

We are posting this in response to some ignorant (or maybe deliberately disinformative?) comments that have been made on other forums about our latest blog post.

The fact that Arion can render some hard caustics paths with practical efficiency is not new. We released our MLT sampler many months ago. The fact that we can render proper sun caustics (e.g., swimming pools) now is a combination of MLT helping a lot + some improvements we’ve made in our physical sky system lately + the ability to alter the sun diameter at will (so the sun is found more easily by stray light paths).

We have -never- cheated in our software. We have -never- implemented a single feature that uses interpolation, and we have -never- implemented a single feature that is not unbiased in Arion (or fryrender in the past). Additionally, and very importantly, we have -never- insulted or deliberately lied or disinformed about any other rendering solution, because that’s not our style.

Below you can find one of the test images that we posted yesterday, rendered with our Path Tracing (PT) and Metropolis (MLT) samplers for a few seconds. You can also find the same scene, rendered clean with MLT. These images are quite descriptive (I think) of how much MLT can help when it comes to exploiting hard-to-find light paths vs. PT, which samples all paths evenly. I believe that these images also evidence that the clean render is not the result of cheating, post-processing, or interpolation, but raw unbiased accumulation.

The thumbnails can be clicked to be viewed in their original resolution (2048×2048).

For those Arion users curious about the parameters used:

– Splatting = ON
– Super-Sampling = 1
– Water = normal dielectric water (roughness = 5%)
– Sun diameter = 2º
– Sampler = MLT

Here you can see two more examples where MLT is really decisive. One is the classic dispersive prisms test, and the other one is a heavy physically-based volumetrics test (Arion supports volumetrics since v1.5, released a long while ago).

Reviewed/improved physical sky

RandomControl is proud to announce that some deep technical work has been done on Arion’s physical sky/sun.

The changes comprise two aspects:

1- The complicated part: The match between sun integrators in the engine is perfect now, which kills some powder or fireflies that were happening before, and cleans noise faster in general as well as long as the sun is used.

2- The easy but very useful part: A new feature has been added so the sun diameter can be configured. Some users had requested the ability to fake ‘less sharp’ sun shadows, for example.

Both improvements have their own importance by themselves. But when used together, it is possible to efficiently render proper sun caustics, even through dielectrics (like swimming pools or even windows with real glass). The use of MLT sampling shines in all its glory here by allowing to render that sort of images that used to be impractical before.

Among the other improvements brought to the physical sky, we have added a sun power setting that allows for manual override of the natural sun power, for similar reasons (simulating less clear or cloudy skies).

Below you can see some renders done with an internal build of Arion stand-alone 2.5.0 which feature the new physical sky.

No cheats involved: all the caustics are real and seen through real dielectrics.

Visual Impact Sink

Visual Impact Pool

Realistic Design Pool

sun glass

sun pool caustics

sun diameter comparison

Scenes provided by Raphael Aguirre (Realistic Design), Johnny Butcher (Visual Impact) and the RandomControl Team.

We are working on the release of v2.5.0, which will comprise:

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

They will be released as soon as they are ready, which we definitely hope will happen before the summer ends.

We have some more interesting announcements pending, which we will unveil in the upcoming days.

Thanks for watching!