BSDF clamp (no more fireflies)

Dear Arion customers,

What I am about to present here, may be one of the most important features in unbiased rendering ever. :-) Not kidding, probably.

This feature enters in the field of cheating, but the negative impact in the quality and purity of the render is often 0, while the benefit of removing fireflies entirely is probably the long lasting dream of every unbiased render engine user.

In most practical uses, the following is true:

With this feature, you can get rid of most (often ALL) of the fireflies in your render without (generally) affecting the render or losing visual components.

Here’s a visual example, rendered from a WIP kindly provided by Marco Podrini (podro).

Raw, unclamped scene. Lots of sun fireflies:

BSDF-clamped scene [clamp=8]. Identically-looking render, but the fireflies are gone:

How does this work?

WARNING: I will get a bit technical here. So read the conclusions in bold only if you want.

When a light path hits a surface, the mathematical model (BSDF) of the surface material is evaluated to determine the intensity and direction of the outgoing light ray. Since this is part of a stochastic (randomized) process, BSDF evaluation involves the material properties, and also some factors related to the probability of each outgoing direction. For this reason, likely paths usually evaluate to low-power BSDF values, and unlikely paths evaluate to high-power BSDF values.

That is perfectly normal and completely correct. Unlikely paths will output high-power samples, but will not happen often, so they will accumulate to normal-power values over time. In the same fashion, likely paths will output low-power samples, happening very often, so they will also accumulate to normal-power values over time.

Some unlikely (hard to generate) paths, such as complicated caustics, can be characterized this way. As a special case, fireflies could (in theory) be characterized this way too. As a matter of fact, they are very unlikely paths that happen sparsely, and carry a high amount of power that is expected to dissolve by accumulation over a long time.

Unfortunately, some completely legitimate paths fall into this category too. So simply removing such paths would kill fireflies at the expense of destroying many other legitimate visual components.

In v2.7.0 we have added a setting with which you can (optionally) constrain the output range of the RandomControl BSDF.

Note that the output of a BSDF is in the range [0..INF), despite most normal output values are in the range [0..1]. For this reason, using small clamp values (e.g., 4, 8, …) makes sense.

- The higher the clamp value is, the more power you’re letting through, and the less that you’re clamping.
- The lower the clamp value is, the more aggressively you’re clamping.

- Low BSDF clamp values kill fireflies very aggressively, but may darken some highlights in the scene.
- High clamp values leave the scene nearly (or completely) intact, but may let some fireflies through.

i.e., It is best to pick a BSDF clamp value that is high enough to leave the physical-correctness of the render as unaffected as possible, while removing as many fireflies as possible.

Here’s the same example as above, using an ‘excessively low’ [clamp=1] value. As you can see, fireflies are fully gone, but the frosted glass panel gets darkened a bit. In the render above, [clamp=8] was used, and fireflies were equally gone, while the brightness of the render remained completely unchanged.

BSDF clamp 1

This new feature, which is particularly effective in sun-lit scenes, will be part of v2.7.0 and be accessible in the upcoming Asa and Af3 Beta builds.

A couple more examples. This scene was kindly provided by Jose Manuel Linares (mane162) some time ago.

Unclamped (normal) version. Some sparse, but annoying speckles here and there:

Clamped version. Identically-looking, yet completely speckle-free:

Thank you very much.

Af3 – Particle Flow standard shapes

Dear customers,

Arion for 3ds Max now fully supports Particle Flow standard shapes (cube, sphere, diamond, letters…).

Until now, Af3 was only exporting ‘Instance Shape’ particles as instanced point clouds. Now, ‘Instance Shape’ is used if present, but meshed particles are exported otherwise.

Particle Flow standard shapes

Note that proper motion blur is only supported if ‘Instance Shape’ is used, because in that mode, particles are tracked individually by their pivot. If a particle system is exported as a meshed triangle soup, however, the topology of the mesh may change (as a matter of fact, it almost always does) over time, making it impossible to compute real automatic 3D motion blur.

In other words: if motion blur is wanted => the Shape Instance Particle Flow node must be used. Otherwise, and specially if memory is not a big constraint, you can use any other Particle Flow nodes normally.

Thank you for reading!

The Beta Program is ON

Dear Arion customers,

As announced some days ago, we have decided to start a Beta Program with the intention to shorten the wait time between releases of our software.

We’re starting this Beta Program with the launch of Arion for 3ds Max v2.7.0 Beta4, which you can download from the Customer Area from this moment on. If you do so, remember that you will need to download the corresponding v2.7.0 license file as well.

We are accompanying this release with the re-opening of our forum, where you will be able to discuss about the Beta builds, or post your artwork. Note that the forum is for customers only, so registration needs validation from our webmaster. To make the validation process easier, please register with the same username you picked for your Account ID in the Customer Area.

