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)`