blender/intern/cycles/kernel/split
Lukas Stockner b459d9f46c Cycles: Stop lamp sampling if the lamp isn't visible
Both spot and area light have large areas where they're not visible.
Therefore, this patch stops the light sampling code when one of these cases (outside of the spotlight cone or behind the area light) occurs, before the lamp shader is evaluated.
In the case of the area light, the solid angle sampling can also be skipped.

In a test scene with Sample All Lights and 18 Area lamps and 9 Spot lamps that all point away from the area that the camera sees, render time drops from 12sec to 5sec.

Reviewers: brecht, sergey, dingto, juicyfruit

Differential Revision: https://developer.blender.org/D2216
2016-09-14 19:45:12 +02:00
..
kernel_background_buffer_update.h Cycles CUDA: reduce stack memory by reusing ShaderData. 2016-05-23 22:29:24 +02:00
kernel_data_init.h Cycles CUDA: reduce stack memory by reusing ShaderData. 2016-05-23 22:29:24 +02:00
kernel_direct_lighting.h Cycles: Stop lamp sampling if the lamp isn't visible 2016-09-14 19:45:12 +02:00
kernel_holdout_emission_blurring_pathtermination_ao.h Cycles: Remove unused argument from the split kernel functions 2015-11-01 17:22:42 +05: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, indentation and braces 2016-02-03 15:00:55 +01:00
kernel_scene_intersect.h Cycles: Remove some unused variables from split kernel function 2016-01-29 18:54:46 +01: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: Move BVK kernel files to own directory 2016-07-11 13:58:47 +02:00
kernel_sum_all_radiance.h Cycles: Partially revert previous commit 2015-11-01 21:01:12 +05:00