Releases: RenderKit/embree
Releases · RenderKit/embree
Embree v3.0.0
- Switched to a new version of the API which provides improved flexibility but is not backwards compatible. Please see "Upgrading from Embree 2 to Embree 3" section of documentation for upgrade instructions. In particular, we provide a python script that performs most of the transition work.
- User geometries inside an instanced scene and a top-level scene no longer need to handle instID field of ray differently. They both just need to copy the context.instID into the ray.instID field.
- Support for context filter functions that can get assigned to a ray query.
- User geometries can now invoke filter functions using the rtcFilterIntersection and rtcFilterOcclusion calls.
- Higher flexibility through specifying build quality per scene and geometry.
- Geometry normal uses commonly used right hand rule from now on.
- Added self intersection avoidance to ribbon curves and lines. Applications do not have to implement self intersections workarounds for these primitive types anymore.
- Added support for 4 billion primitives in a single scene.
- Removed RTC_MAX_USER_VERTEX_BUFFERS and RTC_MAX_INDEX_BUFFERS limitation.
- Reduced memory consumption by 192 bytes per instance.
- Fixed some performance issues on AVX-512 architectures.
- Individual Contributor License Agreement (ICLA) and Corporate Contributor License Agreement (CCLA) no longer required to contribute to the project.
Embree v2.17.3
- Fixed GCC compile warning in debug mode.
- Fixed bug of ribbon curve intersector when derivative was zero.
- Installing all static libraries when EMBREE_STATIC_LIB is enabled.
Embree v3.0.0-beta.0
- Switched to a new version of the API which provides improved flexibility but is not backwards compatible. Please see "Upgrading from Embree 2 to Embree 3" section of documentation for upgrade instructions. In particular, we provide a python script that performs most of the transition work.
- User geometries inside an instanced scene and a top-level scene no longer need to handle instID field of ray differently. They both just need to copy the context.instID into the ray.instID field.
- Support for context filter functions that can get assigned to a ray query.
- User geometries can now invoke filter functions using the rtcFilterIntersection and rtcFilterOcclusion calls.
- Higher flexibility through specifying build quality per scene and geometry.
- Geometry normal uses commonly used right hand rule from now on.
- Added self intersection avoidance to ribbon curves and lines. Applications do not have to implement self intersections workarounds for these primitive types anymore.
- Added support for 4 billion primitives in a single scene.
- Removed RTC_MAX_USER_VERTEX_BUFFERS and RTC_MAX_INDEX_BUFFERS limitation.
- Reduced memory consumption by 192 bytes per instance.
- Individual Contributor License Agreement (ICLA) and Corporate Contributor License Agreement (CCLA) no longer required to contribute to the project.
Embree v2.17.2
New Features in Embree 2.17.2
- Made BVH build of curve geometry deterministic.
Embree v2.17.1
- Improved performance of occlusion ray packets by up to 50%.
- Fixed detection of Clang for CMake 3 under MacOSX.
- Fixed AVX code compilation issue with GCC 7 compiler caused by
explicit use of vzeroupper intrinsics. - Fixed an issue where Clang address sanitizer reported an error in
the internal tasking system. - Added fix to compile on 32 bit Linux distribution.
- Fixed some wrong relative include paths in Embree.
- Improved performance of robust single ray mode by 5%.
- Added EMBREE_INSTALL_DEPENDENCIES option (default OFF) to enable
installing of Embree dependencies. - Fixed performance regression for occlusion ray streams.
- Reduced temporary memory requirements of BVH builder for curves and
line segments. - Fixed performance regression for user geometries and packet ray tracing.
- Fixed bug where wrong closest hit was reported for very curvy hair segment.
Embree v2.17.0
- Improved packet ray tracing performance for coherent rays by 10-60% (requires RTC_INTERSECT_COHERENT flag).
- Improved ray tracing performance for incoherent rays on AVX-512 architectures by 5%.
- Improved ray tracing performance for streams of incoherent rays by 5-15%.
- Fixed tbb_debug.lib linking error under Windows.
- Fast coherent ray stream and packet code paths now also work in robust mode.
- Using less agressive prefetching for large BVH nodes which results in 1-2% higher ray tracing performance.
- Precompiled binaries have stack-protector enabled, except for traversal kernels. BVH builders can be slightly slower due to this change. If you want stack-protectors disabled please turn off EMBREE_STACK_PROTECTOR in cmake and build the binaries.
- When enabling ISAs individually, the 8-wide BVH was previously only available when the AVX ISA was also selected. This issue is now fixed, and one can enable only AVX2 and still get best performance by using an 8-wide BVH.
- Fixed rtcOccluded1 and rtcOccluded1Ex API functions which were broken in ISPC.
- Providing MSI installer for Windows
Embree v2.16.5
- Bugfix in the robust triangle intersector that rarely caused NaNs.
- Fixed bug in hybrid traversal kernel when BVH leaf was entered with no
active rays. This rarely caused crashes when used with instancing. - Fixed bug introduced in Embree 2.16.2 which caused instancing not to
work properly when a smaller than the native SIMD width was
used in ray packet mode. - Fixed bug in the curve geometry intersector that caused rendering
artefacts for Bézier curves with p0=p1 and/or p2=p3. - Fixed bug in the curve geometry intersector that caused hit results
with NaNs to be reported. - Fixed masking bug that caused rare cracks in curve geometry.
- Enabled support for SSE2 in precompiled binaries again.
Embree v2.16.4
- Bugfix in the ribbon intersector for hair primitives. Non-normalized rays caused wrong intersection distance to be reported.
Embree v2.16.3
- Increased accuracy for handling subdivision surfaces. This fixes cracks when using displacement mapping but reduces performance at irregular vertices.
- Fixed a bug where subdivision geometry was not properly updated when modifying only the tesselation rate and vertex array.
Embree v2.16.2
- Fixed bug that caused NULL intersection context in intersection filter when instancing was used.
- Fixed an issue where uv's where outside the triangle (or quad) for very small triangles (or quads). In robust mode we improved the uv calculation to avoid that issue, in fast mode we accept that inconsistency for better performance.
- Changed UV encoding for non-quad subdivision patches to allow a subpatch UV range of
[-0.5,1.5[
. Using this new encoding one can use finite differences to calculate derivatives if required. Please adjust your code in case you rely on the old encoding.