Note that Beta builds are available for full regular customers only. This means that EDU (Educational / Learning Edition) users or DEMO users will have no access to Beta builds.

Regarding the Af3 v2.7.0 Beta: It’s pretty finished, except for the ActiveShade part, where some improvements are still on their way.

NOTE: New customers will get direct access to both v2.7.0 Beta and the latest official build (v2.0.3).

Thank you very much!

Export instances as geometry

Dear Arion customers,

We’ve added a flag in Arion for 3ds Max (F10 dialog) to be able to export instances as regular (mesh) geometry.

As you all know, the convenience of instances over raw geometry can be summarized as:

- Instanced geometry uses up less memory, but renders somewhat more slowly.
- Raw geometry uses up more memory, but in turn renders faster.

In terms of performance, for a scene where the instances still fit in the RAM of the GPUs when exported as geometry, there is no reason to leave this checkbox OFF. However, there are some other important reasons why you might want to export instances as geometry (listed below).

As long as the instances fit in the RAM when exported as geometry, enabling this flag will bring the following:

- The scene will render faster.
- Each instance will be allowed to use its own materials (*).
- Instanced emitters will illuminate the scene properly (**).

(*/**) Note that instanced geometry in Arion does not support emitters or different material sets per instance.

Instances as geometry

Instances as instances – efficiency: 1.97 p/s


Instances as geometry – efficiency: 3.05 p/s


Thanks for watching.

Things that we can do better (II)

Our forum

We have finally decided to re-open our forum, which you can reach in its original location:

http://www.randomcontrol.com/forum

The sections on the forum are still viewable by the Beta Testing team only. However, we plan to open the forum publicly very soon, and we are already accepting new registrations.

We plan to keep the forum readable by anyone, but write permissions will be granted by our webmaster to legitimate customers only. For this reason, if you intend to register, please use the same e-mail and username as in the Customer Area. This way the system will be able to lift permissions for you.

Beta Program

One of the main things that we can do better is find a way to shorten the wait time between releases of our products. The best solution that we have come up with is to open a Beta Program.

This means that, from now on, we will allow our customers to download development builds that are good enough to be used in production, even if they are not finished. The Customer Area will allow customers to download the latest official Releases, and one or more Beta builds as they become available.

Note that the availability of new Beta builds will depend on many factors. For example, Betas will be released more or less frequently depending on what product we’re focused on at a given moment, and whether or not we’re in the middle of the development of new technology, or just polishing workflow or usability features.

We have created an area in the new forum to discuss the Beta builds (i.e., report problems or ask questions), and we already have issued Beta builds of Arion stand-alone and Arion for 3ds Max v2.7.0 to our Beta Testers.

We will open the Beta Program and the forum to all our customers very soon.

Thanks for watching!

Things that we can do better (I)

Dear Arion users,

We have decided to do a couple of statements that will answer some e-mails and questions that we have received lately.

Current product line

Right now our product line is:

- Arion stand-alone (Asa)
- Arion for 3ds Max (Af3)
- Arion for Rhinoceros (AfR)

We are not working actively on any other products or plug-ins as of this moment. Over time we have learnt that for a small company like ours, it only makes sense to focus on as few things as possible.

When it’s done

Every single time that we have talked openly about our intention to work on a new product or plug-in, our words have been taken as a sacred unbreakable promise. This has brought lots of trouble and we reckon this as one of our biggest mistakes.

You have to keep in mind that Arion is developed by one person (me), and also that as a product matures and features stack, releasing new stuff becomes a lengthier task. For this reason, some of the side projects that we have started in the past have proven to be too costly to be reasonably profitable.

As of this moment, you can officially say that we clear all previous announcements, since we are only working actively on the next versions of:

- Arion stand-alone (Asa)
- Arion for 3ds Max (Af3)
- Arion for Rhinoceros (AfR)

Version numbering

We generally increase the version ID of RCSDK (the Arion Core) as soon as the feature set requires a compatibility change in the .rcs/.rcm file formats. This has been the case since we released Arion stand-alone v2.5.0 and the next version of Arion for 3ds Max (v2.7.0).

Arion for 3ds Max v2.7.0 is what we used to call MAX LIVE v2.5.0 when the RCSDK was still v2.5.0.

Thanks for watching!

CUDA 6 RC

Dear Arion users,

We’re adapting the Arion Core so it runs on CUDA 6 Release Candidate, which was released some days ago. Our setups carry the run-time CUDA .dll, but your drivers may need to be upgraded when Arion for 3ds Max v2.7.0 is released.

Update: Fortunately, this time upgrading the build system from CUDA 5 to CUDA 6 has been easy!

Update: I spoke too fast. CUDA 6 has broken instancing… Been working on that for the past 8 hours…

Thank you!