3.2.3.1

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

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