Share

System - Arnold for Houdini

The System tab gives access to general Arnold system-wide controls.

You must set the OCIO environment variable to the config.ocio color profile path before starting Houdini. Houdini will then pick up the color spaces in the config and make them available as options for rendering color space, texture input color space and driver output color space.

MPlay Session

Specify an MPlay Session label (useful with multiple workspaces).

Flush SOP Cache

Flush SOP cache after each frame to reclaim memory.

Pick Material in Render View

You can use Ctrl+LMB in the Render View to pop up a panel with the material that shaded the pixel that was clicked.

Inherit Properties

Enable properties inheritance for geometry at the expense of translation time.

Create Intermediate Directories

Option to create intermediate directories for output images and ASS files.

Parallel Node Initialization

Initialization and update of scene nodes can be multithreaded to lower the scene preparation time in complex scenes with many objects, shaders or lights.

Procedural Cache

Cache procedural nodes pointing to the same .ass file on disk by automatically instancing them.

Abort On Error

Aborts rendering as soon as an error is detected. This is the recommended setting. In general, you should not ignore important error messages or you will risk crashes, rendering artifacts and undefined behaviour.

Abort on License Fail

Aborts rendering when the render starts and the license is not detected. If not enabled and no license is found, images are watermarked.

Render with Watermarks (Skip License Check)

Does not search for a license and thus renders with a watermark.

Callbacks

Post Translation

Post Translation (Python only) callback executed after HtoA translates the Houdini scene to Arnold. In this callback, you can directly edit the Arnold universe before the render begins. A constant variable UNIVERSE_ID is set that you can use to get the current render universe and change nodes after translation.

For example a user could set the translation script like so:

Post Translation Script

import sys,os

dirpath=os.path.dirname(hou.hipFile.path())
sys.path.append(dirpath)

import callback
callback.callback(UNIVERSE_ID)

Where the callback script called callback.py in the same folder as the hip file contains this code to find the lambert1 node and make it green:

from  arnold import *

def callback(universeId):   
   universe = AiUniverseGetFromId(universeId)
   node_it = AiUniverseGetNodeIterator(universe, AI_NODE_SHADER)
   while not AiNodeIteratorFinished(node_it):
      node = AiNodeIteratorGetNext(node_it)
      nodename = AiNodeGetName(node)
      if nodename == "/mat/arnold_materialbuilder1/lambert1":
         AiNodeSetRGB(node, "Kd_color", 0.2,0.8,0.2)
   AiNodeIteratorDestroy(node_it)`

Was this information helpful?