Deep OpenEXR

 

Deep EXR files store a variable-length list of samples stored with multiple values at different depths for each pixel.

Volumes are visible in deep renders. However, older atmosphere shaders and volumetric mattes are not supported yet.

 

The following example demonstrates working with Deep EXR files.

  • First, change the output format to deepEXR. Render the scene and open it in Nuke using a DeepRead node.

  • In Nuke, create a DeepRecolor node. Connect the depth input of the DeepRecolor node to the deep EXR. Next, connect the color input of the DeepRecolor node with the 2D EXR render.

  • Connect a DeepSample node to the DeepRead node. The DeepSample node will give you a list of samples for each pixel (see images below).

  • Create a DeepToPoints node and connect deep to the Deep Sample node.

 

  • Select the Deep Sample node. Drag the 'pos' dot in the 2d viewer where you want to view the samples. You should see that there are two samples in the Deep Sample node.

Tiled

Allows you to save the file in scanline or tiled mode. Scanline may work better with composition packages like Nuke or Fusion. If tiled is off the whole image buffer size will be allocated all at once for all the AOVs present in the scene. If enabled, Arnold will save the buckets as they are rendered, which reduces memory taken up by image buffers. 

Subpixel Merge

Subpixel merge takes into account screen space resolution to further compress the file without losing too much accuracy, keeping more deep samples where they are needed. Note that adding large 'Tolerance Values' will override the default behavior of the 'Subpixel Merge'.

Subpixel merge's effect is obvious when we view a pixel at the edge of the sphere compared to a pixel that is in the center. The pixel at the edge of the sphere will get more deep samples to preserve the detail in the antialiased edge:

One sample is visible in the center of the red sphere

Three samples are visible on the edge of the red sphere

If Subpixel Merge is disabled, the total number of samples will increase dramatically. 

 

If you need to disable all sample merging, you can do so by setting all tolerances to 0 and turning off Subpixel Merge. 

Beauty Tolerance

If two samples have a layer value bigger than this threshold, they will not be merged. You can also specify one tolerance per AOV layer, in the same order, they were declared in options.outputs. If you reduce the 'Beauty Tolerance' value to zero, you will get many samples when rendering the scene and viewing it in Nuke. However, if you raise the 'Beauty Tolerance' value, you are effectively creating a threshold by which the samples are merged. Any samples that fall out of this threshold difference value will be merged, and only the samples that have a larger value than the tolerance value will remain.

 

Alpha Tolerance

If the opacity difference along the depth is smaller than this threshold, samples could be merged. Any samples that fall out of this threshold difference value will be merged, and only the samples that have a larger value than the tolerance value will remain.

Example

If we reduce the tolerance values to zero we will get many samples when rendering the scene and viewing it in Nuke (see below).

However, if we raise the tolerance values (see below), we are effectively creating a threshold by which the samples are merged.

Depth Tolerance

If the depth difference for a given sample is bigger than this, do not merge those samples. If you reduce the 'Depth Tolerance' value to zero, you will get many samples when rendering the scene and viewing it in Nuke. However, if you raise the 'Depth Tolerance' value, you are effectively creating a threshold by which the samples are merged. Any samples that fall out of this threshold difference value will be merged, and only the samples that have a larger value than the tolerance value will remain.

Half Precision

Beauty

Set half-precision for all layers, or for each one individually. 

Alpha

Sets alpha to 16bit half-precision. Beneficial in reducing file size.

Depth

Set depth to 16bit half-precision. Depth is normally saved as full 32bit.

Use RGB Opacity

By default a single channel alpha is used, setting this to true uses RGB opacity, saved as RA, GA, BA channels. Nuke only expects an alpha channel, so this might require further work in comp.

Filter Beauty

If set to false disables any filtering operation on this layer's raw data (useful for normals or ID layers). By default, filtering is done for RGB channels and skipped for VECTOR channels, but those defaults can be overridden with this setting.

Layer Name

Output layer names can be customized by adding an optional custom layer name after the driver name. Output layers in files that support layers (such as regular or deep EXR files) can be individually set to type 'HALF' by adding an optional 'HALF' modifier to the corresponding output string. For instance: "my_aov RGB filter driver HALF".

 

 

 

  • No labels