Skip to content

Releases: RenderKit/embree

Embree v2.15.0

22 Mar 09:35
Compare
Choose a tag to compare
  • Added rtcCommitJoin mode that allows thread to join a build operation. When using the internal tasking system this allows Embree to solely use the threads that called rtcCommitJoin to build the scene, while previously also normal worker threads participated in the build. You should no longer use rtcCommit to join a build.
  • Added rtcDeviceSetErrorFunction2 API call, which sets an error callback function which additionally gets passed a user provided pointer (rtcDeviceSetErrorFunction is now deprecated).
  • Added rtcDeviceSetMemoryMonitorFunction2 API call, which sets a memory monitor callback function which additionally get passed a user provided pointer. (rtcDeviceSetMemoryMonitorFunction is now deprecated).
  • Build performance for hair geometry improved by up to 2x.
  • Standard BVH build performance increased by 5%.
  • Added API extension to use internal Morton-code based builder, the standard binned-SAH builder, and the spatial split-based SAH builder.
  • Added support for BSpline hair and curves. Embree uses either the Bezier or BSpline basis internally, and converts other curves, which requiring more memory during rendering. For reduced memory consumption set the EMBREE_NATIVE_SPLINE_BASIS to the basis your application uses (which is set to BEZIER by default).
  • Setting the number of threads through tbb::taskscheduler_init object on the application side is now working properly.
  • Windows and Linux releases are build using AVX512 support.
  • Implemented hybrid traversal for hair and line segments for improved ray packet performance.
  • AVX512 code compiles with Clang 4.0.0
  • Fixed crash when ray packets were disabled in CMake.

Embree v2.14.0

09 Feb 09:14
Compare
Choose a tag to compare
  • Added ignore_config_files option to init flags that allows the
    application to ignore Embree configuration files.
  • Face-varying interpolation is now supported for subdivision surfaces.
  • Up to 16 user vertex buffers are supported for vertex
    attribute interpolation.
  • Deprecated rtcSetBoundaryMode function, please use the new
    rtcSetSubdivisionMode function.
  • Added RTC_SUBDIV_PIN_BOUNDARY mode for handling boundaries of
    subdivision meshes.
  • Added RTC_SUBDIV_PIN_ALL mode to enforce linear interpolation
    for subdivision meshes.
  • Optimized object generation performance for dynamic scenes.
  • Reduced memory consumption when using lots of small dynamic objects.
  • Fixed bug for subdivision surfaces using low tessellation rates.
  • Hair geometry now uses a new ribbon intersector that intersects with
    ray-facing quads. The new intersector also returns the
    v-coordinate of the hair intersection, and fixes artefacts at junction
    points between segments, at the cost of a small performance hit.
  • Added rtcSetBuffer2 function, that additionally gets the number of
    elements of a buffer. In dynamic scenes, this function allows to
    quickly change buffer sizes, making it possible to change the number of
    primitives of a mesh or the number of crease features for subdivision
    surfaces.
  • Added simple 'viewer_anim' tutorial for rendering key
    frame animations and 'buildbench' for measuring BVH (re-)build
    performance for static and dynamic scenes.
  • Added more AVX512 optimizations for future architectures.

Embree v2.13.0

22 Nov 08:15
Compare
Choose a tag to compare
  • Improved performance for compact (but not robust) scenes.
  • Added robust mode for motion blurred triangles and quads.
  • Added fast dynamic mode for user geometries.
  • Up to 20% faster BVH build performance on the second generation
    Intel® Xeon Phi™ processor codenamed Knights Landing.
  • Improved quality of the spatial split builder.
  • Improved performance for coherent streams of ray packets (SOA layout),
    e.g. for fast primary visibility.
  • Various bug fixes in tessellation cache, quad-based spatial
    split builder, etc.

Embree v2.12.0

18 Oct 14:08
Compare
Choose a tag to compare
  • Added support for multi-segment motion blur for all primitive
    types.
  • API support for stream of pointers to single rays (rtcIntersect1Mp and
    rtcOccluded1Mp)
  • Improved BVH refitting performance for dynamic scenes.
  • Improved high-quality mode for quads (added spatial split builder
    for quads)
  • Faster dynamic scenes for triangle and quad-based meshes on AVX2
    enabled machines.
  • Performance and correctness bugfix in optimization for streams of
    coherent (single) rays.
  • Fixed large memory consumption (issue introduced in Embree
    v2.11.0). If you use Embree v2.11.0 please upgrade to Embree
    v2.12.0.
  • Reduced memory consumption for dynamic scenes containing small meshes.
  • Added support to start and affinitize TBB worker threads by passing
    "start_threads=1,set_affinity=1" to rtcNewDevice. These settings
    are recommended on systems with a high thread count.
  • rtcInterpolate2 can now be called within a displacement shader.
  • Added initial support for Microsoft's Parallel Pattern Library (PPL) as
    tasking system alternative (for optimial performance TBB is highly recommended).
  • Updated to TBB 2017 which is released under the Apache v2.0
    license.
  • Dropped support for Visual Studio 2012 Win32 compiler. Visual
    Studio 2012 x64 is still supported.

