blender/intern/cycles/render
Sergey Sharybin 4beae09bae Cycles: Enable unaligned BVH builder for scenes with hair
This commit enables new unaligned BVH builder and traversal for scenes
with hair. This happens automatically, no need of manual control over
this.

There are some possible optimization still to happen here and there,
but overall there's already nice speedup:

                      Master                 Hair BVH
  bunny.blend         8:06.54                 5:57.14
  victor.blend       16:07.44                15:37.35

Unfortunately, such more complexity is not really coming for free,
so there's some downsides, but those are within acceptable range:

                      Master                Hair BVH
  classroom.blend     5:31.79                5:35.11
  barcelona.blend     4:38.58                4:44.51

Memory usage is also somewhat bigger for hairy scenes, but speed
benefit pays well for that. Additionally as was mentioned in one
of previous commits we can add an option to disable hair BVH and
have similar render time but have memory saving.

Reviewers: brecht, dingto, lukasstockner97, juicyfruit, maiself

Differential Revision: https://developer.blender.org/D2086
2016-07-07 17:25:48 +02:00
..
attribute.cpp Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
attribute.h Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02: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 Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
bake.cpp Fix T46207: Slow OpenCL GPU bake and blown out baking Cycles render 2016-05-31 17:48:42 +02:00
bake.h Fix T46550: Cycles combined baking black in some cases. 2016-02-06 21:02:02 +01:00
buffers.cpp Code refactor: nodify Cycles background and film. 2016-05-22 17:29:25 +02:00
buffers.h Code refactor: nodify Cycles background and film. 2016-05-22 17:29:25 +02:00
camera.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
camera.h Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
CMakeLists.txt Code refactor: add generic Cycles node infrastructure. 2016-05-22 17:29:24 +02: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 Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
film.h Code refactor: nodify Cycles background and film. 2016-05-22 17:29:25 +02:00
graph.cpp Fix issues with node deduplication in Cycles shader graph. 2016-06-19 20:17:27 +02:00
graph.h Code refactor: small code simplification for Cycles constant folding. 2016-06-19 20:17:27 +02:00
image.cpp Fix use of uninitialized variable in Cycles OpenCL image textures. 2016-07-02 21:54:49 +02:00
image.h Fix Cycles OpenCL not taking Extend and Clip extension types into account. 2016-07-01 23:48:31 +02:00
integrator.cpp Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
integrator.h Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
light.cpp Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
light.h Code refactor: nodify Cycles shader and lights. 2016-05-22 17:29:25 +02:00
mesh_displace.cpp Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
mesh.cpp Cycles: Enable unaligned BVH builder for scenes with hair 2016-07-07 17:25:48 +02:00
mesh.h Cycles: Implement unaligned nodes BVH builder 2016-07-07 17:25:48 +02:00
nodes.cpp Fix T48783: OSL render errors after recent refactoring. 2016-07-03 13:08:21 +02:00
nodes.h Cycles: Deduplicate Vector and RGB Curve nodes 2016-06-21 00:19:51 +02:00
object.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
object.h Cycles: Ignore zero size instances in BVH 2016-06-06 09:23:53 +02:00
osl.cpp Cycles: Fix unhandled enumerator in OSL switch 2016-06-13 10:15:39 +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: Add human readable sizes to debug output 2016-05-31 06:13:54 -04:00
scene.h Cycles: Reduce memory usage by de-duplicating triangle storage 2016-07-07 17:25:48 +02:00
session.cpp Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
session.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
shader.cpp Cycles: nodify shader nodes 2016-06-11 20:32:24 +02:00
shader.h Code refactor: nodify Cycles shader and lights. 2016-05-22 17:29:25 +02: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: nodify shader nodes 2016-06-11 20:32:24 +02:00
svm.h Code refactor: make ShaderNode match Node a bit more, reusing types and enums. 2016-05-28 15:49:15 +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: Resumable render implementation for Cycles 2016-03-30 16:02:27 +02:00
tile.h Cycles: Resumable render implementation for Cycles 2016-03-30 16:02:27 +02:00