4.0.7.0 - Arnold User Guide
Milestone 4.0.7
Enhancements
- Ray-traced BSSRDFs : A new alternative to point-cloud subsurface scattering has been added. This method is brute-force ray-tracing based, but produces visually identical results to the pointcloud technique. This approach removes a number of shortcomings of the pointcloud method, trading them for unbiased noise instead. The new method consumes zero extra memory, supports motion blur, supports interactive relighting, is fully multi-threaded, starts up immediately and does not degrade in performance as the scattering radius shrinks. The new method is enabled by the global option: sss_bssrdf_samples. This option defaults to 0 for backwards compatibility (uses pointclouds). When set to a value greater than 0, this number of lighting samples (direct and indirect) will be taken to estimate lighting within a radius of the point being shaded. On top of the direct/indirect irradiance rays, the algorithm uses short probe rays of type AI_RAY_DIFFUSE to find points near the one being shaded, so this can bias the ray statistics in the .log file a bit. (trac#2763)
- Improved sampling at secondary bounces : The 2D sampling patterns generated by Arnold will now be stratified even for secondary bounces instead of reverting to fully random sampling as before. This can greatly reduce the amount of noise, particularly when rendering things that are seen through near-specular effects like glossy reflections or refractions. (#2371)
- Improved sampling for SSS Point cloud : When baking diffuse lighting calculations into the SSS pointcloud, we now use MIS to reduce noise from large nearby area lights and the skydome. This may increase the number of rays slightly, but give higher quality sampling in those cases. (trac#2484)
- New mesh_light : There is a new type of light available called mesh_light which takes a polymesh as a parameter and emits light using the polymesh's surface geometry. Note: The mesh light's matrix transform is being ignored for the time being and only the linked mesh's transformation will be taken into account. (#2864)
- Improved smoothed normals : The quality of the smooth shading normals stored per-vertex in triangular tessellations has been improved by adjusting the weights used to average the triangle normals around a vertex. In addition to triangle area, the weights now factor the angle between the two triangle edges containing the shared vertex. This will be most evident for coarse meshes where the face normal and the smoothed vertex normals substantially differ. (#2923)
- Mari UDIM texture tags : The built-in image node now recognizes Mari UDIM tags in texture filenames and substitutes in the proper values. A vanilla tag, e.g.
, and customized dimensions, e.g. < udim:100 > are recognized. Please note that these will disable texture handles and may impact performance; we hope to improve this in a future release. (#2670) - autobump shader call stats : The number of autobump shader calls is now properly reported in the log statistics. In previous versions, this could "hide" a large number of shader evaluations, since autobump computes the bump differentials by calling the displacement shader 4 times, which can quickly become the dominant source of shader evaluations during rendering. (#2899)
- New ignore_dof global option : Analogously to ignore_motion_blur, there is now an ignore_dof option which lets you quickly deactivate depth of field effects in the cameras that support it. This is equivalent to setting the aperture_size to 0 in the camera. In addition, an -idofcommand-line argument has been added to kick for convenience. (#2947)
- Find DSO procedurals with kick -nodes : In addition to listing the dynamically-loaded shaders, kick -nodes now lists any geometry-generation DSO/DLL's used in procedural nodes (aka standins) that are found in ".", ARNOLD_PLUGIN_PATH or any other searchpaths specified in thekick command-line via the -l
option. (#2942) - Improved stack traces : In the event of a crash, the stack trace (or "backtrace") is now reported in more detail, specially in debug builds for developers. Also, backtraces are now implemented in Windows for the first time. (#2827, #1739)
API additions
None.
Incompatible changes
None.
Bug fixes
Ticket | Summary | Component | Owner | Priority | Version | Created |
---|---|---|---|---|---|---|
#2930 | support for Windows XP was accidentally broken in Arnold 4.0.6.0 | arnold | oscar | blocker | 4.0 | 4 weeks |
#2627 | monochrome images with alpha not read correctly | oiio | ramon | major | 3.3 | 7 months |
#2860 | Free-floating mesh vertices crash subdivision | arnold | mike | major | 3.3 | 2 months |
#2904 | Improve numerical precision of subdivision limit normals | arnold | thiago | major | 3.3 | 6 weeks |
#2905 | Don't print escape sequences (colors) in logs if stdout is redirected | arnold | oscar | major | 4.0 | 6 weeks |
#2907 | Oriented curves with identical motion keys corrupts orientations | arnold | mike | major | 3.3 | 6 weeks |
#2908 | Crash with pixel-width optimization and constant radius specification | arnold | oscar | major | 4.0 | 6 weeks |
#2911 | Crash when EXR/TIFF output cannot be opened in 'append' mode | arnold | ramon | major | 3.3 | 5 weeks |
#2912 | Race condition in latent deferred SSS sample code causes random crashes | arnold | oscar | major | 4.0 | 5 weeks |
#2915 | .ass parser reports incorrect line numbers when a string contains EOL's | arnold | angel | major | 3.3 | 5 weeks |
#2916 | Arnold doesn't respond correctly to Ctrl+C events in windows | arnold | oscar | major | 4.0 | 5 weeks |
#2917 | quantization artifacts in smooth edge of spot_light | arnold | oscar | major | 4.0 | 5 weeks |
#2921 | AtNodeEntry counters are not always atomically changed | arnold | mike | major | 3.3 | 5 weeks |
#2925 | maketx quantization errors when rescaling 8- and 16-bit images | oiio | ramon | major | 3.3 | 4 weeks |
#2938 | ginstance attributes with default value are all exported to .ass | arnold | angel | major | 3.3 | 3 weeks |
#2941 | write out floats using all bits of precision | arnold | thiago | major | 3.3 | 3 weeks |
#2943 | fix warning when shader_searchpath points to a nonexisting path | arnold | marcos | major | 3.3 | 2 weeks |
#2948 | Nodes with a "@before" link are always exported to .ass file as ginstance | arnold | angel | major | 3.3 | 13 days |
#2949 | bug when tessellating a single polygon with a simulated hole | arnold | oscar | major | 4.0 | 13 days |
#2952 | Fix run-time search paths hard-coded in "ai" and "kick" | arnold | oscar | major | 4.0 | 12 days |
#2960 | incorrect user bounds warning when bounds are equal. | arnold | thiago | major | 3.3 | 12 days |
#2961 | Crash with NaNs in displacement map | arnold | oscar | major | 4.0 | 11 days |
#2964 | Missing ray type defines in Python API | arnold | angel | major | 3.3 | 8 days |
#2965 | Empty error message when accessing a non-existent EXR texture | oiio | oscar | major | 4.0 | 7 days |
#2702 | IOR set to 0 in the standard shader gives a fatal error | arnold | marcos | minor | 3.3 | 5 months |
#2933 | improved reporting of light samples in the log file | arnold | marcos | minor | 3.3 | 3 weeks |
#2934 | Recover extended OS info (compatible with windows XP) | arnold | oscar | minor | 4.0 | 3 weeks |