HtoA 6.3.1.0

27 March 2024

HtoA 6.3.1.0 is minor feature release using Arnold 7.3.1.0.

Important: This Arnold version breaks binary compatibility. Shaders, procedurals, and other plugins compiled against older versions of Arnold are not compatible with this version of Arnold and will need to be updated and recompiled.

Installation

Known Issues

There is a known issue with the htoa.json package (HTOA-2579) for gcc11 Linux - this will be fixed in a future HtoA update, but to fix the file yourself, change

{"houdini_os=='linux' and and houdini_platform_build=='gcc.11.2'": "_gcc11"}

to

{"houdini_os=='linux' and houdini_platform_build=='gcc.11.2'": "_gcc11"}

Enhancements

USD Enhancements

API changes

The API is built upon a new AI_NODE_IMAGER node type and is implemented via two main API.

#define imager_evaluate
static void ImagerEvaluate(AtRenderSession* render_session, AtNode* node, struct AtOutputIterator* iterator, int bucket_xo, int bucket_yo, int bucket_size_x, int bucket_size_y, uint16_t tid)
#define imager_prepare
static void ImagerPrepare(AtRenderSession* render_session, AtNode* node, const AtNode* driver, struct AtOutputIterator* iterator, AtImagerSchedule& schedule);

Additionally, there are a couple of helper APIs for the imager_prepare method. These API let you request additional inputs to be rendered for imager evaluation, and to add additional output layers that the user may want to write to the driver.

AI_API bool AiImagerAddInput(AtRenderSession* render_session, const AtNode* imager, const AtNode* driver, int aov_type, AtString aov_name, AtNode* filter);
AI_API bool AiImagerAddOutput(AtRenderSession* render_session, const AtNode* imager, const AtNode* driver, int output_type, AtString output_name);

Incompatible Changes

Bug Fixes

System Requirements