Cycles: Added Embree as BVH option for CPU renders.
authorStefan Werner <stefan.werner@tangent-animation.com>
Wed, 7 Nov 2018 11:58:12 +0000 (12:58 +0100)
committerStefan Werner <stefan.werner@tangent-animation.com>
Wed, 7 Nov 2018 11:58:12 +0000 (12:58 +0100)
commit2c5531c0a521119a2f5c88b4ba2a67234c537d2b
treee1b27e6714a5746840cce4421cb9a3877c14fc97
parent8a014e780e504cb6e851af9a6c1b591e1bd9da0f
Cycles: Added Embree as BVH option for CPU renders.

Note that this is turned off by default and must be enabled at build time with the CMake WITH_CYCLES_EMBREE flag.
Embree must be built as a static library with ray masking turned on, the `make deps` scripts have been updated accordingly.
There, Embree is off by default too and must be enabled with the WITH_EMBREE flag.

Using Embree allows for much faster rendering of deformation motion blur while reducing the memory footprint.

TODO: GPU implementation, deduplication of data, leveraging more of Embrees features (e.g. tessellation cache).

Differential Revision: https://developer.blender.org/D3682
37 files changed:
CMakeLists.txt
build_files/build_environment/CMakeLists.txt
build_files/build_environment/cmake/embree.cmake [new file with mode: 0644]
build_files/build_environment/cmake/harvest.cmake
build_files/build_environment/cmake/options.cmake
build_files/build_environment/cmake/versions.cmake
build_files/cmake/Modules/FindEmbree.cmake [new file with mode: 0644]
build_files/cmake/macros.cmake
build_files/cmake/platform/platform_apple.cmake
build_files/cmake/platform/platform_unix.cmake
build_files/cmake/platform/platform_win32.cmake
build_files/cmake/platform/platform_win32_msvc.cmake [new file with mode: 0644]
intern/cycles/CMakeLists.txt
intern/cycles/app/CMakeLists.txt
intern/cycles/blender/addon/properties.py
intern/cycles/blender/addon/ui.py
intern/cycles/blender/blender_python.cpp
intern/cycles/blender/blender_sync.cpp
intern/cycles/bvh/CMakeLists.txt
intern/cycles/bvh/bvh.cpp
intern/cycles/bvh/bvh.h
intern/cycles/bvh/bvh_embree.cpp [new file with mode: 0644]
intern/cycles/bvh/bvh_embree.h [new file with mode: 0644]
intern/cycles/bvh/bvh_params.h
intern/cycles/cmake/external_libs.cmake
intern/cycles/device/device_cpu.cpp
intern/cycles/kernel/CMakeLists.txt
intern/cycles/kernel/bvh/bvh.h
intern/cycles/kernel/bvh/bvh_embree.h [new file with mode: 0644]
intern/cycles/kernel/geom/geom_curve_intersect.h
intern/cycles/kernel/geom/geom_object.h
intern/cycles/kernel/kernel_types.h
intern/cycles/render/mesh.cpp
intern/cycles/render/scene.cpp
intern/cycles/render/scene.h
intern/cycles/util/util_transform.h
source/blender/python/intern/CMakeLists.txt