Milestone 3.3.2
Enhancements
- Ability to abort during subdivision: There is now support for aborting during the subdivision process. This can be handy when working with big meshes and high subdiv settings which can take quite a while to subdivide and tessellate. (trac#1919)
- skydome_light: The new skydome_light uses importance sampling techniques for sampling an environment map. This can greatly reduce the amount of noise in Image Based Lighting (IBL) scenarios. (trac#1924, trac#1953) The new light has two unique control parameters.
- format: This parameter is identical to the format parameter of the sky shader. Valid values are angular, mirrored_ball, latlong and cubic. The default value is angular.
- resolution: This parameter gives the user control over the resolution of the light's importance sampling tables. Increasing this setting for environment maps with relatively small and bright areas can help to reduce noise at the cost of some precomputation time and memory usage. However this value should not be bigger than the original resolution of the HDRI map.
- MIS-support in standard shader: The standard shader will now use Multiple Importance Sampling (MIS) when calculating its specular component for those lights who have their mis parameter activated. This can drastically reduce the noise of sampling large area lights from sharp specular highlights. MIS is also now active by default on all lights. (trac#1938, trac#1542, trac#1953)
- Rendering after writing .ass files: When the preserve_scene_data option is enabled, we can continue rendering after writing the scene to .ass, as no data is destroyed in the scene. Note that this option is intended for interactive/debugging sessions and should not be used when rendering final frames on the farm, at the risk of increased memory usage. (trac#1927)
- Collapse arrays with 1 element on .ass: When writing an .ass file, arrays with only one element will be collapsed to their shortcut syntax (trac#1909). So, instead of:
shader 1 1 NODE myshader
the output in the .ass file will be:shader myshader
- Upgraded OIIO to 0.8.7: This release of OpenImageIO includes many improvements as well as fixes for a crash when TIFF contains certain XML strings, a fix for a deadlock related to the use of autotile and a fix for a massive slowdown when using automip with low cache sizes. It also adds support for 16-bit SGI images. (trac#1961)
- Camera distortion with persp_camera.uv_remap: Added support for distorting the camera rays based on a UV image linked to the new uv_remap parameter in the persp_camera. Camera rays will be warped according to the values in the (r, g) components. This has been tested in production with a program called Hype that generates such UV maps. (trac#1876)
API additions
- AiLoadPlugin(): This new function allows loading a specific plugin library, instead of a whole directory. (trac#1918)
- Python bindings for metadata iterator: Added missing Python bindings for the metadata iterator API introduced in Arnold 3.3.1.0. (trac#1932)
- Explicit symbol export: We are changing the way symbols are exported in Linux. The AI_DLL_EXPORT macro will now explicitly make the symbol visible. This will not change anything yet, as we are globally exporting all symbols anyway. But, once we change the compiler settings to hide all symbols by default, only symbols with this macro will be exported. This change only affects the entry points for plugins (NodeLoader) and procedural nodes (ProcLoader) (trac#1962)
Incompatible changes
None.
Bug fixes
#1379 | kick crashes with progressive rendering and -turn <n> |
#1905 | OIIO deadlocks |
#1977 | ERROR | Inside box.c -- could not find box normal |
#1978 | crash in AI_RENDER_MODE_CAMERA mode using uninitialized shaderglobals struct |
#1976 | valgrind warnings in patch subdivision |
#1975 | standard shader produces black/white dots in glossy reflections |
#1974 | motion blur artifacts in low primitive-count scenes |
#1973 | Crash on AiAOVSetRGB |
#1972 | darkening when MIS samples are increased |
#1967 | corrupt rays from AiCookTorranceIntegrate |
#1971 | Memory leak when tracing rays in "free" render mode |
#1934 | support for carriage returns in quoted string parameters |
#1959 | Crash when reading an AOV without first writing to it |
#1958 | massive slowdown with automip and files bigger than the cache size |
#1957 | Sidedness is not preserved for instances |
#1954 | receive_shadows should not disable self_shadows |
#1953 | MIS support in skydome_light |
#1946 | Incorrect size for oriented disk used when sampling spherical lights |
#1945 | Object matrix data is being destroyed after render |
#1941 | crash with 16-bit SGI texture maps |
#1939 | stale shader messages causing autobump artifacts |
#1936 | crash with certain Photoshop CS4-saved TIFF files |
#1933 | kick (progressive + turn) uses all outputs after the first turntable |
#1930 | NaNs when evaluating the Ward BRDFs |