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 |