Milestone 3.3.7

Enhancements

  • New cylindrical_light: There is a new type of light available to lighters through a new node called cylindrical_light. Like their cylinder shape counterparts, these lights are defined with two endpoints and a radius. These new lights should fully support all of the features available to lights in Arnold like motion-blur and MIS, excepting volumetrics/atmospherics which should will be suported in a future version. (trac#2195)
  • MIS support in diffuse layer of standard shader: The necessary functions for MIS to work with the Oren-Nayar BRDF used by the standard shader have been implemented. Apart from being used internally by this shader, these functions are also available to shader writers inai_shader_util.h, where the rest of the API-provided MIS functions are located. (trac#2251)
  • MIS support in distant_light: Distant lights now correctly implement the required functionality for MIS to work with this type of lights. This should allow for cleaner specular highlights in glossy reflections of distant lights with angle > 0. (trac#2164)
  • Optimized importance sampling table precomputation: The precomputation of the importance sampling tables for quad_light and skydome_light is now multithreaded. Any rendering threads which sample a quad_light or skydome_light that has not completed this precomputation will aid in computing the table, rather than wait for one thread to compute the table (as was the previous behavior). (trac#2258, trac#2266) The precomputation was made deterministic under threading and more numerically stable (output may change slightly), and is now safeguarded against NaN texels. (trac#2292)
  • Added ray differentials for all camera types: Non-perspective camera projections such as fisheye and cylindrical now set derivatives properly, which allows texture filtering, wireframe shading and bump mapping to work correctly for shaders seen through these types of cameras. (trac#1234)
  • improved SSS precomputation with motion blur: Arnold now uses a global absolute time to perform pointcloud lighting calculations. Previously the first key in the mesh would be used, but this can lead to artifacts when using centered frame motion blur for example because the first key is the position of the model at the previous frame. Now the mesh is positioned according to the global option sss_time which default to 0 both for backwards compatibility and more consistent behavior with centered frame motion blur (trac#2284)
  • Environment variable expansion in searchpaths: The texture_searchpath, procedural_searchpath and shader_searchpath options now support expansion of environment variables delimited by square brackets. This works both using the API and inside .ass files as shown below: (trac#1816)
    AtNode *options = AiUniverseGetOptions();
    ...
    AiNodeSetStr(options, "procedural_searchpath", "[MY_ENVAR_PATH]/to/somewhere");
    
    options
    {
     AA_samples 4
     GI_diffuse_samples 4
     ...
     procedural_searchpath "[MY_ENVAR_PATH]/to/somewhere"
    } 
    
  • pykick enhancements: There are several enhancements in how pykick.py is used and deployed: (trac#2271)
    • pykick.py is now an executable Python script which can be invoked directly via a new symbolic link pykick located in the bin directory. The symbolic link is only available in Linux/OSX.
    • pykick.py now points to the location of the Arnold Python bindings, so the user is no longer required to include that location in the PYTHONPATH environment variable.
    • Since the Arnold Python bindings use the ctypes module (introduced in Python 2.5), pykick.py now checks the current version of the Python interpreter used.

API additions

  • AiColor(): Added new convenience function that takes a float value and creates a color with all components set to that value (trac#2268)

Incompatible changes

  • auto_transparency_probabilistic now enabled by default: The default value has changed from OFF to ON. This could affect the look of scenes containing semi-transparent or min_pixel_width curve shapes. (trac#2276)

Bug fixes

 

 

TicketSummaryComponentOwnerPriorityVersionCreated
#2255kick should only close its window when pressing ESCkickxocritical3.33 weeks
#2191Random crashes with points.min_pixel_width > 0 and 1-element array in points.radiusarnoldoscarmajor3.32 months
#2245Intel compiler floating point inconsistencies in Windowsarnoldxomajor3.34 weeks
#2247Problem loading some .OBJ format filesarnoldangelmajor3.34 weeks
#2249Intersection precision problems in far away point primitivesarnoldxomajor3.33 weeks
#2254Intersection precision problems in far away sphere primitivesarnoldxomajor3.33 weeks
#2259incorrect MIS variable computation in textured, importance-sampled quad lightsarnoldalanmajor3.32 weeks
#2262'min_pixel_width' in 'points' primitive is not properly workingarnoldoscarmajor3.32 weeks
#2265AiEvaluateLightSample() is modifying lighting shader globalsarnoldalanmajor3.313 days
#2270'maketx' and 'pykick' are not executables in linux releasesarnoldoscarmajor3.38 days
#2277Buckets have different intensities when rendering with MIS and subdivisionarnoldxomajor3.37 days
#2280Linux/OSX kick process doesn't properly exit after display window is closedkickoscarmajor3.36 days
#2284sss precomputation should occur at a fixed timearnoldmarcosmajor3.33 days
#2292Crash when using a textured importance sampled light with NaN texelsarnoldxomajor3.326 hours
#2293Crash when opening a non-existent '.ass' filearnoldoscarmajor3.325 hours
#2243Rename "focal_distance" to "focus_distance" in "fisheye_camera"arnoldoscarminor3.34 weeks
#2267Windows kick process doesn't exit after display window is closedkickxominor3.310 days
  • No labels