Share

3.2.3.1 - Arnold User Guide

Milestone 3.2.3

Enhancements

  • EXR layer names changed to R,G,B: Instead of prepending the AOV name to the layer name, we now use R, G, B, A for the layer names. This can be controlled with the preserve_layer_name option in the driver_exr node. (trac#1806)
  • Multi-path support in procedural_searchpath and AiLoadPlugins(): You can now specify multiple search paths separated by the ":" character in Linux/OSX or the ";" characer in Windows. For example: "some/ path:another/path:yet/another/path ". (trac#1807, trac#1817)
  • Reduced noise in glossy inter-reflections in standard shader: We now clamp the Phong exponent to a maximum value of 50 for secondary rays, greatly reducing spike noise in sharp glossy reflections seen through rough glossy reflections. (trac#1818)
  • Support for polygons with more than 255 points: The maximum number of points per polygon in the polymesh node has been increased from 255 to 65535. (trac#22)

API additions

  • AtParamIterator: This API lets you iterate over the built-in parameters of a node. This was already possible by using the AiNodeEntryGetNumParams() and AiNodeEntryGetParameter() functions, which are now deprecated. The example below illustrates the recommended usage. (trac#1810)

     AtParamIterator* iter = AiNodeEntryGetParamIterator(node_entry);
    while (!AiParamIteratorFinished(iter))
    {
       const AtParamEntry* pentry = AiParamIteratorGetNext(iter);
       printf("Built-in parameter : %s\\n", AiParamGetName(pentry));
    }
    AiParamIteratorDestroy(iter);
  • AtUserParamIterator: This API lets you iterate over the user-defined parameters of a node. Previously there was no way to do this. See the example below. (trac#1810)

     AtUserParamIterator* iter = AiNodeGetUserParamIterator(node);
    while (!AiUserParamIteratorFinished(iter))
    {
       const AtUserParamEntry* upentry = AiUserParamIteratorGetNext(iter);
       printf("User parameter : %s\\n", AiUserParamGetName(upentry));
    }
    AiUserParamIteratorDestroy(iter);

Bug fixes

#1582 untiled texture maps are redundantly loaded once per thread
#1820 Texture access to the wrong texture (hash collision issues)
#1827 Avoid loading sitoa plugin from AiLoadPlugins
#1826 Upgrade OpenImageIO to 0.8.1
#1825 quad area lights with inverted sidedness are broken
#1824 kick doesn't use gamma correction on display driver
#1823 kick command line options should not depend on their order
#1822 quote all string parameters when writing to .ass
#1821 memory leak when removing polymesh invisible faces with face_visibility

Was this information helpful?