Milestone 4.0.13

  • Lowered polymesh peak memory usage: In previous versions, during the polymesh construction, polymesh memory usage temporarily doubled. This temporary spike could be seen when rendering a few very large meshes. This temporary memory is no longer required which can lower the peak memory usage. (#3330)

  • Faster scenes with very many lights: The light acceleration structure has been made more robust for scenes with tens or hundreds of thousands of light sources. In a city scape test scene with 254k lights we observed a 4x speedup. (#2697)

  • Faster shadow rays: Shadow rays on average should now be faster to trace. Usually we've seen 3-10% speedups, but we've also seen several shots that became 15% faster. (#3339)

  • Reuse importance tables across lights: Texture-mapped quad_light nodes that point to the same emission shader, and whose resolution parameter is also the same, will now share the precomputed importance table used for efficient importance sampling. This reduces both the startup time and memory usage, specially in scenes with hundreds of lights that previously were constructing a separate importance table each. (#3278)

  • Improved sampling of sharp glossy inter-reflections in standard shader: The built-in protection against strong noise (aka fireflies) in glossy inter-reflections has been improved to better deal with very sharp reflections visible through equally sharp reflections. This might result in slightly blurrier/larger secondary highlights, but most of the time this difference won't be perceived. (#3316)

  • Improved vector noise: The numerical precision of the vector noise returned by the AiVNoise*() API calls has been improved. This fixes artifacts in bump and autobump that were reported when using distorted noise relatively far from the origin. Note that this will change the exact shape of the noise, although the overall look and statistical properties will be similar. (#3299)

  • Smaller .ass files with sequences of 0's: Long sequences of the commonly-occurring floating point values 0.0 and 1.0 are now encoded more efficiently. We have seen file size reductions of more than 2x in scenes containing volume data. Note that this enhancement is not backwards-compatible: scenes exported with 4.0.13 will not be readable by 4.0.12 or older. (#3314)

API additions
  • autobump_visibility: Added a per-object autobump_visibility mask which can be used to specify what types of rays can perform autobump. This defaults to all rays except for rays that have undergone diffuse bounces. By disabling it for more ray types (like reflection and glossy), rendering can be made faster with little degradation in image quality. (#3132)

Incompatible changes
  • Differences in vector noise: As mentioned above, the vector noise returned by AiVNoise*() has changed. For users with already look-dev'ed assets who decide to upgrade in the middle of production, this might be inconvenient. Those users can revert to the older, lower quality vector noise thanks to the new global option enable_legacy_vector_noise. This is set to false by default. Note that this new option is deprecated from the start and will be removed in the next major release. (#3299)


Bug fixes
#3312User-data parsing and version checking not thread-safe in Windowsarnoldangelcritical4.06 weeks
#3292make sure wrap mode "black" wins over "fill" value when they conflictoiioramonmajor4.07 weeks
#3300no need to write "name options" for the options block in .ass filesarnoldmarcosmajor4.07 weeks
#3307infinite type lights break with volume_scatteringarnoldthiagomajor4.06 weeks
#3310AiFresnelWeightRGB() does not match AiFresnelWeight()arnoldalanmajor4.06 weeks
#3315leak in AiMetaDataSetStr when setting the same metadata twicearnoldangelmajor4.05 weeks
#3318applying a matrix transform to plane results in invalid boundsarnoldthiagomajor4.05 weeks
#3321NANs in displacement map crash Arnoldarnoldramonmajor4.05 weeks
#3335Procedural attribute overrides not always preserved when writing to .assarnoldangelmajor4.04 weeks
#3345writing out .ass files with tens of thousands of lights is very slowarnoldmarcosmajor4.03 weeks



#3356Propagated opaque attribute not found for shadow rays4.0.13.1arnoldangelmajor4.0.14
#3362AiSSSTraceSingleScatter crash due to precision loss4.0.13.1arnoldramonmajor4.0.14
  • No labels