Changelog

2.4 - Arnold 7.1.1.0 - July 15th, 2022

  • Introduction of Chromatic Aberration. The bidirectional sampler now has options for chromatic aberrations, both for thin-lens as well as polynomial-optics lens types.
  • Thin-lens with chromatic aberration Thin-lens without chromatic aberration
  • Introduction of Skydome light redistribution. An option has been added so that the skydome can be redistributed.
  • Re-introduction of the units parameter, with the additional of an "automatic" option, which determines it from the Arnold scene_units parameter.
  • Cryptomatte has been updated to 1.2.0, to be in line with the current Arnold release.
  • Bugfix: Incorrect bidirectional redistribution with volumes. Volumetric redistribution is now disabled, but combines together with redistributed elements properly.

2.3 - Arnold 7.1.1.0 - May 9th, 2022

  • Bugfix: Incorrect bidirectional redistribution with opacity mapped shaders.
  • Bugfix: Incorrect bidirectional alpha on transmissive surfaces.
  • Bugfix: Adaptive sampling works again.
  • Deprecation of the units parameter, this is now set automatically.

2.2 - Arnold 7.1.1.0 - April 15th, 2022

  • Support for region rendering, including negative render regions.
  • Bugfix: Bidirectional component was tracing rays beyond the camera, causing artefacts.
  • Bugfix: certain AA levels would not trigger the bidirectional component.

2.1 - Arnold 7.1.1.0 - March 31st, 2022

  • Support for Arnold 7.1.1.0.
  • Introduction of the new adaptive sampler.
    • The new adaptive samplier is able to resample all samples - not just the high intensity ones. This deprecated the minimum_luminance_treshold parameter.
    • The new adaptive sampler is able to combine re-distributed and non-redistributed pixels in more robust way.
  • The lentil_time AOV is now automatically created at rendertime, including the aov shader. There is no longer a need to set this up manually.
  • Significant rendertime decrease when using multiple AOV's. We saw up to 250% improvement for ~10 AOVs.
  • Bugfix regarding incorrect pixels at the edges of the image frame.
  • Filtering is now sharper.
  • The anamorphic parameter is now reversed. 0 means perfectly spherical, 1 means completely squeezed.
  • Removal of the optical_vignetting_radius parameter. Optical Vignetting is now controlled by a single parameter, which should be more intuitive.
  • Re-introduction of coma aberration.
  • All DCC's had their parameter UI re-structured for a more intuitive UX.
  • Introduction of a new parameter: enable_bidir_transmission. This is an advanced option that should be used only in very specific instances. Lentil does not re-distribute transmissive rays, because it can not retrieve the correct optical depth data for them. This option allows to ignore that fact. This is useful when, for instance, rendering light bulbs - or similar situations where the depth discrepancy is negligable.

2.0.2 - February 16th, 2022

  • Fixed a bug regarding the AOV output strings. Now they should be universally accepted, no matter if a camera, or HALF, is specified.
  • The previous release introduced a bug which made the bidirectional thin-lens component focus incorrectly.

2.0.1 - January 30th, 2022

  • Important bugfix regarding the camera ray derivatives. This bug caused the rendered output, in certain occasions, to have severe rendering artifacts. Windows users especially were affected.

2.0 - January 29th, 2022

  • Support for adaptive sampling in Arnold.
  • Important bugfix regarding the camera ray derivatives. This bug caused the rendered output, in certain occasions, to have severe rendering artifacts.
  • Added an exposure multiplier, which can be found under the advanced section.
  • Parameter interface now loads properly for Maya 2023.

1.9.1 - January 23th, 2022

  • Hotfix release for Windows users. This solves an important bug that caused the rendered output to be completely wrong.

1.9 - January 15th, 2022

  • Initial Support for Arnold 7.0.0.0
  • The result of the bidirectional redistribution is now updated "live" in the IPR, instead of displaying it at the end after the rendering has been completed.
  • Important motion blur bug fix. It is now obligatory to add a specific AOV & aovshader to the scene to feed the correct motion data to Lentil. See Setting up motion blur. Note that due to an Arnold core bug we cannot do this setup behind-the scenes right now, but this is subject to change.
  • Multicam option in Arnold now supported. This fixes crashes when multiple cameras are present in the scene, or when a camera was specified in the AOV outputs.
  • The operator has been (temporarily) deprecated. It does not need to be added to the scene any more.
  • ~20% performance increase when using Cryptomatte.
  • Significant improved performance on IPR renders when cryptomatte is active.
  • Support for all cryptomatte AOV's, including user-created ones.
  • Cryptomatte checkbox has been deprecated, the detection of cryptomatte is now automatic.
  • Lentil now calculates scene-occlusions along the bidirectional light path. This ensures a full match between forward & backwards traced images when bokeh is partially occluded by another object.
  • Bugfix in the Polynomial Optics sample count estimator. This fixes issues where sometimes, for small bokeh, no redistribution would happen. The sample counts now also match more closely between PO & thinlens models.
  • The debug view has been improved. The debug information now comes in an automatically created AOV called "lentil_debug". It is more representative of which samples were redistributed, and displays the bidirectional sample count. The old checkbox has been deprecated.

