Please enable JavaScript in your browser for better use of the website.

FAQ - InnoBright

Altus is a software product which works as a post rendering filter tool for monte carlo rendering systems.  Altus takes noisy AOV (arbitrary output variables) exr files from monte carlo rendering systems that are rendered at low samples per pixel (hence noisy), and uses these noisy AOVs as inputs to produce a denoised (or filtered) exr image output.

Altus is openCL based, so it runs on either CPU or GPU based systems under Windows and Linux. In addition the system should have OpenCL libraries installed.

For Windows, all other libraries required to run Altus are provided as part of the installer.

For Linux, our build environment is ubuntu, and Altus has subsequently been tested and found stable in debian based systems. Any dependency issues can be resolved in other flavors of linux either through temporarily using a symlink for a library or by updating the needed libraries.

To run Altus, you will need

1) openCL 1.2 or higher installed on your system

It is important to note that OpenCL will not run on nvidia architecture cards
without the cuda toolkit found here: https://developer.nvidia.com/cuda-toolkit

Also Intel processors need to have a driver set installed found here: https://software.intel.com/en-us/articles/opencl-drivers

For AMD architecture, the openCL libraries can be found here:  http://developer.amd.com/tools-and-sdks/opencl-zone/

2) A rendering system based on Monte Carlo methods.
3) A renderer that is capable of writing out the six pass types (see What are the specific inputs to Altus?).
4) A renderer that is capable of rendering with different sample seeds so that the render noise in the passes varies between two separate renders of the same frame.

Altus works only with renderers that use Monte Carlo methods to render the 3D model. Altus has been tested on  commercial renderers such as V-Ray, Redshift3D, Corona, and Arnold.  Altus is currently being tested on Mental Ray and Octane.  Our intent is to support all Monte Carlo renderers in the future.  Applications of Altus denoising include Entertainment VFX, commercial/advertisement VFX, Architectural rendering, Scientific visualization rendering and CAD/CAM design rendering.

Altus can certainly be used for previsualization. Whether it can be used for final rendering depends on the requirements of the final image. Only the artist/producer can determine if the filtered image meets the “denoised” requirements of the final image.

As inputs, Altus requires outputs from the rendering process that are commonly refered to as passes or AOVs. The passes required by Altus are as follows:
– Beauty render (aka RGBA).
– Camera facing normal pass with feature preservation (bump and displacement).
– Worldspace position coordinates.
– Albedo pass; this is the unshaded texture with feature preservation (displacement).
– Visibility pass; this is the shadow pass with feature preservation (bump and displacement)
– Caustics pass (only necessary if you are using caustics).
Altus requires two sets of these passes that have been generated with different sampling seeds such that the noise varies between passes.

Altus is a post rendering filter. Altus takes in EXR images that contain passes generated via the renderer under different seeds. Altus does the filtering process using these passes and writes out the denoised image to the specified folder.

 

|—————————|        b0 set
|                                   |
|                                   |——- beauty pass (EXR)——————>|————————–|
|                                   |——- normal pass (EXR) —————–>|                                 |
|                                   |——- position pass (EXR)—————->|                                 |
|                                   |——- albedo pass (EXR)——————>|                                 |
|                                   |——- visibility pass (EXR)—————–>|                                 |
|                                   |——- caustics pass (EXR)—————–>|                                 |
|         Renderer        |                                                                   |           Altus            |—-> Denoised
|                                   |        b1 set (different noise)               |                                 |         output
|                                   |——- beauty pass (EXR)——————>|                                 |         (EXR)
|                                   |——- normal pass (EXR) —————–>|                                 |
|                                   |——- position pass (EXR)—————->|                                 |
|                                   |——- albedo pass (EXR) —————–>|                                 |
|                                   |——- visibility pass (EXR)—————->|                                 |
|                                   |——- caustics pass (EXR)—————->|————————–|
|—————————|

The user must use their chosen renderer to generate the two sets of EXR passes (see What are the specific inputs to Altus?) and input them to Altus. Altus’s output is a denoised EXR image.

 

 

We have seen render speeds improve anywhere from 200% to 1200% (2X to 12X).

Yes, Altus can run in both local mode and batch/headless mode.  Altus is not tied to run on a specific machine only, since it is an independent, post-processing program.  As long as the user figures out how to pass the arguments to the Altus executable, it can work with either modes, since it can run on a local machine or remote node.

Altus has a built in supervisor which distributes the computation over multiple processors in the case of render farms or cloud rendering. Altus has been tested with Muster and will support popular render management software such as Deadline and Tractor.

None from a user perspective at this time. If the user is using GPU, they will see a 3X improvement in filter performance, compared to CPU.

Yes.  Altus works for filtering animated sequences.

To filter an animation you should have to specify the animation flags -s ( or – – StartFrame), -e (or – – EndFrame), and -F (or – – Frame_Radius).

These specify the start and end frame padded to 4. The frame radius is the temporal adjustment. A value of 0 will consider only the current frame being filtered; a value of 1 will consider 1 neighbor frame on each side, i. e., current -1, current, current +1
The value can be increased beyond 1 but is not recommended as it will increase filter time exponentially as it will take into account more frames in the radius.

Please refer to the readme or help option for more information.

As long as the rendering system can output the required AOVs and can randomize the render noise between two separate renders of the same frame, Altus will work.

Yes, Altus handles depth of field and motion blur quite well.

Yes, Altus can be configured to filter single AOVs.

No.  Altus depends on user supplying both b0 and b1 images generated from random seed samples.  The variance input (between these images) is optional since Altus calculates the variance internally.

Altus support for multichannel exr will be added in a future release.  The header information for mutichannel exr support is not standardized and we are working with our partners to include this support in a future (1.3 or beyond) release.  Altus releases come monthly (1.0 in Nov 2015, 1.1 in Dec 2015, 1.2 in Jan 2015 and so on).

In practice, the integrated Altus product was not practical for users and did not present a practical solution needed by users. The python scripts are still available as skeleton scripts of how to approach integration but support and feedback for these products has ended. If you would like to use these, the version 1.00 scripts are available for download on our website.

Yes 4k image filtering is possible with Altus. However, there is a significant increase in the memory usage/requirement. Since all the images are uncompresed in memory, you will need at least 16GB of RAM available at the time of filtering for a single image assuming you are using every input. Currently this is possible on CPU and is not currently possible on a single GPU. It is theoretically possible on GPU using a high end SLI solution such as a Tesla cluster.

 

Seed Change

Still Image
The b0 and b1 passes must be rendered as two separate frames.

Animation
Render one set (animation sequence for b0 passes) with Sample Lock ON. Render the other set (animation sequence for b1 passes) with Sample Lock OFF.

Passes

  • Diffuse Material Color (for Altus’s albedo pass)
  • Object Normal (for Altus’s normal pass)
  • World Position (for Altus’s worldspace position pass)
  • Raw Shadow (is the inverse of shadow pass for Altus’s visibility pass (use Vray in Altus Standalone GUI))

See downloadable notes on Support -> Documentation -> F) Other Renderer User Guides for more information.