Override material for Arnold

Last Updated:

Arnold override material title

 

In the settings of the Arnold rendrerer in 3ds max there is no Override material parameter as we have in the Vray parameters, but there is a functional allowing it to be recreated.
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 usefull 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 2.x. 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.

Update: I updated this post because in 3ds max 2019 was changed operators functional. So, below instruction how assign Override material in 3ds max 2018 and for 2019 separately.

 

3ds Max 2019

 

  1. Add the material Standard Surface to the material editor, setup it at your discretion and change the name to “Override_mtl”
  2. Arnold override material
    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 + button to the right of the parameter 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.
  6. Arnold override operator 3dsmax 2019
    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.

 

3ds Max 2018

 

  1. Add the material Standard Surface to the material editor, setup it at your discretion and change the name to “Override_mtl”
  2. Arnold override material
    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 shader Operators -> Set Parameter , 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 +   button to the right of the parameter 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.
  6. Arnold override operator
    In the render settings, in the Arnold Renderer  tab in the slot Operators -> Root Operator assign our “Override operator” shader.

    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 ( 2 )

  • 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.

Leave a Reply