blender/intern/cycles/kernel/split
Lukas Stockner 26bf230920 Cycles: Add optional probabilistic termination of light samples based on their expected contribution
In scenes with many lights, some of them might have a very small contribution to some pixels, but the shadow rays are traced anyways.
To avoid that, this patch adds probabilistic termination to light samples - if the contribution before checking for shadowing is below a user-defined threshold, the sample will be discarded with probability (1 - (contribution / threshold)) and otherwise kept, but weighted more to remain unbiased.
This is the same approach that's also used in path termination based on length.

Note that the rendering remains unbiased with this option, it just adds a bit of noise - but if the setting is used moderately, the speedup gained easily outweighs the additional noise.

Reviewers: #cycles

Subscribers: sergey, brecht

Differential Revision: https://developer.blender.org/D2217
2016-10-30 11:31:28 +01:00
..
kernel_background_buffer_update.h Cycles: Cleanup code style in split kernel 2016-09-19 16:05:12 +02:00
kernel_data_init.h Cycles: Cleanup code style in split kernel 2016-09-19 16:05:12 +02:00
kernel_direct_lighting.h Cycles: Add optional probabilistic termination of light samples based on their expected contribution 2016-10-30 11:31:28 +01:00
kernel_holdout_emission_blurring_pathtermination_ao.h Cycles: Cleanup code style in split kernel 2016-09-19 16:05:12 +02:00
kernel_lamp_emission.h Cycles CUDA: reduce stack memory by reusing ShaderData. 2016-05-23 22:29:24 +02:00
kernel_next_iteration_setup.h Cycles: Cleanup code style in split kernel 2016-09-19 16:05:12 +02:00
kernel_scene_intersect.h Cycles: Fix OpenCL split kernel compilation after recent CUDA 8 performance fix 2016-10-07 18:50:43 +02:00
kernel_shader_eval.h Cycles: Add multi-scattering, energy-conserving GGX as an option to the Glossy, Anisotropic and Glass BSDFs 2016-06-23 22:57:26 +02:00
kernel_shadow_blocked.h Cycles CUDA: reduce stack memory by reusing ShaderData. 2016-05-23 22:29:24 +02:00
kernel_split_common.h Cycles: OpenCL 3d textures support. 2016-10-22 23:49:29 +02:00
kernel_sum_all_radiance.h Cycles: Partially revert previous commit 2015-11-01 21:01:12 +05:00