904 lines
46 KiB
Markdown
904 lines
46 KiB
Markdown
Version History
|
||
---------------
|
||
|
||
### Embree 4.3.1
|
||
- Add missing EMBREE_GEOMETRY types to embree-config.cmake
|
||
- User defined thread count now takes precedence for internal task scheduler
|
||
- Fixed static linking issue with ze_wrapper library
|
||
- Better error reporting for SYCL platform and driver problems in embree_info and tutorial apps.
|
||
- Patch to glfw source is not applied by default anymore.
|
||
- Known issue: Running Embree on Intel® Data Center GPU Max Series with 2 tiles (e.g. Intel® Data Center GPU Max 1550) requires setting the environment variable ZE_FLAT_DEVICE_HIERARCHY=COMPOSITE.
|
||
- Known issue: Embree build using Apple Clang 15 and ARM support (via the SEE2NEON library) may cause "EXEC_BAD_INSTRUCTION" runtime exceptions. Please use Apple Clang <= 14 on macOS.
|
||
|
||
### Embree 4.3.0
|
||
- Added instance array primitive for reducing memony requirements in scenes
|
||
with large amounts of similar instances.
|
||
- Properly checks driver if L0 RTAS extension can get loaded.
|
||
- Added varying version of rtcGetGeometryTransform for ISPC.
|
||
- Fixed signature of RTCMemoryMonitorFunction for ISPC.
|
||
- Add support for ARM64 Windows platform in CMake.
|
||
|
||
### Embree 4.2.0
|
||
- SYCL version of Embree with GPU support is no longer in beta phase.
|
||
- Improved BVH build performance on many core machines for applications that oversubscribe threads.
|
||
- Added rtcGetGeometryTransformFromScene API function that can get used inside SYCL kernels.
|
||
- No longer linking to ze_loader in SYCL mode to avoid Intel(R) oneAPI Level Zero dependency
|
||
for CPU rendering.
|
||
- Releasing test package to test Embree.
|
||
|
||
### Embree 4.1.0
|
||
- Added support for Intel® Data Center GPU Max Series.
|
||
- Added ARM64 Linux support.
|
||
- Added EMBREE_BACKFACE_CULLING_SPHERES cmake option. The new cmake option defaults to OFF.
|
||
|
||
### Embree 4.0.1
|
||
- Improved performance for Tiger Lake, Comet Lake, Cannon Lake, Kaby Lake,
|
||
and Skylake client CPUs by using 256 bit SIMD instructions by default.
|
||
- Fixed broken motion blur of RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE geometry type.
|
||
- Fixed bvh build retry issue for TBB 2020.3
|
||
- Added support for Intel® Data Center GPU Flex Series
|
||
- Fixed issue on systems without a SYCL platform.
|
||
|
||
### Embree 4.0.0
|
||
- This Embree release adds support for Intel® Arc™ GPUs through SYCL.
|
||
- The SYCL support of Embree is in beta phase. Current functionality, quality,
|
||
and GPU performance may not reflect that of the final product. Please read the
|
||
documentation section "Embree SYCL Known Issues" for known limitations.
|
||
- Embree CPU support in this release as at Gold level, incorporating the same quality
|
||
and performance as previous releases.
|
||
- A small number of API changes were required to get optimal experience and
|
||
performance on the CPU and GPU. See documentation section "Upgrading from Embree 3 to
|
||
Embree 4" for details.
|
||
- rtcIntersect and rtcOccluded function arguments changed slightly.
|
||
- RTCIntersectContext is renamed to RTCRayQuery context and most members moved to
|
||
new RTCIntersectArguments and RTCOccludedArguments structures.
|
||
- rtcFilterIntersection and rtcFilterOcclusion API calls got replaced by
|
||
rtcInvokeIntersectFilterFromGeometry and rtcInvokeOccludedFilterFromGeometry API calls.
|
||
- rtcSetGeometryEnableFilterFunctionFromArguments enables argument filter functions for some geometry.
|
||
- RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER ray query flag enables argument filter functions for each geometry.
|
||
- User geometry callbacks have to return if a valid hit was found.
|
||
- Ray masking is enabled by default now as required by most users.
|
||
- The default ray mask for geometries got changed from 0xFFFFFFFF to 0x1.
|
||
- Removed ray stream API as rarely used with minimal performance benefits over packet tracing.
|
||
- Introduced rtcForwardIntersect/rtcForwardOccluded API calls to trace tail recursive rays from user geometry callback.
|
||
- The rtcGetGeometryUserDataFromScene API call got added to be used in SYCL code.
|
||
- Added support for user geometry callback function pointer passed through ray query context
|
||
- Feature flags enable reducing code complexity for optimal performance on the GPU.
|
||
- Fixed compilation issues for ARM AArch64 processor under Linux.
|
||
- Setting default frequency level to SIMD256 for ARM on all platforms.
|
||
This allows using double pumped NEON execution by enabling EMBREE_ISA_NEON2X in cmake under Linux.
|
||
- Fixed missing end caps of motion blurred line segments.
|
||
- EMBREE_ISPC_SUPPORT is turned OFF by default.
|
||
- Embree drops support of the deprecated Intel(R) Compiler. It is replaced by
|
||
the Intel(R) oneAPI DPC++/C++ Compiler on Windows and Linux and the
|
||
Intel(R) C++ Classic Compiler on MacOS (latest tested versions is 2023.0.0).
|
||
|
||
### Embree 3.13.5
|
||
- Fixed bug in bounding flat Catmull Rom curves of subdivision level 4.
|
||
- Improved self intersection avoidance for
|
||
RTC_GEOMETRY_TYPE_DISC_POINT geometry type. Intersections are
|
||
skipped if the ray origin lies inside the sphere defined by the
|
||
point primitive. Self intersection avoidance can get disabled at compile time
|
||
using the EMBREE_DISC_POINT_SELF_INTERSECTION_AVOIDANCE cmake option.
|
||
- Fixed spatial splitting for non-planar quads.
|
||
|
||
### Embree 3.13.4
|
||
- Using 8-wide BVH and double pumped NEON instructions on Apple M1 gives 8% performance boost.
|
||
- Fixed binning related crash in SAH BVH builder.
|
||
- Added EMBREE_TBB_COMPONENT cmake option to define the component/library name of Intel® TBB (default: tbb).
|
||
- Embree supports now Intel® oneAPI DPC++/C++ Compiler 2022.0.0
|
||
|
||
### Embree 3.13.3
|
||
- Invalid multi segment motion blurred normal oriented curves are properly excluded from BVH build.
|
||
- Fixing issue with normal oriented curve construction when center curve curvature is very large.
|
||
Due to this change normal oriented curve shape changes slightly.
|
||
- Fixed crash caused by disabling a geometry and then detaching it from the scene.
|
||
- Bugfix in emulated ray packet intersection when EMBREE_RAY_PACKETS is turned off.
|
||
- Bugfix for linear quaternion interpolation fallback.
|
||
- Fixed issues with spaces in path to Embree build folder.
|
||
- Some fixes to compile Embree in SSE mode using WebAssembly.
|
||
- Bugfix for occlusion rays with grids and ray packets.
|
||
- We do no longer provide installers for Windows and macOS, please use the ZIP files instead.
|
||
- Upgrading to Intel® ISPC 1.17.0 for release build.
|
||
- Upgrading to Intel® oneTBB 2021.5.0 for release build.
|
||
|
||
### Embree 3.13.2
|
||
- Avoiding spatial split positions that are slightly out of geometry bounds.
|
||
- Introduced rtcGetGeometryThreadSafe function, which is a thread safe version of rtcGetGeometry.
|
||
- Using more accurate rcp implementation.
|
||
- Bugfix to rare corner case of high quality BVH builder.
|
||
|
||
### Embree 3.13.1
|
||
- Added support for Intel® ISPC ARM target.
|
||
- Releases upgrade to Intel® TBB 2021.3.0 and Intel® ISPC 1.16.1
|
||
|
||
### Embree 3.13.0
|
||
- Added support for Apple M1 CPUs.
|
||
- RTC_SUBDIVISION_MODE_NO_BOUNDARY now works properly for non-manifold edges.
|
||
- CMake target 'uninstall' is not defined if it already exists.
|
||
- Embree no longer reads the .embree3 config files, thus all configuration has
|
||
to get passed through the config string to rtcNewDevice.
|
||
- Releases upgrade to Intel® TBB 2021.2.0 and Intel® ISPC 1.15.0
|
||
- Intel® TBB dll is automatically copied into build folder after build on windows.
|
||
|
||
### Embree 3.12.2
|
||
- Fixed wrong uv and Ng for grid intersector in robust mode for AVX.
|
||
- Removed optimizations for Knights Landing.
|
||
- Upgrading release builds to use Intel® oneTBB 2021.1.1
|
||
|
||
### Embree 3.12.1
|
||
|
||
- Changed default frequency level to SIMD128 for Skylake, Cannon Lake, Comet Lake and Tiger Lake CPUs.
|
||
This change typically improves performance for renderers that just use SSE by maintaining higher
|
||
CPU frequencies. In case your renderer is AVX optimized you can get higher ray tracing performance
|
||
by configuring the frequency level to simd256 through passing frequency_level=simd256 to rtcNewDevice.
|
||
|
||
### Embree 3.12.0
|
||
|
||
- Added linear cone curve geometry support. In this mode a real geometric surface for curves
|
||
with linear basis is rendered using capped cones. They are discontinuous at edge boundaries.
|
||
- Enabled fast two level builder for instances when low quality build is requested.
|
||
- Bugfix for BVH build when geometries got disabled.
|
||
- Added EMBREE_BACKFACE_CULLING_CURVES cmake option. This allows for a cheaper round
|
||
linear curve intersection when correct internal tracking and back hits are not required.
|
||
The new cmake option defaults to OFF.
|
||
- User geometries with invalid bounds with lower>upper in some dimension will be ignored.
|
||
- Increased robustness for grid interpolation code and fixed returned out of range u/v
|
||
coordinates for grid primitive.
|
||
- Fixed handling of motion blur time range for sphere, discs, and oriented disc geometries.
|
||
- Fixed missing model data in releases.
|
||
- Ensure compatibility to newer versions of Intel® oneTBB.
|
||
- Motion blur BVH nodes no longer store NaN values.
|
||
|
||
### Embree 3.11.0
|
||
|
||
- Round linear curves now automatically check for the existence of left and right
|
||
connected segments if the flags buffer is empty. Left segments exist if the
|
||
segment(id-1) + 1 == segment(id) and similarly for right segments.
|
||
- Implemented the min-width feature for curves and points, which allows to increase the
|
||
radius in a distance dependent way, such that the curve or points thickness is n pixels wide.
|
||
- Round linear curves are closed now also at their start.
|
||
- Embree no longer supports Visual Studio 2013 starting with this release.
|
||
- Bugfix in subdivision tessellation level assignment for non-quad base primitives
|
||
- Small meshes are directly added to top level build phase of two-level builder to reduce memory consumption.
|
||
- Enabled fast two level builder for user geometries when low quality build is requested.
|
||
|
||
### Embree 3.10.0
|
||
|
||
- Added EMBREE_COMPACT_POLYS CMake option which enables double indexed triangle and quad
|
||
leaves to reduce memory consumption in compact mode by an additional 40% at about
|
||
15% performance impact. This new mode is disabled by default.
|
||
- Compile fix for Intel® oneTBB 2021.1-beta05
|
||
- Releases upgrade to Intel® TBB 2020.2
|
||
- Compile fix for Intel® ISPC v1.13.0
|
||
- Adding RPATH to libembree.so in releases
|
||
- Increased required CMake version to 3.1.0
|
||
- Made instID member for array of pointers ray stream layout optional again.
|
||
|
||
### Embree 3.9.0
|
||
|
||
- Added round linear curve geometry support. In this mode a real geometric surface for curves
|
||
with linear basis is rendered using capped cones with spherical filling between
|
||
the curve segments.
|
||
- Added rtcGetSceneDevice API function, that returns the device a scene got created in.
|
||
- Improved performance of round curve rendering by up to 1.8x.
|
||
- Bugfix to sphere intersection filter invocation for back hit.
|
||
- Fixed wrong assertion that triggered for invalid curves which anyway get filtered out.
|
||
- RelWithDebInfo mode no longer enables assertions.
|
||
- Fixed an issue in FindTBB.cmake that caused compile error with Debug build under Linux.
|
||
- Embree releases no longer provide RPMs for Linux. Please use the RPMs coming with the package
|
||
manager of your Linux distribution.
|
||
|
||
### Embree 3.8.0
|
||
|
||
- Added collision detection support for user geometries (see rtcCollide API function)
|
||
- Passing geomID to user geometry callbacks.
|
||
- Bugfix in AVX512VL codepath for rtcIntersect1
|
||
- For sphere geometries the intersection filter gets now invoked for
|
||
front and back hit.
|
||
- Fixed some bugs for quaternion motion blur.
|
||
- RTCRayQueryContext always non-const in Embree API
|
||
- Made RTCHit aligned to 16 bytes in Embree API
|
||
|
||
### New Features in Embree 3.7.0
|
||
- Added quaternion motion blur for correct interpolation of rotational transformations.
|
||
- Fixed wrong bounding calculations when a motion blurred instance did
|
||
instantiate a motion blurred scene.
|
||
- In robust mode the depth test consistently uses tnear <= t <= tfar now in order
|
||
to robustly continue traversal at a previous hit point
|
||
in a way that guarantees reaching all hits, even hits at the same place.
|
||
- Fixed depth test in robust mode to be precise at tnear and tfar.
|
||
- Added next_hit tutorial to demonstrate robustly collecting all hits
|
||
along a ray using multiple ray queries.
|
||
- Implemented robust mode for curves. This has a small performance impact but
|
||
fixes bounding problems with flat curves.
|
||
- Improved quality of motion blur BVH by using linear bounds during binning.
|
||
- Implemented issue with motion blur builder where number of time segments
|
||
for SAH heuristic were counted wrong due to some numerical issues.
|
||
- Fixed an accuracy issue with rendering very short fat curves.
|
||
- rtcCommitScene can now get called during rendering from multiple threads
|
||
to lazily build geometry. When Intel® TBB is used this causes a much lower overhead
|
||
than using rtcJoinCommitScene.
|
||
- Geometries can now get attached to multiple scenes at the same time, which
|
||
simplifies mapping general scene graphs to API.
|
||
- Updated to Intel® TBB 2019.9 for release builds.
|
||
- Fixed a bug in the BVH builder for Grid geometries.
|
||
- Added macOS Catalina support to Embree releases.
|
||
|
||
### New Features in Embree 3.6.1
|
||
- Restored binary compatibility between Embree 3.6 and 3.5 when single-level instancing is used.
|
||
- Fixed bug in subgrid intersector
|
||
- Removed point query alignment in Intel® ISPC header
|
||
|
||
### New Features in Embree 3.6
|
||
- Added Catmull-Rom curve types.
|
||
- Added support for multi-level instancing.
|
||
- Added support for point queries.
|
||
- Fixed a bug preventing normal oriented curves being used unless timesteps were
|
||
specified.
|
||
- Fixed bug in external BVH builder when configured for dynamic build.
|
||
- Added support for new config flag "user_threads=N" to device initialization
|
||
which sets the number of threads used by Intel® TBB but created by the user.
|
||
- Fixed automatic vertex buffer padding when using rtcSetNewGeometry API function.
|
||
|
||
### New Features in Embree 3.5.2
|
||
- Added EMBREE_API_NAMESPACE cmake option that allows to put all Embree API functions
|
||
inside a user defined namespace.
|
||
- Added EMBREE_LIBRARY_NAME cmake option that allows to rename the Embree library.
|
||
- When Embree is compiled as static library, EMBREE_STATIC_LIB has no longer to get
|
||
defined before including the Embree API headers.
|
||
- Added CPU frequency_level device configuration to allow an application to specify the
|
||
frequency level it wants to run on. This forces Embree to not use optimizations that
|
||
may reduce the CPU frequency below that level. By default Embree is configured to the
|
||
the AVX-heavy frequency level, thus if the application uses solely non-AVX code, configuring
|
||
the Embree device with "frequency_level=simd128" may give better performance.
|
||
- Fixed a bug in the spatial split builder which caused it to fail
|
||
for scenes with more than 2^24 geometries.
|
||
|
||
### New Features in Embree 3.5.1
|
||
- Fixed ray/sphere intersector to work also for non-normalized rays.
|
||
- Fixed self intersection avoidance for ray oriented discs when
|
||
non-normalized rays were used.
|
||
- Increased maximal face valence for subdiv patch to 64 and reduced stack size
|
||
requirement for subdiv patch evaluation.
|
||
|
||
### New Features in Embree 3.5.0
|
||
- Changed normal oriented curve definition to fix waving artefacts.
|
||
- Fixed bounding issue for normal oriented motion blurred curves.
|
||
- Fixed performance issue with motion blurred point geometry.
|
||
- Fixed generation of documentation with new pandoc versions.
|
||
|
||
### New Features in Embree 3.4.0
|
||
- Added point primitives (spheres, ray-oriented discs, normal-oriented discs).
|
||
- Fixed crash triggered by scenes with only invalid primitives.
|
||
- Improved robustness of quad/grid-based intersectors.
|
||
- Upgraded to Intel® TBB 2019.2 for release builds.
|
||
|
||
### New Features in Embree 3.3.0
|
||
- Added support for motion blur time range per geometry. This way geometries
|
||
can appear and disappear during the camera shutter and time steps do not have
|
||
to start and end at camera shutter interval boundaries.
|
||
- Fixed crash with pathtracer when using --triangle-sphere command line.
|
||
- Fixed crash with pathtracer when using --shader ao command line.
|
||
- Fixed tutorials showing a black window on macOS 10.14 until moved.
|
||
|
||
### New Features in Embree 3.2.4
|
||
- Fixed compile issues with ICC 2019.
|
||
- Released ZIP files for Windows are now provided in a
|
||
version linked against Visual Studio 2013 and Visual Studio 2015.
|
||
|
||
### New Features in Embree 3.2.3
|
||
- Fixed crash when using curves with RTC_SCENE_FLAG_DYNAMIC
|
||
combined with RTC_BUILD_QUALITY_MEDIUM.
|
||
|
||
### New Features in Embree 3.2.2
|
||
- Fixed intersection distance for unnormalized rays with line segments.
|
||
- Removed libmmd.dll dependency in release builds for Windows.
|
||
- Fixed detection of AppleClang compiler under MacOSX.
|
||
|
||
### New Features in Embree 3.2.1
|
||
- Bugfix in flat mode for hermite curves.
|
||
- Added EMBREE_CURVE_SELF_INTERSECTION_AVOIDANCE_FACTOR cmake option to
|
||
control self intersection avoidance for flat curves.
|
||
- Performance fix when instantiating motion blurred scenes. The application
|
||
should best use two (or more) time steps for an instance that instantiates
|
||
a motion blurred scene.
|
||
- Fixed AVX512 compile issue with GCC 6.1.1.
|
||
- Fixed performance issue with rtcGetGeometryUserData when used
|
||
during rendering.
|
||
- Bugfix in length of derivatives for grid geometry.
|
||
- Added BVH8 support for motion blurred curves and lines. For some workloads
|
||
this increases performance by up to 7%.
|
||
- Fixed rtcGetGeometryTransform to return the local to world transform.
|
||
- Fixed bug in multi segment motion blur that caused missing of perfectly
|
||
axis aligned geometry.
|
||
- Reduced memory consumption of small scenes by 4x.
|
||
- Reduced temporal storage of grid builder.
|
||
|
||
### New Features in Embree 3.2.0
|
||
- Improved watertightness of robust mode.
|
||
- Line segments, and other curves are now all contained in a single
|
||
BVH which improves performance when these are both used in a scene.
|
||
- Performance improvement of up to 20% for line segments.
|
||
- Bugfix to Embree2 to Embree3 conversion script.
|
||
- Added support for Hermite curve basis.
|
||
- Semantics of normal buffer for normal oriented curves has
|
||
changed to simplify usage. Please see documentation for details.
|
||
- Using GLFW and imgui in tutorials.
|
||
- Fixed floating point exception in static variable initialization.
|
||
- Fixed invalid memory access in rtcGetGeometryTransform for non-motion
|
||
blur instances.
|
||
- Improved self intersection avoidance for flat curves. Transparency rays
|
||
with tnear set to previous hit distance do not need curve radius
|
||
based self intersection avoidance as same hit is calculated again. For this
|
||
reason self intersection avoidance is now only applied to ray origin.
|
||
|
||
### New Features in Embree 3.1.0
|
||
- Added new normal-oriented curve primitive for ray tracing of grass-like
|
||
structures.
|
||
- Added new grid primitive for ray tracing tessellated and displaced surfaces
|
||
in very memory efficient manner.
|
||
- Fixed bug of ribbon curve intersector when derivative was zero.
|
||
- Installing all static libraries when EMBREE_STATIC_LIB is enabled.
|
||
- Added API functions to access topology of subdivision mesh.
|
||
- Reduced memory consumption of instances.
|
||
- Improved performance of instances by 8%.
|
||
- Reduced memory consumption of curves by up to 2x.
|
||
- Up to 5% higher performance on AVX-512 architectures.
|
||
- Added native support for multiple curve basis functions. Internal
|
||
basis conversions are no longer performed, which saves additional
|
||
memory when multiple bases are used.
|
||
- Fixed issue with non thread safe local static variable initialization
|
||
in VS2013.
|
||
- Bugfix in rtcSetNewGeometry. Vertex buffers did not get properly
|
||
overallocated.
|
||
- Replaced ImageMagick with OpenImageIO in the tutorials.
|
||
|
||
### New Features in Embree 3.0.0
|
||
- Switched to a new version of the API which provides improved
|
||
flexibility but is not backward compatible. Please see "Upgrading
|
||
from Embree 2 to Embree 3" section of the 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 the instID field of the ray differently. They
|
||
both just need to copy the context.instID into the ray.instID field.
|
||
- Support for context filter functions that can be 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-intersection workarounds
|
||
for these primitive types anymore.
|
||
- Added support for 4 billion primitives in a single scene.
|
||
- Removed the RTC_MAX_USER_VERTEX_BUFFERS and RTC_MAX_INDEX_BUFFERS
|
||
limitations.
|
||
- 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.
|
||
|
||
### New Features in Embree 2.17.5
|
||
- Improved watertightness of robust mode.
|
||
- Fixed floating point exception in static variable initialization.
|
||
- Fixed AVX512 compile issue with GCC 6.1.1.
|
||
|
||
### New Features in Embree 2.17.4
|
||
- Fixed AVX512 compile issue with GCC 7.
|
||
- Fixed issue with not thread safe local static variable
|
||
initialization in VS2013.
|
||
- Fixed bug in the 4 and 8-wide packet intersection of instances with
|
||
multi-segment motion blur on AVX-512 architectures.
|
||
- Fixed bug in rtcOccluded4/8/16 when only AVX-512 ISA was enabled.
|
||
|
||
### New Features in Embree 2.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.
|
||
|
||
### New Features in Embree 2.17.2
|
||
- Made BVH build of curve geometry deterministic.
|
||
|
||
### New Features in Embree 2.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.
|
||
|
||
### New Features in Embree 2.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 aggressive 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 yourself.
|
||
- 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 Intel® ISPC.
|
||
- Providing MSI installer for Windows.
|
||
|
||
### New Features in Embree 2.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.
|
||
|
||
### New Features in Embree 2.16.4
|
||
- Bugfix in the ribbon intersector for hair primitives. Non-normalized
|
||
rays caused wrong intersection distance to be reported.
|
||
|
||
### New Features in Embree 2.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 tessellation rate and vertex array.
|
||
|
||
### New Features in Embree 2.16.2
|
||
- Fixed bug that caused NULL ray query 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.
|
||
|
||
### New Features in Embree 2.16.1
|
||
- Workaround for compile issues with Visual Studio 2017
|
||
- Fixed bug in subdiv code for static scenes when using tessellation
|
||
levels larger than 50.
|
||
- Fixed low performance when adding many geometries to a scene.
|
||
- Fixed high memory consumption issue when using instances in
|
||
dynamic scene (by disabling two level builder for user geometries
|
||
and instances).
|
||
|
||
### New Features in Embree 2.16.0
|
||
- Improved multi-segment motion blur support for scenes with
|
||
different number of time steps per mesh.
|
||
- New top level BVH builder that improves build times and BVH quality
|
||
of two-level BVHs.
|
||
- Added support to enable only a single ISA. Previously code was
|
||
always compiled for SSE2.
|
||
- Improved single ray tracing performance for incoherent rays on
|
||
AVX-512 architectures by 5-10%.
|
||
- Improved packet/hybrid ray tracing performance for incoherent rays
|
||
on AVX-512 architectures by 10-30%.
|
||
- Improved stream ray tracing performance for coherent rays in
|
||
structure-of-pointers layout by 40-70%.
|
||
- BVH builder for compact scenes of triangles and quads needs
|
||
essentially no temporary memory anymore. This doubles the
|
||
maximal scene size that can be rendered in compact mode.
|
||
- Triangles no longer store the geometry normal in fast/default mode
|
||
which reduces memory consumption by up to 20%.
|
||
- Compact mode uses BVH4 now consistently which reduces memory
|
||
consumption by up to 10%.
|
||
- Reduced memory consumption for small scenes (of 10k-100k primitives)
|
||
and dynamic scenes.
|
||
- Improved performance of user geometries and instances through BVH8
|
||
support.
|
||
- The API supports now specifying the geometry ID of a geometry at
|
||
construction time. This way matching the geometry ID used by
|
||
Embree and the application is simplified.
|
||
- Fixed a bug that would have caused a failure of the BVH builder
|
||
for dynamic scenes when run on a machine with more then 1000 threads.
|
||
- Fixed a bug that could have been triggered when reaching the maximal
|
||
number of mappings under Linux (`vm.max_map_count`). This could have
|
||
happened when creating a large number of small static scenes.
|
||
- Added huge page support for Windows and MacOSX (experimental).
|
||
- Added support for Visual Studio 2017.
|
||
- Removed support for Visual Studio 2012.
|
||
- Precompiled binaries now require a CPU supporting at least the
|
||
SSE4.2 ISA.
|
||
- We no longer provide precompiled binaries for 32-bit on Windows.
|
||
- Under Windows one now has to use the platform toolset option in
|
||
CMake to switch to Clang or the Intel® Compiler.
|
||
- Fixed a bug for subdivision meshes when using the incoherent scene
|
||
flag.
|
||
- Fixed a bug in the line geometry intersection, that caused reporting
|
||
an invalid line segment intersection with primID -1.
|
||
- Buffer stride for vertex buffers of different time steps of triangle
|
||
and quad meshes have to be identical now.
|
||
- Fixed a bug in the curve geometry intersection code when passed a
|
||
perfect cylinder.
|
||
|
||
### New Features in Embree 2.15.0
|
||
|
||
- 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 2×.
|
||
- 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 Bézier or BSpline basis internally, and converts other
|
||
curves, which requires 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 AVX-512 support.
|
||
- Implemented hybrid traversal for hair and line segments for
|
||
improved ray packet performance.
|
||
- AVX-512 code compiles with Clang 4.0.0
|
||
- Fixed crash when ray packets were disabled in CMake.
|
||
|
||
### New Features in Embree 2.14.0
|
||
|
||
- 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 AVX-512 optimizations for future architectures.
|
||
|
||
### New Features in Embree 2.13.0
|
||
|
||
- 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.
|
||
|
||
### New Features in Embree 2.12.0
|
||
|
||
- 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 Intel® 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 optimal performance Intel® TBB is
|
||
highly recommended).
|
||
- Updated to Intel® 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.
|
||
|
||
### New Features in Embree 2.11.0
|
||
|
||
- 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 AVX-512 support for future Intel® Xeon processors.
|
||
|
||
### New Features in Embree 2.10.0
|
||
|
||
- 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™
|
||
processor 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.
|
||
|
||
### New Features in Embree 2.9.0
|
||
|
||
- Improved shadow ray performance (10-100% depending on the scene).
|
||
- Added initial support for ray streams (10-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.
|
||
|
||
### New Features in Embree 2.8.1
|
||
|
||
- Added support for setting per geometry tessellation rate (supported
|
||
for subdivision and Bézier geometries).
|
||
- Added support for motion blurred instances.
|
||
|
||
### New Features in Embree 2.8.0
|
||
|
||
- 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 AVX-512 optimizations.
|
||
- Improved performance of lazy scene build (when using Intel® TBB 4.4 update
|
||
2).
|
||
- Improved performance through huge page support under linux.
|
||
|
||
### New Features in Embree 2.7.1
|
||
|
||
- Internal tasking system supports cancellation of build operations.
|
||
- Intel® 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 (improved 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.
|
||
|
||
### New Features in Embree 2.7.0
|
||
|
||
- 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 tessellation 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.
|
||
|
||
### New Features in Embree 2.6.2
|
||
|
||
- Fixed bug triggered by instantiating motion blur geometry.
|
||
- Fixed bug in hit UV coordinates of static subdivision geometries.
|
||
- Performance improvements when only changing tessellation levels for
|
||
subdivision geometry per frame.
|
||
- Added ray packet intersectors for subdivision geometry, resulting in
|
||
improved performance for coherent rays.
|
||
- Reduced virtual address space usage for static geometries.
|
||
- Fixed some AVX2 code paths when compiling with GCC or Clang.
|
||
- Bugfix for subdiv patches with non-matching winding order.
|
||
- Bugfix in ISA detection of AVX-512.
|
||
|
||
### New Features in Embree 2.6.1
|
||
|
||
- Major performance improvements for ray tracing subdivision surfaces,
|
||
e.g. up to 2× faster for scenes where only the tessellation levels
|
||
are changing per frame, and up to 3× faster for scenes with lots of
|
||
crease features
|
||
- Initial support for architectures supporting the new 16-wide AVX-512
|
||
ISA
|
||
- Implemented intersection filter callback support for subdivision
|
||
surfaces
|
||
- Added `RTC_IGNORE_INVALID_RAYS` CMake option which makes the ray
|
||
intersectors more robust against full tree traversal caused by
|
||
invalid ray inputs (e.g. INF, NaN, etc)
|
||
|
||
### New Features in Embree 2.6.0
|
||
|
||
- Added `rtcInterpolate` function to interpolate per vertex
|
||
attributes
|
||
- Added `rtcSetBoundaryMode` function that can be used to select the
|
||
boundary handling for subdivision surfaces
|
||
- Fixed a traversal bug that caused rays with very small ray
|
||
direction components to miss geometry
|
||
- Performance improvements for the robust traversal mode
|
||
- Fixed deadlock when calling `rtcCommit` from multiple
|
||
threads on same scene
|
||
|
||
### New Features in Embree 2.5.1
|
||
|
||
- On dual socket workstations, the initial BVH build performance
|
||
almost doubled through a better memory allocation scheme
|
||
- Reduced memory usage for subdivision surface objects with crease
|
||
features
|
||
- `rtcCommit` performance is robust against unset "flush to zero" and
|
||
"denormals are zero" flags. However, enabling these flags in your
|
||
application is still recommended
|
||
- Reduced memory usage for subdivision surfaces with borders and
|
||
infinitely sharp creases
|
||
- Lots of internal cleanups and bug fixes for both Intel® Xeon® and
|
||
Intel® Xeon Phi™
|
||
|
||
### New Features in Embree 2.5.0
|
||
|
||
- Improved hierarchy build performance on both Intel Xeon and Intel
|
||
Xeon Phi
|
||
- Vastly improved tessellation cache for ray tracing subdivision
|
||
surfaces
|
||
- Added `rtcGetUserData` API call to query per geometry user pointer
|
||
set through `rtcSetUserData`
|
||
- Added support for memory monitor callback functions to track and
|
||
limit memory consumption
|
||
- Added support for progress monitor callback functions to track build
|
||
progress and cancel long build operations
|
||
- BVH builders can be used to build user defined hierarchies inside
|
||
the application (see tutorial [BVH Builder])
|
||
- Switched to Intel® TBB as default tasking system on Xeon to get even faster
|
||
hierarchy build times and better integration for applications that
|
||
also use Intel® TBB
|
||
- `rtcCommit` can get called from multiple Intel® TBB threads to join the
|
||
hierarchy build operations
|
||
|
||
### New Features in Embree 2.4
|
||
|
||
- Support for Catmull Clark subdivision surfaces (triangle/quad base
|
||
primitives)
|
||
- Support for vector displacements on Catmull Clark subdivision
|
||
surfaces
|
||
- Various bug fixes (e.g. 4-byte alignment of vertex buffers works)
|
||
|
||
### New Features in Embree 2.3.3
|
||
|
||
- BVH builders more robustly handle invalid input data (Intel Xeon
|
||
processor family)
|
||
- Motion blur support for hair geometry (Xeon)
|
||
- Improved motion blur performance for triangle geometry (Xeon)
|
||
- Improved robust ray tracing mode (Xeon)
|
||
- Added `rtcCommitThread` API call for easier integration into
|
||
existing tasking systems (Xeon and Intel Xeon Phi coprocessor)
|
||
- Added support for recording and replaying all
|
||
`rtcIntersect`/`rtcOccluded` calls (Xeon and Xeon Phi)
|
||
|
||
### New Features in Embree 2.3.2
|
||
|
||
- Improved mixed AABB/OBB-BVH for hair geometry (Xeon Phi)
|
||
- Reduced amount of pre-allocated memory for BVH builders (Xeon Phi)
|
||
- New 64-bit Morton code-based BVH builder (Xeon Phi)
|
||
- (Enhanced) Morton code-based BVH builders use now tree rotations to
|
||
improve BVH quality (Xeon Phi)
|
||
- Bug fixes (Xeon and Xeon Phi)
|
||
|
||
### New Features in Embree 2.3.1
|
||
|
||
- High quality BVH mode improves spatial splits which result in up to
|
||
30% performance improvement for some scenes (Xeon)
|
||
- Compile time enabled intersection filter functions do not reduce
|
||
performance if no intersection filter is used in the scene (Xeon and
|
||
Xeon Phi)
|
||
- Improved ray tracing performance for hair geometry by \>20% on Xeon
|
||
Phi. BVH for hair geometry requires 20% less memory
|
||
- BVH8 for AVX/AVX2 targets improves performance for single ray
|
||
tracing on Haswell by up to 12% and by up to 5% for hybrid (Xeon)
|
||
- Memory conservative BVH for Xeon Phi now uses BVH node quantization
|
||
to lower memory footprint (requires half the memory footprint of the
|
||
default BVH)
|
||
|
||
### New Features in Embree 2.3
|
||
|
||
- Support for ray tracing hair geometry (Xeon and Xeon Phi)
|
||
- Catching errors through error callback function
|
||
- Faster hybrid traversal (Xeon and Xeon Phi)
|
||
- New memory conservative BVH for Xeon Phi
|
||
- Faster Morton code-based builder on Xeon
|
||
- Faster binned-SAH builder on Xeon Phi
|
||
- Lots of code cleanups/simplifications/improvements (Xeon and Xeon
|
||
Phi)
|
||
|
||
### New Features in Embree 2.2
|
||
|
||
- Support for motion blur on Xeon Phi
|
||
- Support for intersection filter callback functions
|
||
- Support for buffer sharing with the application
|
||
- Lots of AVX2 optimizations, e.g. \~20% faster 8-wide hybrid
|
||
traversal
|
||
- Experimental support for 8-wide (AVX/AVX2) and 16-wide BVHs (Xeon
|
||
Phi)
|
||
|
||
### New Features in Embree 2.1
|
||
|
||
- New future proof API with a strong focus on supporting dynamic
|
||
scenes
|
||
- Lots of optimizations for 8-wide AVX2 (Haswell architecture)
|
||
- Automatic runtime code selection for SSE, AVX, and AVX2
|
||
- Support for user-defined geometry
|
||
- New and improved BVH builders:
|
||
- Fast adaptive Morton code-based builder (without SAH-based
|
||
top-level rebuild)
|
||
- Both the SAH and Morton code-based builders got faster (Xeon
|
||
Phi)
|
||
- New variant of the SAH-based builder using triangle pre-splits
|
||
(Xeon Phi)
|
||
|
||
### New Features in Embree 2.0
|
||
|
||
- Support for the Intel® Xeon Phi™ coprocessor platform
|
||
- Support for high-performance "packet" kernels on SSE, AVX, and Xeon
|
||
Phi
|
||
- Integration with the Intel® Implicit SPMD Program Compiler (Intel® ISPC)
|
||
- Instantiation and fast BVH reconstruction
|
||
- Example photo-realistic rendering engine for both C++ and Intel® ISPC
|
||
|