Embree v2.11.0

01 Sep 15:43
Compare
Choose a tag to compare
  • Improved performance for streams of coherent (single) rays flagged
    with RTC_INTERSECT_COHERENT. For such coherent ray streams, e.g.
    primary rays, the performance typically improves by 1.3–2×.
  • New spatial split BVH builder for triangles, which is 2–6× faster
    than the previous version and more memory conservative.
  • Improved performance and scalability of all standard BVH builders on
    systems with large core counts.
  • Fixed rtcGetBounds for motion blur scenes.
  • Thread affinity is now on by default when running on the latest
    Intel® Xeon Phi™ processor.
  • Added initial AVX512 support for future Intel® Xeon processors.

Embree v2.10.0

20 May 12:06
Compare
Choose a tag to compare
  • Added a new curve geometry which renders the sweep surface of a
    circle along a Bézier curve.
  • Intersection filters can update the 'tfar' ray distance.
  • Geometry types can get disabled at compile time.
  • Modified and extended the ray stream API.
  • Added new callback mechanism for the ray stream API.
  • Improved ray stream performance (up to 5-10%).
  • Up to 20% faster morton builder on machines with large core counts.
  • Lots of optimizations for the second generation Intel® Xeon Phi™ coprocessor codenamed Knights Landing.
  • Added experimental support for compressed BVH nodes (reduces node
    size to 56--62% of uncompressed size). Compression introduces a
    typical performance overhead of ~10%.
  • Bugfix in backface culling mode. We do now properly cull the
    backfaces and not the frontfaces.
  • Feature freeze for the first generation Intel® Xeon Phi™ coprocessor
    codenamed Knights Corner. We will still maintain and add bug fixes
    to Embree v2.9.0, but Embree 2.10 and future versions will no longer support it.

Embree v2.9.0

10 Mar 12:12
Compare
Choose a tag to compare
  • Improved shadow ray performance (10% to 100% depending on the scene).
  • Added initial support for ray streams (10% to 30% higher performance depending on ray coherence in the stream).
  • Added support to calculate second order derivatives using the rtcInterpolate2 function.
  • Changed the parametrization for triangular subdivision faces to the same scheme used for pentagons.
  • Added support to query the Embree configuration using the rtcDeviceGetParameter function.

Embree v2.8.0

22 Dec 11:57
Compare
Choose a tag to compare
  • Added support for line segment geometry.
  • Added support for quad geometry (replaces triangle-pairs feature).
  • Added support for linear motion blur of user geometries.
  • Improved performance through AVX512 optimizations.
  • Improved performance of lazy scene build (when using TBB 4.4 update 2).
  • Improved performance through huge page support under Linux.

Embree v2.7.1

30 Oct 16:52
Compare
Choose a tag to compare
  • Internal tasking system supports cancellation of build operations.
  • ISPC mode for robust and compact scenes got significantly faster (implemented hybrid traversal for bvh4.triangle4v and bvh4.triangle4i).
  • Hair rendering got faster as we fixed some issues with the SAH heuristic cost factors.
  • BVH8 got slight faster for single ray traversal (improves sorting when hitting more than 4 boxes).
  • BVH build performance got up to 30% faster on CPUs with high core counts (improved parallel partition code).
  • High quality build mode again working properly (spatial splits had been deactivated in v2.7.0 due to some bug).
  • Support for merging two adjacent triangles sharing a common edge into a triangle-pair primitive (can reduce memory consumption and BVH build times by up to 50% for mostly quad-based input meshes).
  • Internal cleanups (reduced number of traversal kernels by more templating)
  • Reduced stack size requirements of BVH builders.
  • Fixed crash for dynamic scenes, triggered by deleting all geometries from the scene.

Embree v2.7.0

17 Sep 07:04
Compare
Choose a tag to compare
  • Added device concept to Embree to allow different components of an application to use Embree without interfering with each other.
  • Fixed memory leak in twolevel builder used for dynamic scenes.
  • Fixed bug in tesselation cache that caused crashes for subdivision surfaces.
  • Fixed bug in internal task scheduler that caused deadlocks when using rtcCommitThread.
  • Improved hit-distance accuracy for thin triangles in robust mode.
  • Added support to disable ray packet support in cmake.