blender/intern/cycles/util
Sergey Sharybin b03e66e75f Cycles: Implement unaligned nodes BVH builder
This is a special builder type which is allowed to orient nodes to
strands direction, hence minimizing their surface area in comparison
with axis-aligned nodes. Such nodes are much more efficient for hair
rendering.

Implementation of BVH builder is based on Embree, and generally idea
there is to calculate axis-aligned SAH and oriented SAH and if SAH
of oriented node is smaller than axis-aligned SAH we create unaligned
node.

We store both aligned and unaligned nodes in the same tree (which
seems to be different from what Embree is doing) so we don't have
any any extra calculations needed to set up hair ray for BVH
traversal, hence avoiding any possible negative effect of this new
BVH nodes type.

This new builder is currently not in use, still need to make BVH
traversal code aware of unaligned nodes.
2016-07-07 17:25:48 +02:00
..
CMakeLists.txt Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_algorithm.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_aligned_malloc.cpp Cycles: Some cleanup, should be no functional changes 2016-02-16 15:33:00 +01:00
util_aligned_malloc.h Cycles: Use size_t for aligned allocator 2015-02-19 22:19:29 +05:00
util_args.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_atomic.h Cycles: Code cleanup, spaces around keyword and brace 2015-06-01 19:49:52 +05:00
util_boundbox.h Cycles: Implement unaligned nodes BVH builder 2016-07-07 17:25:48 +02:00
util_color.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_debug.cpp Cycles: Make CUDA adaptive feature compile a Debug flag. 2016-05-06 23:13:33 +02:00
util_debug.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_foreach.h Optionally use c++11 stuff instead of boost in cycles where possible. We do and continue to depend on boost though 2015-03-29 22:12:40 +02:00
util_function.h Cycles: Correction to previous commit: non-msvc compilers also should use nullptr 2015-03-30 15:17:09 +05:00
util_guarded_allocator.cpp Cycles: Implement guarded allocator for STL classes 2015-02-15 02:01:48 +05:00
util_guarded_allocator.h Cycles: Stop rendering when bad_alloc happens 2016-04-20 16:19:49 +02:00
util_half.h Cycles: Support half and half4 textures. 2016-06-19 17:31:16 +02:00
util_hash.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
util_image.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_list.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_logging.cpp Cycles: Be ready for gflags namespace auto-detect 2015-01-01 01:31:08 +05:00
util_logging.h Cycles: Log whch optimizations are used for CPU kernels 2016-01-06 20:25:19 +05:00
util_map.h Optionally use c++11 stuff instead of boost in cycles where possible. We do and continue to depend on boost though 2015-03-29 22:12:40 +02:00
util_math_cdf.cpp Cycles: Support user-defined shutter curve 2015-10-28 02:43:06 +05:00
util_math_cdf.h Cycles: Fix compilation error with MSVC 2015-10-28 17:33:31 +05:00
util_math_fast.h Code cleanup: resolve minor Cycles todo's. 2016-02-06 11:56:37 +01:00
util_math.h Cycles: Add multi-scattering, energy-conserving GGX as an option to the Glossy, Anisotropic and Glass BSDFs 2016-06-23 22:57:26 +02:00
util_md5.cpp Cycles: Cleanup, indentation and braces 2016-02-03 15:00:55 +01:00
util_md5.h Cycles: add utility function to calculate MD5 hash of a given string 2015-11-21 22:07:59 +05:00
util_opengl.h Cycles: Post-reintegration tweaks to ensure things do compile 2015-01-01 01:31:08 +05:00
util_optimization.h Cycles: Minor cleanup, whitespace around keyword and preprocessor indent 2016-04-13 08:58:52 +02:00
util_param.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_path.cpp Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_path.h Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_progress.h Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_queue.h Cycles: Avoid recursion when doing constant fold 2015-12-02 16:19:39 +05:00
util_set.h Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_simd.cpp Cycles: Add an option to build single kernel only which fits current CPU 2016-03-25 16:09:05 +01:00
util_simd.h Cycles: Move non-vectorized bitscan() to util 2016-03-31 10:06:21 +02:00
util_sky_model_data.h Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sky_model.cpp Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_sky_model.h Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sseb.h Cycles: add better specializations for SSE shuffle function and few more wrappers. 2015-03-07 17:25:21 +00:00
util_ssef.h Cycles: Cleanup, indentation and braces 2016-02-03 15:00:55 +01:00
util_ssei.h Cycles: add better specializations for SSE shuffle function and few more wrappers. 2015-03-07 17:25:21 +00:00
util_stack_allocator.h Cycles: Fix issues with stack allocator in MSVC 2016-04-25 13:50:27 +02:00
util_stats.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_string.cpp Cycles: Fix corner case of human readable number returning empty string 2016-06-27 13:49:25 +05:00
util_string.h Cycles: Add human readable sizes to debug output 2016-05-31 06:13:54 -04:00
util_system.cpp Cycles: Fix compilation error on OSX 2016-06-06 13:52:57 +02:00
util_system.h Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_task.cpp Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_task.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_texture.h Cycles: Support half and half4 textures. 2016-06-19 17:31:16 +02:00
util_thread.cpp Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_thread.h Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_time.cpp Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_time.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_transform.cpp Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_transform.h Cycles: Implement unaligned nodes BVH builder 2016-07-07 17:25:48 +02:00
util_types.h Cycles: Make Blender importer more forward compatible 2016-02-12 15:27:33 +01:00
util_vector.h Code refactor: add generic Cycles node infrastructure. 2016-05-22 17:29:24 +02:00
util_version.h Cleanup string includes after versioning commits 2016-04-13 09:45:32 +02:00
util_view.cpp Fix Cycles compile errors with GCC due to double promotion as errors. 2016-05-22 19:17:22 +02:00
util_view.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_windows.cpp Fix compilation error on 32 bit Windows 2016-06-06 14:01:49 +02:00
util_windows.h Cycles: Add support of processor groups 2016-06-06 09:14:37 +02:00
util_xml.h Cycles: Fix compilation error when OIIO is compiled with external PugiXML parser 2015-01-01 01:31:07 +05:00