blender/intern/cycles/kernel
Brecht Van Lommel 2b39214c4d Cycles Volume Render: add support for overlapping volume objects.
This works pretty much as you would expect, overlapping volume objects gives
a more dense volume. What did change is that world volume shaders are now
active everywhere, they are no longer excluded inside objects.

This may not be desirable and we need to think of better control over this.
In some cases you clearly want it to happen, for example if you are rendering
a fire in a foggy environment. In other cases like the inside of a house you
may not want any fog, but it doesn't seem possible in general for the renderer
to automatically determine what is inside or outside of the house.

This is implemented using a simple fixed size array of shader/object ID pairs,
limited to max 15 overlapping objects. The closures from all shaders are put
into a single closure array, exactly the same as if an add shader was used to
combine them.
2013-12-28 20:12:11 +01:00
..
closure Cycles Volume Render: work on nodes and closures. 2013-12-28 16:57:02 +01:00
osl Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
shaders Cycles Volume Render: work on nodes and closures. 2013-12-28 16:57:02 +01:00
svm Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
CMakeLists.txt Cycles Volume Render: support for rendering of homogeneous volume with absorption. 2013-12-28 16:57:10 +01:00
kernel_accumulate.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_bvh_subsurface.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_bvh_traversal.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_bvh.h Cycles / Hair: Avoid duplicate calculations and remove redundant if branch, instead add the condition to the one above. 2013-12-26 21:52:46 +01:00
kernel_camera.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_compat_cpu.h Cycles: Move SIMD utility functions into its own file. 2013-12-27 21:30:21 +01:00
kernel_compat_cuda.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_compat_opencl.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_curve.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_differential.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_displace.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_emission.h Cycles Volume Render: add flags to quickly detect when objects have a volume shader. 2013-12-28 16:57:10 +01:00
kernel_film.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_globals.h Fix T37264: cycles CPU render had limited number of float images, bumped to 1024. 2013-12-14 15:07:46 +01:00
kernel_jitter.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_light.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_math.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
kernel_montecarlo.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_object.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_passes.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_path_state.h Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
kernel_path.h Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
kernel_primitive.h Cycles: add ptex face ID and UV attributes. 2013-11-28 02:11:42 +01:00
kernel_projection.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_random.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_shader.h Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
kernel_shadow.h Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
kernel_sse2.cpp Better fix for #36935 and 36316: 2013-10-05 19:56:34 +00:00
kernel_sse3.cpp Better fix for #36935 and 36316: 2013-10-05 19:56:34 +00:00
kernel_sse41.cpp Cycles: test code for sse 4.1 kernel and alignment for some vector types. 2013-11-22 14:42:41 +01:00
kernel_subsurface.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_textures.h Cycles: relicense GNU GPL source code to Apache version 2.0. 2013-08-18 14:16:15 +00:00
kernel_triangle.h Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel_types.h Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
kernel_volume.h Cycles Volume Render: add support for overlapping volume objects. 2013-12-28 20:12:11 +01:00
kernel.cl Cycles: change __device and similar qualifiers to ccl_device in kernel code. 2013-11-18 08:48:15 +01:00
kernel.cpp Cycles: viewport render now takes scene color management settings into account, 2013-08-30 23:49:38 +00:00
kernel.cu Cycles: viewport render now takes scene color management settings into account, 2013-08-30 23:49:38 +00:00
kernel.h Cycles: test code for sse 4.1 kernel and alignment for some vector types. 2013-11-22 14:42:41 +01:00
SConscript Cycles / CUDA: 2013-10-08 15:29:28 +00:00