4.2.0 - docs.arnoldrenderer.com
Transcript of 4.2.0 - docs.arnoldrenderer.com
1. 2.
4.2.0.55
28 Oct 2020
Your browser does not support the HTML5 video element
What's New - Spotlight on Imagers in Arnold 6.1
MAXtoA 4.2.0 introduces and is a feature release bringing a brand new post-processing Arnold 6.1.0.0
framework (imagers), support for nested dielectrics, much improved progressive and adaptive sampling,
on-demand texture loading on GPU, and a variety of enhancements and fixes.
Installation
Download .Arnold for 3ds MaxFollow the .installation instructions
System Requirements
Autodesk 3ds Max 2019, 2020 or 2021.Windows 7 or later, with the Visual Studio 2019 redistributable.CPUs need to support the SSE4.1 instruction set.GPU rendering requires an NVIDIA GPU of the Turing, Volta, Pascal, or Maxwell architecture. We recommend using the drivers or higher. See for more 451.77 Getting Started with Arnold GPUinformation.Optix™ denoiser requires an NVidia GPU with and above. CUDA™ Compute Capability 5.0
EnhancementsImagers: We're introducing a brand new framework to apply post-processing effects such as color correction, vignetting, or tone mapping. A new type of post-processing nodes called operate on pixels before the output driver. Imagers can be chained. The initial set of imagers consists of:imagers
imager_exposure
imager_color_correct
imager_lens_effects
imager_white_balance
Autodesk Network Licensing in Arnold 6 requires new license files with an updated 2020 version
. Please follow the instructions on this page to generate your license file. More info about Arnold 6
licensing can be found here.
imager_tonemap
Imagers work both in batch and interactive contexts. While imager parameters can change interactively
during rendering, adding a new imager currently requires the render to be restarted, so it's a good idea to
add the ones you will need to adjust at the beginning of an interactive session. We are looking at removing
this limitation in a subsequent release. (core#8368, core#9716, core#9723, core#9724, core#9867,
core#9868, core#9869, core#9938).
Color Correct
Lens Effects (vignetting)
: Nested dielectrics Physically-correct reflection and refraction of rays in scenes with adjacent
dielectrics, such as liquids in glass vessels, has been implemented by resolving overlapping, i.e.
"nested", dielectrics via a priority system. This allows for more realistic renders of scenes such as
glass containers with liquid contents and bubbles, correctly accounting for the change in the index of
refraction as rays refract through the transparent media. The new dielectric_priority parameter on
the shader assigns a priority to the internal dielectric medium of the closed standard_surface
transparent object the shader is assigned to. These priorities specify that in an area of overlap of
two transparent objects, only the priority dielectric medium exists (see the schematic glass highest
of water below). The priority is simply a signed integer (default 0), which can be increased or
decreased as needed to define the dielectric medium in the overlap areas. If priorities are made
The effect can be disabled globally with equal, then media are effectively blended in the overlap.
options.dielectric_priorities ( in the tab of the render Nested Dielectrics Advanced
in case you need to revert to the legacy mode, which does correctly compute the settings) not
(core#6023)refractions.
Standard setup of a glass of water with an ice cube, using the priority system. Rollover image to view the result with the global
dielectric_priority: disabled (not physically correct).
Nested dielectrics examples
Improved progressive and adaptive sampling: Better sampling now results in much faster noise
convergence, especially with adaptive sampling enabled. (core#9941)
Left: Arnold 6.0.4.1 - Right: Arnold 6.1.0.0 - Both images rendered using the same settings: a = 0.015 (default)daptive_threshold
Improved performance on Windows: Arnold now runs on average 7-8% faster overall on Windows. (core#5481, core#9876, core#9975)Improved IPR interactivity: IPR interactivity on both CPU and GPU, especially when moving the camera in a scene with many nodes (thousands to millions of meshes, ginstances, lights, shaders, etc.), is improved. For instance, a scene with 24,433 ginstances and simple shading went from 8 fps to 14 fps on the CPU and about 3 fps to 20 fps on the GPU. (core#8662, core#9918, core#10027, core#10029)Improved performance in Toon on Windows: The used for toon rendering should contour_filternow be faster and scale better especially on Windows, with up to 3x speedups on AMD Threadripper 2 and up to 4x speedups on AMD Threadripper 3 CPUs. (core#7844)Toon AOV prefix : The shader has a new optional that will be prepended to the toon aov_prefix
toon AOVs' names. For instance, if is , the toon diffuse AOV will be written aov_prefix "toon_"
out to . This can be used when you need to access both the toon AOVs and the "toon_diffuse"
core's LPE AOVs. (core#9823)Improved soft creases in adaptive subdivision: Normals for soft creases follow the geometry closer for low iterations. (core#9971)
All cube edges have sharpness 3 creases. The diagram shows the new (top) and old (bottom) normals for 1, 2, 3, and 4 iterations.
AA seed now included in EXR metadata: The AA seed of a render is now also included in EXR metadata. (core#9895)Improved support for MaterialX: Material nodes are now supported, shader nodes and node graph outputs can be connected to material node inputs. Node definitions implemented as node graphs can contain both Arnold native shaders and MaterialX standard library shaders. This is useful to build reusable and portable material groups and definitions, for example by using standard_surface with MaterialX patterns. The environment variable
can now point to directories and load multiple node ARNOLD_MATERIALX_NODE_DEFINITIONS
definitions ( ) ( core#9618, core#9926)see here core#9204,
SSS type for Physical Material: You can now choose which Arnold Standard Surface SSS type will be used when rendering Physical Material in the render options. (maxtoa#722)Import/Export MAXscript commands: Import and export materials MAXscript commands are now available. (maxtoa#814)Import multiple materials: Arnold Menu->Import/Export->Import Materials lets you ctrl-click to pick more than one .ass/.mtlx to import several materials at once. (maxtoa#829)New parameter for mix_shader: The add_transparency parameter is now exposed on the mix_shader shader. (maxtoa#854)Physical camera exposure in Arnold Render View and ASS files: The physical camera exposure controls now apply when rendering in the Arnold Render View and in exported .ass files. (maxtoa#859)Support for 3ds Max Bitmap filters: The filter (Pyramidal, Summed Area, None) of Bitmaps is now translated correctly to the Arnold image shader. (maxtoa#871)
GPU Enhancements
Improved on-demand loading of textures: The GPU renderer can now partially load textures which results in important GPU memory savings when using tiled and mipmapped textures, such as from .tx textures. In a typical scene, the amount of memory needed for textures could be reduced to be up to 5x smaller. A recent driver is needed for this feature (core#9984).
Initial support for light linking: Initial support has been added for light linking. Currently, there is a limitation that light linking is not supported on volumes. (core#9890)Support light AOV groups: Adding light AOV groups in LPEs is now supported on the GPU. (core#9882)Improved OSL JIT compilation performance: OSL JIT compilation performance has been improved, meaning faster time to first pixel and improved interactivity when using OSL shaders. The improvement averaged 6.3x faster during testing. (core#10004)Improved support for min pixel width and thin-walled sampling: We have improved compatibility with the CPU renderer for min pixel width on the GPU and thin-walled sampling on zero roughness surfaces. (core#9291)Partial GPU IPR output: Like on the CPU, when the FPS goes below a certain threshold (5fps by default), instead of not displaying anything, the GPU will at least display the pixels that have finished rendering. Since GPU currently renders pixels in a top to bottom ordering, this will result in the top part of the image being updated while the lower part becomes stale. (core#10027)
OptiX cache location change: The Optix cache directory used to be of the form: arnold-
. Now it is simply . This means the <ARNOLD_VERSION>_driver-<DRIVER_VERSION> arnold
same cache will be used across driver and Arnold versions. Upgrading to a new version will still
likely cause a lengthy JIT/cache pre-population, but it will reduce disk usage as old versions will not
stay around-consuming disk space. (core#9239).
Incompatible Changes
Correct refractions with nested dielectrics: Refraction through adjacent transparent media now correct thanks to resulting in a look change. If you need to looks more physically nested dielectrics
revert to the legacy unphysical behavior for compatibility reasons, you can disable nested dielectrics globally by setting to False.options.dielectric_priorities
mix_shader add for transparency: Previously, the mode of the also added the add mix_shader
transparency closures, which means that effects such as min pixel width would be double-counted, leading to objects disappearing. Now, we will add only non-transparency closures, while we pass through the max of the transparency closures. The old behavior can still be obtained by setting
to true (core#9952).add_transparency
Skipped node updates: In order to improve IPR interactivity, we skip the per-frame node update if
we believe that node has not changed. If our internal heuristics for detecting node changes is wrong
and was supposed to be called, you can set the metadata on your node_update force_update
node:
node_parameters{ AiMetaDataSetBool(nentry, nullptr, "force_update", true); // depends on camera node // ...}
so that Arnold will always run node_update on every render pass. At the moment, this should only
be needed for nodes that access in their . If you do not have options.camera node_update
access to your shader's source code, you can globally disable this optimization by setting the
to false (core#8662).options.enable_fast_ipr
Bug Fixes
maxtoa#735 ARV: crash when lights are instanced with missing .ies filemaxtoa#749 ActiveShade refreshes after saving the scenemaxtoa#755 ARV: crash with tyFlow and proceduralsmaxtoa#779 ARV/AS: crash when using Undo/Redo on node creation/selection/deletionmaxtoa#801 ARV: "Start IPR" button has wrong initial tooltipmaxtoa#815 ARV/AS: tyFlow instances do not inherit the materialmaxtoa#819 Arnold menus duplicated in Customize User Interface menu listmaxtoa#820 Crash exporting physical material with displacement to .ass filemaxtoa#826 ARV: Optix Denoiser ignored for both prod and IPRmaxtoa#842 USD viewport display crashes when geometry has polygons with nb of sides > 32maxtoa#855 Incorrect ASinVP with Camera and Safe Frame active at the sides of the viewmaxtoa#870 ARV/AS ghosting when copying an objectmaxtoa#880 ARV-IPR crashes with HDRI OSL in Imagers slot
maxtoa#887 ARV: Rendering with safe frames does not give correct resultsmaxtoa#890 Crash using Arnold Denoiser and ARVmaxtoa#891 Arnold cannot render Tyflow cloth particles
core#5518 Handle interruptions properly during procedural expansioncore#9949 mesh_light with constant black texture causes degenerate light tree casecore#9971 Subdivs: soft creases normals different in adaptive and regularcore#9978 Viewport API doesn't apply the correct matrix for nested proceduralscore#10031 Only shader node connections should use node output typecore#9361 [GPU] OptiX assert when updating texturescore#10024 [GPU] Incorrect texture selection or error when invalidating the texture cache with GPU sparse texturescore#10026 [GPU] Rare crash in OptiX denoiser
core#10040 [GPU] Always report minor version field of Nvidia driver as two digits
core#10048 [GPU] Wrong progress reporting using adaptiveusd#513 Viewport representation in points mode doesn't have the correct matrixusd#543 Visibility is not checked on the current frameusd#556 motion_start and motion_end is only set if the matrix of the prim is animated
#565usd Animated transforms not translated properly if set on parent XFormsusd#569 Render delegate not picking up OSL shader parameters
#570usd USD procedural is not picking up OSL shader parametersusd#574 Incorrect display of curve widths in Solaris when changing curve basisusd#577 Point light should have zero radiususd#580 The Render Delegate's depth range is incorrect if USD is at least version 20.02
https://docs.arnoldrenderer.com/display/A5AF3DSUG/4.2.0.55