blender/intern/cycles/kernel/split
Sergey Sharybin d14e39622a Cycles: First implementation of shadow catcher
It uses an idea of accumulating all possible light reachable across the
light path (without taking shadow blocked into account) and accumulating
total shaded light across the path. Dividing second figure by first one
seems to be giving good estimate of the shadow.

In fact, to my knowledge, it's something really similar to what is
happening in the denoising branch, so we are aligned here which is good.

The workflow is following:

- Create an object which matches real-life object on which shadow is
  to be catched.

- Create approximate similar material on that object.

  This is needed to make indirect light properly affecting CG objects
  in the scene.

- Mark object as Shadow Catcher in the Object properties.

Ideally, after doing that it will be possible to render the image and
simply alpha-over it on top of real footage.
2017-03-27 10:46:03 +02:00
..
kernel_buffer_update.h Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
kernel_data_init.h Cycles: Cleanup, wipe obviously outdated parts of split kernel comments 2017-03-13 17:16:16 +01:00
kernel_direct_lighting.h Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
kernel_do_volume.h Cycles: Avoid some ccl_local in various kernels 2017-03-16 11:27:17 +01:00
kernel_holdout_emission_blurring_pathtermination_ao.h Cycles: Fix mistake in previous split kernel commits 2017-03-17 11:55:59 +01:00
kernel_indirect_background.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_indirect_subsurface.h Cycles: SSS and Volume rendering in split kernel 2017-03-09 17:09:37 +01:00
kernel_lamp_emission.h Cycles: Avoid some ccl_local in various kernels 2017-03-16 11:27:17 +01:00
kernel_next_iteration_setup.h Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
kernel_path_init.h Cycles: Cleanup, wipe obviously outdated parts of split kernel comments 2017-03-13 17:16:16 +01:00
kernel_queue_enqueue.h Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
kernel_scene_intersect.h Cycles: Avoid some ccl_local in various kernels 2017-03-16 11:27:17 +01:00
kernel_shader_eval.h Cycles: Fix handling of barriers 2017-03-17 01:54:04 -04:00
kernel_shadow_blocked_ao.h Cycles: Avoid some ccl_local in various kernels 2017-03-16 11:27:17 +01:00
kernel_shadow_blocked_dl.h Cycles: Avoid some ccl_local in various kernels 2017-03-16 11:27:17 +01:00
kernel_split_common.h Cycles: SSS and Volume rendering in split kernel 2017-03-09 17:09:37 +01:00
kernel_split_data_types.h Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
kernel_split_data.h Fix T50888: Numeric overflow in split kernel state buffer size calculation 2017-03-11 05:39:28 -05:00
kernel_subsurface_scatter.h Cycles: Fix handling of barriers 2017-03-17 01:54:04 -04:00