blender/intern/cycles/kernel
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
..
bvh Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
closure Cycles: Fix building of OpenCL kernels 2017-03-20 22:55:52 -04:00
geom Cycles: Remove unused macro 2017-03-23 17:59:02 +01:00
kernels Cycles: Define ccl_local variables in kernel functions 2017-03-16 11:27:17 +01:00
osl Cycles: Make it possible to access KernelGlobals from split data initialization function 2017-03-08 11:02:54 +01:00
shaders Cycles: Expose diffuse and glossy depth to Light Path node 2017-01-19 15:09:58 +01:00
split Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
svm Cycles: Remove ccl_fetch and SOA 2017-03-08 00:52:41 -05:00
CMakeLists.txt Cycles: Move intersection math to own header file 2017-03-23 17:45:19 +01:00
kernel_accumulate.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_bake.h Fix T50698: Cycles baking artifacts with transparent surfaces. 2017-02-25 03:12:53 +01:00
kernel_camera.h Cycles: Remove ccl_fetch and SOA 2017-03-08 00:52:41 -05:00
kernel_compat_cpu.h Cycles: Cleanup, inline AVX register construction from kernel global data 2017-03-23 17:45:19 +01:00
kernel_compat_cuda.h Cycles: Fix CUDA build error for some compilers 2017-03-08 16:44:43 -05:00
kernel_compat_opencl.h Cycles: OpenCL split kernel refactor 2017-03-08 00:52:41 -05:00
kernel_debug.h Cycles: Use dedicated debug passes for traversed nodes and intersection tests 2017-01-12 13:44:35 +01:00
kernel_differential.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_emission.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_film.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
kernel_globals.h Cycles: Make it possible to access KernelGlobals from split data initialization function 2017-03-08 11:02:54 +01:00
kernel_image_opencl.h Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
kernel_jitter.h Cycles: Fix correlation issues in certain cases 2016-12-01 14:19:15 +01:00
kernel_light.h Cycles: Make object flag names more obvious that hey are object and not shader 2017-01-23 12:14:17 +01:00
kernel_math.h Cycles: Move intersection math to own header file 2017-03-23 17:45:19 +01:00
kernel_montecarlo.h Cycles code refactor: minor refactoring and comments for volume code. 2014-03-29 13:03:49 +01:00
kernel_passes.h Cycles: Remove ccl_fetch and SOA 2017-03-08 00:52:41 -05:00
kernel_path_branched.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_path_common.h Cycles: Fix rng_state initialization when using resumable rendering 2017-02-01 05:43:17 +01:00
kernel_path_state.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_path_subsurface.h Cycles: SSS and Volume rendering in split kernel 2017-03-09 17:09:37 +01:00
kernel_path_surface.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_path_volume.h Cycles: SSS and Volume rendering in split kernel 2017-03-09 17:09:37 +01:00
kernel_path.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_projection.h Fix T49846: OpenCL rendering compilation failure 2016-10-29 20:06:52 +02:00
kernel_queues.h fix msvc warnings about unknown opencl pragmas 2017-03-13 10:08:14 -06:00
kernel_random.h Cycles: Fix compilation error of LCG RNG 2017-03-17 09:58:08 +01:00
kernel_shader.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_shadow.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_subsurface.h Cycles: Workaround incorrect SSS with CUDA toolkit 8.0.61 2017-03-24 10:08:18 +01:00
kernel_textures.h Cycles: Fix wrong hair render results when using BVH motion steps 2017-02-15 12:45:04 +01:00
kernel_types.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
kernel_volume.h Cycles: Cleanup, indentation 2017-03-17 10:25:37 +01:00
kernel_work_stealing.h Cycles: OpenCL split kernel refactor 2017-03-08 00:52:41 -05:00
kernel.h Cycles: CPU implementation of split kernel 2017-03-08 00:52:41 -05:00