Introduction


Consider the following example. Due to some out-of-focus sharp reflections, it would be impractical to get a clean image out of Arnold. By increasing the AA count to a level where the noise gets cleaned up, the rendertime would go way over budget. In this case usually you would resort to simulating the depth of field and motion blur in Nuke/similar. This however often incurs a significant setup cost, such as having to split the render into multiple depth layers to avoid edge artefacts.

Because lentil works on the raw sample data and not final integrated pixels, all of these issues don't exist. On top of that, we're able to use real lens data for the energy redistribution.

Lentil Unidirectional [10AA] Lentil Bidirectional [10AA]

Note that motion blur is also supersampled when the sample's energy is higher than param: bidir_min_luminance. This should get rid of the cases where we usually introduce ad-hoc fixes, such as increasing the roughness of a shader after a certain velocity to avoid this type of noise.