Milestone 3.3.11


  • Simplified SSS sampling controls: To simplify the user experience of dialing light and GI samples for SSS, we have unified all the controls to be controlled by a global multiplier: sss_sample_factor. This control behaves similarly to AA_samples, but in the SSS context, multiplying against the light/diffuse sampling settings the user has already dialed for his scene. The default value is 4. Typically it should be set to the same as AA_samples to ensure every point in the point cloud receives noise-free lighting. The per-light sss_samples and the global GI_sss_hemi_samplescontrols have been removed. (trac#2364)
  • Added option sss_threaded_sample_distribution: This is a temporary "escape valve" to disable multi-threading in the construction of SSS pointcloud distributions. Although we are confident that most of the recent SSS bugs were solved in this release, we are providing this option for users who may encounter additional threading hangs/crashes. The default value is TRUE, consistent with previous behaviour. This option will be removed in a future release. (trac#2387)
  • New disk_light: We have added a disk_light node that implements an oriented disk light. The new light supports all of the standard features such as MIS and volumetrics. (trac#2197)
  • MIS support in AiDirectDiffuse(): The AiDirectDiffuse() function available to shader writers and used by the built-in lambert shader will now apply multiple importance sampling techniques when available. This can noticeably improve image quality, in particular with skydome lights. (trac#2313)
  • multiply and offset in image shader: We have added two handy controls in the image node. Thanks to these new controls, there is no need to write a separate shader when you simply need to filter the texture lookup by a color, or add a color to the texture lookup. (trac#2352)
  • Support for Pref coordinates in noise shader: In addition to the existing world and object coordinate spaces, it is now possible to evaluate the noise at Pref coordinates. This of course assumes that the mesh has been exported with Pref data, otherwise it reverts to the default objectspace. (trac#2348)
  • Set @executable_path in Mac OSX binaries: On Mac OSX systems, the paths to libraries used by Arnold binaries are now hardcoded to @executable_path. This makes libai to always link first with libraries residing in the directory where libai itself is located, avoiding loading libraries with mismatched versions that may be reached through the DYLD_LIBRARY_PATH environment variable. It is now ensured that libai links with the libraries deployed in the official Arnold package as both libai and its dependencies are located in the package directory tree. Therefore we encourage users not to relocate the Arnold binaries outside the <arnold_root_dir>/bin directory. (trac#2223)
  • Floating point support in driver_display: The generic display driver node driver_display receives RGB/RGBA buckets and sends the pixel data to a custom C-style callback. You can now choose the format for those pixel buffers between the original floating point data (with gamma correction applied) or the old "packed integer" format which is 8 bits per channel (with clamping to 0-1, gamma correction and dithering applied). This is done using the new rgba_packing boolean parameter, which defaults to TRUE to maintain previous behaviour. (trac#2175)
  • Added option -sr <f> to kick: The new kick option -sr <f> allows to scale up/down <f> times the resolution of the output image. (trac#2347)

API additions

  • Python bindings for the Licensing API: These bindings allow configuring the licensing subsystem (server, number of attempts and delay). (trac#2237)

Incompatible changes

  • Removed SSS sampling controls: The global option GI_sss_hemi_samples and the per-light option sss_samples have been removed in favor of the new global option sss_sample_factor described above. Note that this can change the quality of the SSS effect in existing scenes that were using these options to override the SSS samples, and therefore render times can be affected too. If, after upgrading to this version, your renders suddenly become very slow, you may want to reduce sss_sample_factor; conversely, if your renders suddently become much faster and noisier, try increasing sss_sampe_factor. (trac#2364)
  • Removed sss_use_gi from objects: As part of an ongoing effort to simplify the SSS system, we have removed the sss_use_gi geometric object attribute. The SSS engine will now always evaluate indirect lighting, with the same number of bounces as specified in the GI_diffuse_depthoption. This can result in differences in rendered images for older scenes that had this parameter disabled, but these cases should be rare. As an added bonus, this saves memory in scenes with many objects. (trac#2363)
  • Removed option -qres from kick: You can achieve the same effect with the new option -sr 0.5. (trac#2347)
  • Renamed the disc primitive to disk: For better consistency with other node/parameter strings in the API (i.e. the disk_light and the disk mode of the points primitive), the rarely-used disc geometric primitive has been renamed to disk. A deprecated synonym has been added so that the old name still works (at the expense of a warning message). (trac#2357)
  • Removed the ability to set thread priorities on Linux/OSX: For a long time, this feature has been broken on Linux and OSX, so we are now officially removing support for those platforms. You can use the Unix nice command to run the Arnold process at lower priority.AiThreadCreate()'s third argument is still accepted, but only has an effect on Windows, where it's perfectly fine to alter the priority of render threads. (trac#1077)

Bug fixes



#2100AiArray{Set|Get}{Vec|Pnt} should work on both points and vectorsarnoldoscarmajor3.37 months
#2173hair direct diffuse and direct specular brighter than expectedarnoldalanmajor3.35 months
#2308AiRGBACreate() should return an AtRGBAarnoldoscarmajor3.32 months
#2355SSS pointcloud build crashes on disjoint meshesarnoldxomajor3.35 weeks
#2359Livelock in SSS pointcloud buildingarnoldxomajor3.35 weeks
#2361SSS pointcloud building causes render to hangarnoldoscarmajor3.35 weeks
#2370'kick -info [n|u] <node>' doesn't workkickoscarmajor3.34 weeks
#2372Texture blurriness when scaling camerasarnoldoscarmajor3.34 weeks
#2375Aborting when constructing SSS pointclouds causes render to crash/hangarnoldoscarmajor3.34 weeks
#2380`AiLightsGetShadowMatte()` missing some shadowsarnoldalanmajor3.33 weeks
#2389'bounces' control on the lights should affect glossy bouncesarnoldmarcosmajor3.38 days
#2358Spinlock implementation fails on newer version of GCC due to optimizationarnoldxominor3.35 weeks
#2373'kick' doesn't work properly with '-interactive [m|q]' and camera matriceskickoscarminor3.34 weeks
#2365'disk' count is not reported in the initial log messagesarnoldoscartrivial3.35 weeks




#2396NaNs coming from `AiLightsGetShadowMatte()`
  • No labels