Override material for Arnold

Last Updated on 20/10/2023

Arnold override material title

In the settings of the Arnold renderer in 3ds Max there Override material parameter can be used in Diagnostic render settings. But if you need more advanced technique, there tutorial how setup Override material trough Arnold’s operators.
The essence of the override material feature is to replace the existing materials on the objects with single material during the render, and after the end of the rendering, return them on objects. Usually this is useful to check the lighting settings, uv maps, etc.
In order to setup override material, we need two shaders from the standard package of Arnold MAXtoA. Standard Surface, which will act as an override of the material (can be any other shader) and Set Parameter (operator) which will determine which objects need our override material during render.

  1. Arnold override material
    Add the material Standard Surface to the material editor, setup it at your discretion and change the name to “Override_mtl”
  2. In the render settings, in the AOVs tab, assign our Override_mtl to the slot AOVs -> Shaders -> Materials . This needs to be done in order to initialize the shader during rendering.
  3. Add the “Set Parameter” operator in Arnold’s Operator Graph editor, and change the name to “Override operator”.
  4. In the Selection parameter, set the value to: /*.(@node == 'polymesh' or @node == 'ginstance').
    (This value stands for – take into account all the nodes in which the polymesh class (these are geometric objects) and the nodes whose class is ginstance (these are geometric objects in the form of an instance).
    If we wrote / *, the shader would be replaced in Environment. Which would lead to the fact that the the scene would have lost illumination if the in Environment was used an HDRi map.
  5. In the Assignment Expressions parameter, set the value: shader = "/Override_mtl" and click the Add Expression button to add this value to the shader settings.
    This value stands for – change the shader for nodes to the shader with the name Override_mtl for all nodes that we defined in the previous parameter.

    Arnold override operator 3dsmax 2019
  6. In the Operator Graph editor right click on “Override operator” node and choose Set as Target Operator to activate it for renderer.

Result:

As a result, during rendering all geometric objects and their instances will be visualized with the material that we set up in the first paragraph of this mini-tutorial.

A library with already customized shaders and predefined operators can be downloaded from the download section below. Operators from .ass files can be imported to Arnold’s Operator Graph using Import Operator menu.

Download

Comments ( 7 )

  • Hey there!

    Thank you so much for uploading this! I follow all the steps as described, however once I try to render I always get something like a blank image, while the AOV’s are not even saved properly to file.

    Do you have any suggestions? Could you double check the post in order to confirm that everything is right with the expressions and everything?

    Cheers, Adam.

  • Thanks for the post. I’m wondering if you any clue about how to change the filter type per AOV in arnold with 3dsmax 2018-19. It’s something easy in Maya but can’t find the way with max.
    I’m dealing with toon shaders that need “Contour” filter in order to render the art line, but for some AOVs I need the default “Gaussian” filter.
    Thanks again

  • Can’t fine override operators in 3ds max 2019 and I don’t finde whyit doesn’t exist knowing that I use the latest version 4.0317 !! ?? :/

    • You can use much simpler solution for override (1) OR if you still need operators now it’s in Arnold menu (2)

Leave a Reply