You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

 

MAXtoA 4.2.0 introduces Arnold 6.1.0.0 and is a feature release bringing a brand new post-processing 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

  1. Download Arnold for 3ds Max.
  2. Follow the installation instructions.

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. 

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 451.77 drivers or higher. See Getting Started with Arnold GPU for more information.
  • Optix™ denoiser requires an NVidia GPU with CUDA™ Compute Capability 5.0 and above.

Enhancements

  • maxtoa#645 ARV: Handle image saving from ARV > Save Image
  • maxtoa#722 Enable Randomwalk2 SSS choice for the Physical material
  • maxtoa#723 Imagers implementation: imagers are exposed as shaders in the material editor browser, and should be connected in the Imagers slot, at the bottom of the main rendering setting tab. Imagers can be chained in the material editor, through their input parameter.
  • maxtoa#814 Expose Material Import and Export to MAXscript
  • maxtoa#829 Add ability to import more than 1 material at a time.
  • maxtoa#838 Expose aov_prefix for toon shader
  • maxtoa#840 Increase the texture cache size default to 4096 MB
  • maxtoa#841 Extend the verbosity of the Info verbose level
  • maxtoa#848 Switch to using the new Arnold Rendering API
  • maxtoa#849 Expose the parameters for nested dielectrics
  • maxtoa#854 New mix_shader's add_transparency parameter
  • maxtoa#856 Not all the rendering options rollouts should be expanded by default
  • maxtoa#859 Physical camera exposure control for ARV and to-ass mode: the physical camera exposure controls apply also when rendering in ARV, and when kicking exported .ass files.
  • maxtoa#871 Map the Max bitmap's filtering to the image's filter
  • maxtoa#889 Visual C++ redistributables for Visual Studio 2019 (Max 2019 and 2020 only)

Arnold Enhancements

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 standard_surface shader assigns a priority to the internal dielectric medium of the closed transparent object the shader is assigned to. These priorities specify that in an area of overlap of two transparent objects, only the highest priority dielectric medium exists (see the schematic glass 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 equal, then media are effectively blended in the overlap. The effect can be disabled globally with options.dielectric_priorities (Nested Dielectrics in the Advanced tab of the render settings) in case you need to revert to the legacy mode, which does not correctly compute the refractions. (core#6023)

    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)

    Arnold 6.0.4.1

    Left: Arnold 6.0.4.1 - Right: Arnold 6.1.0.0 - Both images rendered using the same settings: adaptive_threshold = 0.015 (default)

  • 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 contour_filter used for toon rendering should now 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 toon shader has a new optional aov_prefix that will be prepended to the toon AOVs' names. For instance, if aov_prefix is "toon_", the toon diffuse AOV will be written out to "toon_diffuse". This can be used when you need to access both the toon AOVs and the 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 ARNOLD_MATERIALX_NODE_DEFINITIONS can now point to directories and load multiple node definitions (see here) (core#9204, core#9618, core#9926)

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-<ARNOLD_VERSION>_driver-<DRIVER_VERSION>. Now it is simply arnold. This means the 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 looks more physically correct thanks to nested dielectrics resulting in a look change. If you need to revert to the legacy unphysical behavior for compatibility reasons, you can disable nested dielectrics globally by setting options.dielectric_priorities to False.
  • mix_shader add for transparency: Previously, the add mode of the mix_shader also added the 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 add_transparency to true (core#9952).
  • 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 node_update was supposed to be called, you can set the force_update metadata on your 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 options.camera in their node_update. If you do not have access to your shader's source code, you can globally disable this optimization by setting the options.enable_fast_ipr to false (core#8662).

Bug Fixes

  • maxtoa#735 ARV: crash when lights are instanced with missing .ies file
  • maxtoa#749 ActiveShade refreshes after saving the scene
  • maxtoa#755 ARV: crash with tyFlow and procedurals
  • maxtoa#779 ARV/AS: crash when using Undo/Redo on node creation/selection/deletion
  • maxtoa#801 ARV: "Start IPR" button has wrong initial tooltip
  • maxtoa#815 ARV/AS: tyFlow instances do not inherit the material
  • maxtoa#819 Arnold menus duplicated in Customize User Interface menu list
  • maxtoa#820 Crash exporting physical material with displacement to .ass file
  • maxtoa#826 ARV: Optix Denoiser ignored for both prod and IPR
  • maxtoa#842 USD viewport display - crash when geometry has polygons with nb of sides > 32
  • maxtoa#855 Incorrect ASinVP with Camera and Safe Frame active at the sides of the view
  • maxtoa#870 ARV/AS ghosting when copying an object
  • maxtoa#880 ARV-IPR crashes with HDRI OSL in Imagers slot
  • maxtoa#881 ARV/AS do not refresh with animated objects
  • maxtoa#884 ARV: Imagers and Region are not working correctly
  • maxtoa#887 ARV: Rendering with safe frames does not give correct results
  • maxtoa#890 Crash using Arnold Denoiser and ARVmaxtoa#891 Arnold cannot render Tyflow cloth particles


  • No labels