Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

Milestone 3.3.13


  • Binary encoding of float arrays in .ass files: A new type of encoding is used to compress large float arrays into a more compact ASCII representation, leading to smaller files and faster load times. In addition, the new encoding has exact 32-bit precision, whereas previously we truncated and stored the floats into at most 8 ASCII digits (e.g. 1234.5678). The encoded arrays are indicated by prefixing the array type with "b64" as in the example below. By default, Arnold will write encoded .ass files, but this can be turned off with the new option binary_ass. (trac#2434)
     name mymesh
     nsides 54 1 UINT  3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
      4 4 4 4 4 3 3 3 3 3 3 3 3 3
     vlist 47 1 b64POINT
      LJ4iv4THCEE/NV4/1nPCvhpuBkEMk10/LJ4iv2uf+kDVzHI/36OGvhkc/kD9+Fs/LGenvtmU8EDqJVo/l1cGv+Ij50D1 ...
  • Statistics for largest meshes: The triangle tesselation portion of the statistics output now includes a list of the top 5 heaviest meshes by triangle count. This can be used to quickly identify over-tesselated meshes in your scenes. (trac#2438)
  • sss_threaded_sample_distribution = false disables binning in SSS point clouds: As a work-around that ensures that any possible banding artifacts will be removed from the blue-noise SSS distributions, the sss_threaded_sample_distribution will cause the renderer to avoid applying the binning multi-threading technique that was sometimes causing banding artifacts in SSS samples. This of course comes at the cost of disabling multi-threaded sample generation. (#2426)
  • utility shader can visualize sg->Ns: We have added ns to the utility.color_mode enum to visualize sg->Ns (the smooth, un-bumped normal). This complements the existing ng and n modes. (trac#2425)
  • linear interpolation on curves: The curve primitive now supports a linear interpolation type that does not require a minimum of 4 control points. Note that the curve is still rendered as a cubic curve internally, so the appearance may be slightly different compared to PRMan. (trac#2431)
  • Added raw motion vector support: A raw parameter has been added to the motion_vector shader. This mode stores the raw, un-encoded motion vector directly in the RG components of the shader's output. The default value is FALSE. (trac#2432)
  • Added motionvector built-in AOV: This AOV provides raw, un-encoded 2D motion vectors between shutter start and end. Note that the calculation of motion vectors is slow. To render an image with motion vectors but no 3D motion blur, you may use the ignore_motion_blur global option. For best results, this AOV should be filtered similarly to Z values. (trac#2433)
  • Added Pref built-in AOV: Arnold can now output Pref coordinates (sometimes called pose reference coordinates) to an AOV, similar to the P AOV. This would only work in scenes that have been exported with Pref user-data. (trac#2435)

API additions

  • AiSSSTraceSingleScatter(): This new function gives a single scattered approximation to SSS along the ray direction. The number of samples taken to compute the result is controlled linearly by the new GI_single_scatter_samples render option. This function uses pretty much the same parameterization as Wann Jensen's 2001 BSSRDF paper, where the mean free path parameter can be computed for the values from the table in that paper using the following formula: mfp = 1/sigma_t' = 1/(sigma_s' + sigma_a)). Note that the effect of this function can be disabled with the ignore_sss option. (#2169)
  • AI_LOG_SSS: Added new log type AI_LOG_SSS, applied to SSS messages so that they are moved up to level 5 verbosity in kick. (trac#2421)

Incompatible changes

  • AiLoadPlugin(): The arguably redundant AiLoadPlugin() function is now deprecated. Its functionality has been added to AiLoadPlugins(), which can now load any combination of directories and explicit plugin files, separated by ':' in Linux/OSX or ';' in Windows. The deprecated function will be removed in the next major release. (trac#2419)

Bug fixes



#2391strong bump mapping produces specular faceting artifactsarnoldalancritical3.33 months
#2416bump mapping epsilon is too big for some scenesarnoldalancritical3.32 months
#2405reduce artifacts at bin boundaries in blue noise SSS point cloud constructionarnoldoscarmajor3.33 months
#2408reduce numerical instability in pixel-length estimate for adaptive subdivisionarnoldmarcosmajor3.33 months
#2412'#' should be allowed in quoted string attributesarnoldramonmajor3.33 months
#2418Plugins with .sog extension are not automatically loadedarnoldangelmajor3.32 months
#2422sg->Ns should not include autobumparnoldramonmajor3.32 months
#2426Fix dark lines in SSS when 'sss_threaded_sample_distribution' is falsearnoldoscarmajor3.32 months
#2428Crash when using a shader which is not a shaderarnoldoscarmajor3.32 months
#2442polygon_midpoint SSS skipping faces of axis aligned gridsarnoldalanmajor3.32 months




#2465Node names containing spaces should be wrapped in quotes when written to .ass3.3.13.1arnoldangelmajor3.4
#2474light samples sometimes traveling through solid objectsmill,




#2574Flickering with "blue_noise_Pref" SSS sample distributiondd,