blender/intern/cycles/render
Kévin Dietrich 7377d411b4 Cycles volume: fast empty space optimization by generating a tight mesh
around the volume.

We generate a tight mesh around the active voxels of the volume in order
to effectively skip empty space, and start volume ray marching as close
to interesting volume data as possible. See code comments for details on
how the mesh generation algorithm works.

This gives up to 2x speedups in some scenes.

Reviewed by: brecht, dingto

Reviewers: #cycles

Subscribers: lvxejay, jtheninja, brecht

Differential Revision: https://developer.blender.org/D3038
2018-03-01 11:54:01 +01:00
..
attribute.cpp Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
attribute.h Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
background.cpp Cycles: option to make background visible through glass transparent. 2018-01-12 01:34:28 +01:00
background.h Cycles: option to make background visible through glass transparent. 2018-01-12 01:34:28 +01:00
bake.cpp Fix T53607: Cycles normal map baking problem when there is no bump. 2017-12-25 23:05:45 +01:00
bake.h Cycles: antialias normal baking if the mesh has a bump map. 2017-11-07 22:35:12 +01:00
buffers.cpp Cycles: Remove unneeded include statements 2018-01-19 15:19:45 +01:00
buffers.h Cycles: Add per-tile render time debug pass 2017-11-17 16:40:24 +01:00
camera.cpp Cycles: adaptive subdivision support for panoramic cameras. 2018-01-12 23:57:45 +01:00
camera.h Code refactor: adjust camera update for easier code sharing with kernel. 2018-01-12 23:57:45 +01:00
CMakeLists.txt Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
constant_fold.cpp Fix missing return error introduced by last commit 2017-07-03 12:12:27 +02:00
constant_fold.h Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
curves.cpp Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
curves.h Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
film.cpp Fix Cycles viewport render not updating when tweaking displacement shader. 2018-01-29 17:07:08 +01:00
film.h Cycles: Implement denoising option for reducing noise in the rendered image 2017-05-07 14:40:58 +02:00
graph.cpp Fix Cycles viewport render not updating when tweaking displacement shader. 2018-01-29 17:07:08 +01:00
graph.h Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
image.cpp Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
image.h Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
integrator.cpp Cycles: random walk subsurface scattering. 2018-02-09 19:58:33 +01:00
integrator.h Cycles: remove option to disable transparent shadows globally. 2017-08-07 14:01:24 +02:00
light.cpp Cycles: Make per-object random value output also work for Lamps 2017-11-14 04:17:54 +01:00
light.h Cycles: Make per-object random value output also work for Lamps 2017-11-14 04:17:54 +01:00
mesh_displace.cpp Code refactor: device memory cleanups, preparing for mapped host memory. 2017-11-05 15:22:04 +01:00
mesh_subdivision.cpp Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
mesh_volume.cpp Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
mesh.cpp Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
mesh.h Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
nodes.cpp Code cleanup: refactor Cycles image metadata retrieval to use a struct. 2018-02-27 23:42:30 +01:00
nodes.h Cycles: add Principled Volume shader. 2018-02-23 18:57:58 +01:00
object.cpp Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
object.h Fix typo in struct name obejct to object. 2018-02-05 11:31:33 +02:00
osl.cpp Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
osl.h Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
particles.cpp Cycles: restore Particle Info Index for now, keep it next to Random. 2018-02-14 21:45:57 +01:00
particles.h Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
scene.cpp Cycles volume: fast empty space optimization by generating a tight mesh 2018-03-01 11:54:01 +01:00
scene.h Cycles: Replace use_qbvh boolean flag with an enum-based property 2018-01-22 17:19:20 +01:00
session.cpp Cycles: Replace __MAX_CLOSURE__ build option with runtime integrator variable 2017-11-09 01:04:06 -05:00
session.h Cycles: disable progressive refine if denoising or save buffers is used. 2017-10-21 20:29:21 +02:00
shader.cpp Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
shader.h Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
sobol.cpp Cycles: Remove unneeded include statements 2018-01-19 15:19:45 +01:00
sobol.h Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
svm.cpp Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
svm.h Code refactor: improve attribute handling for optional volume attributes. 2018-02-23 18:57:58 +01:00
tables.cpp Cycles: Remove unneeded include statements 2018-01-19 15:19:45 +01:00
tables.h Cycles: Make all #include statements relative to cycles source directory 2017-03-29 13:41:11 +02:00
tile.cpp Fix issue with resumable rendering in recent changes. 2017-10-21 20:57:52 +02:00
tile.h Cycles: disable progressive refine if denoising or save buffers is used. 2017-10-21 20:29:21 +02:00