blender/intern/cycles/render
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
..
attribute.cpp Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv 2016-08-07 11:13:11 -04:00
attribute.h Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv 2016-08-07 11:13:11 -04:00
background.cpp Fix Cycles debug build assert on some platforms, tighten checks to avoid this in the future. 2016-06-12 17:35:15 +02:00
background.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
bake.cpp Cycles: Add names to buffer allocations 2017-03-08 01:24:55 -05:00
bake.h Fix T50687: Cycles baking time estimate and progress bar doesn't work / progress when baking with high samples 2017-02-16 17:15:08 +01:00
buffers.cpp Cycles: Add names to buffer allocations 2017-03-08 01:24:55 -05:00
buffers.h Code refactor: nodify Cycles background and film. 2016-05-22 17:29:25 +02:00
camera.cpp Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
camera.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
CMakeLists.txt Cycles microdisplacement: ngons and attributes for subdivision meshes 2016-07-29 03:36:30 -04:00
constant_fold.cpp Cycles: implement partial constant folding for exponentiation. 2016-10-01 14:37:03 +03:00
constant_fold.h Cycles: implement partial constant folding for exponentiation. 2016-10-01 14:37:03 +03:00
curves.cpp Cycles: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
curves.h Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
film.cpp Cycles: Use dedicated debug passes for traversed nodes and intersection tests 2017-01-12 13:44:35 +01:00
film.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
graph.cpp Cycles: Optimize shaders earlier to skip unneccessary attributes for noninteractive rendering 2017-03-27 05:36:49 +02:00
graph.h Cycles: Optimize shaders earlier to skip unneccessary attributes for noninteractive rendering 2017-03-27 05:36:49 +02:00
image.cpp Fix T50968: Cycles crashes when image datablock points to a directory 2017-03-17 14:47:12 +01:00
image.h Fix T50032: Wrong render result when same image is used with and without alpha 2017-01-25 14:02:59 +01:00
integrator.cpp Cycles: Fix rng_state initialization when using resumable rendering 2017-02-01 05:43:17 +01:00
integrator.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
light.cpp Cycles: Add names to buffer allocations 2017-03-08 01:24:55 -05:00
light.h Cycles: Implement texture coordinates for Point, Spot and Area Lamps 2016-10-29 19:24:08 +02:00
mesh_displace.cpp Cycles: Add names to buffer allocations 2017-03-08 01:24:55 -05:00
mesh_subdivision.cpp Cycles: Remove using namespace hell 2017-01-19 14:51:11 +01:00
mesh.cpp Cycles: Pass special flag whether BVH motion steps are used 2017-02-15 12:45:06 +01:00
mesh.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
nodes.cpp Cycles: Forgot this in previous commit 2017-02-27 12:54:35 +01:00
nodes.h Cycles: fixed warnings 2017-03-22 12:28:01 +01:00
object.cpp Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
object.h Cycles: First implementation of shadow catcher 2017-03-27 10:46:03 +02:00
osl.cpp Cycles: Optimize shaders earlier to skip unneccessary attributes for noninteractive rendering 2017-03-27 05:36:49 +02:00
osl.h Cycles: nodify shader nodes 2016-06-11 20:32:24 +02:00
particles.cpp Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
particles.h Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
scene.cpp Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
scene.h Cycles: Fix wrong hair render results when using BVH motion steps 2017-02-15 12:45:04 +01:00
session.cpp Cycles: Update remaining time once per second without waiting for a tile change 2017-03-20 15:28:36 +01:00
session.h Cycles: Refactor Progress system to provide better estimates 2016-12-03 05:02:21 +01:00
shader.cpp Land D2339 by bliblu bli 2016-12-09 08:28:04 -07:00
shader.h Cycles: Fix strict -Wpedantic warnings with GCC 2017-03-06 14:18:26 +01:00
sobol.cpp Fix #29528: crash adding subsurf modifier in a particular scene with viewport render. 2011-12-08 21:55:35 +00:00
sobol.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm.cpp Cycles: Optimize shaders earlier to skip unneccessary attributes for noninteractive rendering 2017-03-27 05:36:49 +02:00
svm.h Cycles: Implement threaded SVM nodes compilation 2016-09-13 13:46:49 +02:00
tables.cpp Cycles: Fix two small memory leaks and deduplicate table freeing 2016-05-08 17:44:03 +02:00
tables.h Cycles: Fix two small memory leaks and deduplicate table freeing 2016-05-08 17:44:03 +02:00
tile.cpp Cycles: Remove obsolete variable from the TileManager 2017-03-24 19:44:05 +01:00
tile.h Cycles: Remove obsolete variable from the TileManager 2017-03-24 19:44:05 +01:00