There is a known bug in Arnold 7.0.0.x which affects Lentil:

  • Using render_region_min_x, render_region_min_y crashes the 0x02-type imagers. Render regions are therefore not supported. (ARNOLD-11835)

1.8 - March 31st, 2021

  • Fixed the issue where the imager couldn't be added to the scene, due to a change in naming expectations for arnold imagers.

1.7 - February 7th, 2021

  • Support for Arnold 6.2.0.0

Note: The live updating of the imagers does not work yet. If any imager's parameters are changed, a re-render is required (only applies to bidirectional version). I'm still looking into this.


1.6 - December 31st, 2020

  • Fixing focal_length parameter nameclash, resolving the issue where you couldn't change Maya's focal length when lentil is loaded.
  • Speedup of bidirectional polynomial optics model, since now a thinlens approximation for the sample count calculations (instead of a raytraced bounding box) is used. This has an additional benefit that sample counts now match between polynomial optics and thinlens models. It should also better estimate the sample count around the edges of the image, which previously was an issue.
  • Changed luminance-based redistribution mode to equal rgb weight mode. This should allow more consistent redistribution for different colors, since they all have the same probabilities.
  • If no cryptomatte aov shader is detected, lentil automatically disables the crypto components.
  • More user-control over which portions of the image get redistributed, through a FLOAT AOV called lentil_ignore. Anything with a value in this AOV will be ignored.
  • Increased compatiblity, to fit with the CY2021 VFX platform reference (only important for linux users).

1.5 - November 25th, 2020

  • Initial Cryptomatte support
    • limited to the default cryptomatte AOVs for now (object, material, asset, hardcoded to rank 6, using a gaussian filter of size 2.0 (forced to same as lentil))
    • Enabling cryptomatte is not cheap. Make sure to only enable (using the cryptomatte parameter on the camera shader) when you actually want to render the crypto aov's. The recommendation is to not leave it on during IPR sessions.
    • Had to patch the default cryptomatte library, so make sure to replace the cryptomatte.(dll/so/dylib) in your arnold installation. The only difference to the default cryptomatte library is a little diversion to hook up a lentil_filter instead of a cryptomatte_filter.
  • Changed the focus_distance parameter name to focus_dist. This avoides a parameter nameclash with the default arnold camera, leading to unexpected behaviour of this parameter.
  • Fixed a significant memory leak.
  • Increased stability during release of resources after the render has completed.

1.4 - November 15th, 2020

  • Overall stability improvements, especially noticeable in c4dtoa.
  • Merged the polynomial optics/thin lens models into a singular shader, this should make switching between them smoother.

There is still an issue in mtoa - during IPR changes sometimes the operator isn't triggered, resulting in the bidirectional component not running. I'm still looking into this.


1.3 - November 12th, 2020

  • Fixed bug where HDRI's appeared stretched when unit parameter was not set to CM (thinlens only).
  • Added missingabberation_distortion parameter in c4dtoa.
  • Removed the lentil_debug_operator node. The same functionality can now be found through a checkbox in the camera parameters.
  • Fixed optical vignetting artefacts, especially noticable when rendering with an HDRI.
  • Merged all binaries/metadata files
  • Removed TL/PO suffix from all parameter names. In Mtoa, this means that the settings transfer when switching between lentil/lentil_thinlens.

1.2 - November 11th, 2020

Small bugfix release, but important for the KtoA crowd.

  • Adding graceful handling of similarly named AOVs for different drivers (e.g 2x RGBA, etc)

This seems especially important in KtoA because it by default uses a "primary" aov (RGBA) as well as any other AOVs defined. Make sure to switch to your user-defined AOV to see the redistributed effect.


1.1 - November 10th, 2020

  • AOVs now get redistributed in mtoa/c4dtoa (you can ignore the warning: could not set STRING parameter "layer_selection")
  • AOVs now show the unredistributed version, instead of being black before the redistribution imager runs
  • KtoA interface files
  • AI_TYPE_UINT, AI_TYPE_POINTER aov support
  • Removed the "ai" prefixes from mtoa parameters & node names (watch out, you will need to re-set any parameter values)

1.0 - November 3rd, 2020

  • Initial release of Lentil. Expect more coming soon 🤘