Share

7.3.4.0 - Arnold User Guide

29 August 2024

Arnold 7.3.4.0 is a feature release bringing minor look-breaking OpenPBR Surface changes, optimizations, and bug fixes.

Enhancements

  • OpenPBR improvements
    • View-dependent coat absorption: The coat lobe now more accurately models the absorption tinting at grazing angles, producing a slightly more realistic look. (ARNOLD-15377)
  • SSS color matching: The SSS model has been tuned to ensure that the color of dense SSS more closely matches the supplied subsurface_color, as required by the OpenPBR specification. (ARNOLD-15328) The following images compare diffuse base color with the subsurface colors of Standard Surface and OpenPBR Surface:

    • top row: diffuse with a given base_color
    • middle row: Standard Surface (dense) SSS, with same color assigned to subsurface_color
    • bottom row: OpenPBR (dense) SSS, with same color assigned to subsurface_color
  • Scaling of emission luminance from nits to Arnold units: nits_per_unit was added to the options node, and OpenPBR Surface's emission_luminance (in nits) is internally scaled down by this nits_per_unit value (defaulting to 1000) to bring it into Arnold units. This ensures that the default soft-maximum of emission_luminance of 1000 nits corresponds to the former behavior of Standard Surface at emission 1. (ARNOLD-15364)
  • Faster startup times on GPU: We have made several optimizations to improve startup and scene update time on GPU. These improvements will be most noticeable on scenes with many objects. Startup times on Windows are also now on par with startup times on Linux. On a scene with 1 million instances, we see the following improvements when compared to the previous release. (ARNOLD-15271, ARNOLD-15279, ARNOLD-15310)

    7.3.3.1 7.3.4.0 Improvement
    GPU update time (Windows) 204s 17s 12X
    GPU update time (Linux) 37s 18s 2X
  • Faster texture opacity lookups in OSL shaders: OSL shaders used in opacity inputs (for example OpenPBR Surface's geometry opacity) now read opacity mask textures faster and with smaller memory footprint. (ARNOLD-15340)

  • Improved node and parameter introspection with kick

    • kick -info <node> now groups node parameters by their UI Group metadata, or by whether the parameters are Input or Output. (ARNOLD-14198)

      For example, here's the first few UI groups of openpbr_surface:

      $ kick -info openpbr_surface
      node:             openpbr_surface
      type:             shader
      implicit output:  CLOSURE
      parameters:       65
      multioutputs:     0
      filename:         <built-in>
      version:          7.3.4.0
      
      Type          Name                      Unlinkable  Default        Bounds
      ------------  ------------------------------------  -------------  ---------
      Base
       FLOAT        base_weight                           1              [0, 1]
       RGB          base_color                            0.8, 0.8, 0.8
       FLOAT        base_diffuse_roughness                0              [0, 1]
       FLOAT        base_metalness                        0              [0, 1]
      Specular
       FLOAT        specular_weight                       1              [0, +inf]
       RGB          specular_color                        1, 1, 1
       FLOAT        specular_roughness                    0.3            [0, 1]
       FLOAT        specular_ior                          1.5
       FLOAT        specular_roughness_anisotropy         0              [0, 1]
      Transmission
       FLOAT        transmission_weight                   0              [0, 1]
       RGB          transmission_color                    1, 1, 1
       FLOAT        transmission_depth                    0              [0, +inf]
       RGB          transmission_scatter                  0, 0, 0
       FLOAT        transmission_scatter_anisotropy       0              [-1, 1]
       FLOAT        transmission_dispersion_abbe_number   20             [0, +inf]
       FLOAT        transmission_dispersion_scale         0              [0, 1]
       BOOL         transmission_transmit_aovs         *  false
       INT          dielectric_priority                *  0    
    • kick -info <node>.parameter now includes all available metadata for the parameter, including linkability, bounds, help, as well as the type, name, and default value. (ARNOLD-15306)

      $ kick -info openpbr_surface.fuzz_weight
      node: openpbr_surface
      param: fuzz_weight
      type: FLOAT
      default: 0
      metadata:
       help: The presence weight of a fuzz layer that can be used to approximate microfibers, for fabrics such as velvet and satin as well as dust grains.
       max: 1
       min: 0
  • Handle update for OSL shader changes: Information about shaders linked to an OSL shader is stored when using interactive render mode, so that any change in those shaders will cause the OSL shader to be automatically updated. (ARNOLD-14983)

  • Duplicate node name warnings: Warnings are emitted when adding a node with a name that already exists or renaming an existing node to an empty string. (ARNOLD-12596)

Bug Fixes

  • ARNOLD-14735 - OIDN denoiser bucket artifacts during negative-AA progressive passes
  • ARNOLD-15380 - [GPU] small memory leak when using AOV shaders
  • ARNOLD-15384 - [GPU] memory leak each time an OSL shader is modified
  • ARNOLD-15385 - Crash on standard_volume when modifying material interactively
  • ARNOLD-15392 - [GPU] small memory leak when using OSL shaders
  • usd#2075 - Do not set options attributes during a Hydra render

System Requirements

  • Windows 10 or later, with the Visual Studio 2019 redistributable.
  • Linux with at least glibc 2.17 and libstdc++ 4.8.5 (gcc 4.8.5). This is equivalent to RHEL/CentOS 7.
  • macOS 10.13 or later.
  • x86-64 CPUs need to support the SSE4.1 instruction set. Apple Mac models with M series chips are natively supported.
  • GPU rendering and OptiX denoising work on Windows and Linux only, and require an NVIDIA GPU with the Maxwell architecture or later.
  • Intel OIDN GPU support is limited to:
    • MacOS
      • Apple native CPUs (M1 and newer)
    • Windows
      • Intel Xe dedicated and integrated GPUs
      • NVIDIA GPUs using Turing or newer architectures
      • AMD GPUs with RDNA2 (Navi 21 only) and RDNA3 (Navi 3x) architectures

Was this information helpful?