Skip to content

Commit

Permalink
updated documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
svenwoop committed Jun 23, 2017
1 parent 5f8976f commit 31a2dd1
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 77 deletions.
103 changes: 48 additions & 55 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
Version History
---------------

### 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 tesselation rate and vertex array.

### New Features in Embree 2.16.2
- Fixed bug that caused NULL intersection context in intersection
filter when instancing was used.
Expand All @@ -25,17 +32,21 @@ Version History
### 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.
- 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 AVX512 architectures by 5-10%.
- Improved packet/hybrid ray tracing performance for incoherent rays on AVX512 architectures by 10-30%.
- Improved stream ray tracing performance for coherent rays in structure-of-pointers layout by 40-70%.
- 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%.
- 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)
Expand All @@ -47,17 +58,19 @@ Version History
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.
- 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.
- 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.
- 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
Expand Down Expand Up @@ -114,14 +127,14 @@ Version History
- 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.
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.
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.
Expand All @@ -135,8 +148,8 @@ Version History
- 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.
- 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.

Expand Down Expand Up @@ -171,8 +184,8 @@ Version History

- 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
primary rays, the performance typically improves by 1.3-2x.
- New spatial split BVH builder for triangles, which is 2-6x faster
than the previous version and more memory conservative.
- Improved performance and scalability of all standard BVH builders on
systems with large core counts.
Expand All @@ -189,12 +202,12 @@ Version History
- 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 510%).
- 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 5662% of uncompressed size). Compression introduces a
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.
Expand All @@ -205,8 +218,8 @@ Version History

### New Features in Embree 2.9.0

- Improved shadow ray performance (10100% depending on the scene).
- Added initial support for ray streams (1030% higher performance
- 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.
Expand All @@ -227,26 +240,29 @@ Version History
- 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 TBB 4.4 update 2).
- Improved performance of lazy scene build (when using 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.
- ISPC mode for robust and compact scenes got significantly faster
(implemented hybrid traversal for bvh4.triangle4v and bvh4.triangle4i).
(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).
- 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)
- 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.
Expand Down Expand Up @@ -416,29 +432,6 @@ Version History
- New variant of the SAH-based builder using triangle pre-splits
(Xeon Phi)

### Example Performance Numbers for Embree 2.1

BVH rebuild performance (including triangle accel generation, excluding
memory allocation) for scenes with 2–12 million triangles:

- Intel® Core™ i7 (Haswell-based CPU, 4 cores @ 3.0 GHz)
- 7–8 million triangles/s for the SAH-based BVH builder
- 30–36 million triangles/s for the Morton code-based BVH builder
- Intel® Xeon Phi™ 7120
- 37–40 million triangles/s for the SAH-based BVH builder
- 140–160 million triangles/s for the Morton code-based BVH
builder

Rendering of the Crown model (`crown.ecs`) with 4 samples per pixel
(`-spp 4`):

- Intel® Core™ i7 (Haswell-based CPU, 4 cores CPU @ 3.0 GHz)
- 1024×1024 resolution: 7.8 million rays per sec
- 1920×1080 resolution: 9.9 million rays per sec
- Intel® Xeon Phi™ 7120
- 1024×1024 resolution: 47.1 million rays per sec
- 1920×1080 resolution: 61.1 million rays per sec

### New Features in Embree 2.0

- Support for the Intel® Xeon Phi™ coprocessor platform
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
SET(EMBREE_VERSION_MAJOR 2)
SET(EMBREE_VERSION_MINOR 16)
SET(EMBREE_VERSION_PATCH 3)
SET(EMBREE_VERSION_NOTE "-alpha.0")
SET(EMBREE_VERSION_NOTE "")
SET(EMBREE_VERSION ${EMBREE_VERSION_MAJOR}.${EMBREE_VERSION_MINOR}.${EMBREE_VERSION_PATCH})
MATH(EXPR EMBREE_VERSION_NUMBER "10000*${EMBREE_VERSION_MAJOR} + 100*${EMBREE_VERSION_MINOR} + ${EMBREE_VERSION_PATCH}")
SET(CPACK_RPM_PACKAGE_RELEASE 1)
Expand Down
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% Embree: High Performance Ray Tracing Kernels 2.16.2
% Embree: High Performance Ray Tracing Kernels 2.16.3
% Intel Corporation

Embree Overview
Expand Down Expand Up @@ -94,9 +94,9 @@ Windows Installer

You can install the Embree library using the Windows installer
application
[embree-2.16.2-x64.exe](https://github.com/embree/embree/releases/download/v2.16.2/embree-2.16.2.x64.exe). This
[embree-2.16.3-x64.exe](https://github.com/embree/embree/releases/download/v2.16.3/embree-2.16.3.x64.exe). This
will install the 64 bit Embree version by default in `Program
Files\Intel\Embree v2.16.2 x64`.
Files\Intel\Embree v2.16.3 x64`.

You have to set the path to the `lib` folder manually to your `PATH`
environment variable for applications to find Embree. To compile
Expand All @@ -107,13 +107,13 @@ Embree installation.
To uninstall Embree again open `Programs and Features` by clicking the
`Start button`, clicking `Control Panel`, clicking `Programs`, and
then clicking `Programs and Features`. Select `Embree
2.16.2` and uninstall it.
2.16.3` and uninstall it.

Windows ZIP File
-----------------

Embree is also delivered as a ZIP file
[embree-2.16.2.x64.windows.zip](https://github.com/embree/embree/releases/download/v2.16.2/embree-2.16.2.x64.windows.zip). After
[embree-2.16.3.x64.windows.zip](https://github.com/embree/embree/releases/download/v2.16.3/embree-2.16.3.x64.windows.zip). After
unpacking this ZIP file you should set the path to the `lib` folder
manually to your `PATH` environment variable for applications to find
Embree. To compile applications with Embree you also have to set the
Expand All @@ -127,18 +127,18 @@ Linux RPMs
----------

Uncompress the 'tar.gz' file
[embree-2.16.2.x86_64.rpm.tar.gz](https://github.com/embree/embree/releases/download/v2.16.2/embree-2.16.2.x86_64.rpm.tar.gz)
[embree-2.16.3.x86_64.rpm.tar.gz](https://github.com/embree/embree/releases/download/v2.16.3/embree-2.16.3.x86_64.rpm.tar.gz)
to
obtain the individual RPM files:

tar xzf embree-2.16.2.x86_64.rpm.tar.gz
tar xzf embree-2.16.3.x86_64.rpm.tar.gz

To install the Embree using the RPM packages on your Linux system type
the following:

sudo rpm --install embree-lib-2.16.2-1.x86_64.rpm
sudo rpm --install embree-devel-2.16.2-1.x86_64.rpm
sudo rpm --install embree-examples-2.16.2-1.x86_64.rpm
sudo rpm --install embree-lib-2.16.3-1.x86_64.rpm
sudo rpm --install embree-devel-2.16.3-1.x86_64.rpm
sudo rpm --install embree-examples-2.16.3-1.x86_64.rpm

You also have to install the Intel® Threading Building Blocks (TBB)
using `yum`:
Expand Down Expand Up @@ -168,21 +168,21 @@ the tutorials to start them.

To uninstall Embree again just execute the following:

sudo rpm --erase embree-lib-2.16.2-1.x86_64
sudo rpm --erase embree-devel-2.16.2-1.x86_64
sudo rpm --erase embree-examples-2.16.2-1.x86_64
sudo rpm --erase embree-lib-2.16.3-1.x86_64
sudo rpm --erase embree-devel-2.16.3-1.x86_64
sudo rpm --erase embree-examples-2.16.3-1.x86_64

Linux tar.gz files
------------------

The Linux version of Embree is also delivered as a tar.gz file
[embree-2.16.2.x86_64.linux.tar.gz](https://github.com/embree/embree/releases/download/v2.16.2/embree-2.16.2.x86_64.linux.tar.gz). Unpack
[embree-2.16.3.x86_64.linux.tar.gz](https://github.com/embree/embree/releases/download/v2.16.3/embree-2.16.3.x86_64.linux.tar.gz). Unpack
this file using `tar` and source the provided `embree-vars.sh` (if you
are using the bash shell) or `embree-vars.csh` (if you are using the
C shell) to setup the environment properly:

tar xzf embree-2.16.2.x64.linux.tar.gz
source embree-2.16.2.x64.linux/embree-vars.sh
tar xzf embree-2.16.3.x64.linux.tar.gz
source embree-2.16.3.x64.linux/embree-vars.sh

If you want to ship Embree with your application best use the Embree
version provided through the tar.gz file.
Expand All @@ -195,7 +195,7 @@ Mac OS X PKG Installer

To install the Embree library on your Mac OS X system use the
provided package installer inside
[embree-2.16.2.x86_64.dmg](https://github.com/embree/embree/releases/download/v2.16.2/embree-2.16.2.x86_64.dmg). This
[embree-2.16.3.x86_64.dmg](https://github.com/embree/embree/releases/download/v2.16.3/embree-2.16.3.x86_64.dmg). This
will install Embree by default into `/opt/local/lib` and
`/opt/local/include` directories. The Embree tutorials are installed
into the `/Applications/Embree2` folder.
Expand All @@ -217,13 +217,13 @@ Mac OS X tar.gz file
---------------------

The Mac OS X version of Embree is also delivered as a tar.gz file
[embree-2.16.2.x86_64.macosx.tar.gz](https://github.com/embree/embree/releases/download/v2.16.2/embree-2.16.2.x86_64.macosx.tar.gz). Unpack
[embree-2.16.3.x86_64.macosx.tar.gz](https://github.com/embree/embree/releases/download/v2.16.3/embree-2.16.3.x86_64.macosx.tar.gz). Unpack
this file using `tar` and source the provided `embree-vars.sh` (if you
are using the bash shell) or `embree-vars.csh` (if you are using the
C shell) to setup the environment properly:

tar xzf embree-2.16.2.x64.macosx.tar.gz
source embree-2.16.2.x64.macosx/embree-vars.sh
tar xzf embree-2.16.3.x64.macosx.tar.gz
source embree-2.16.3.x64.macosx/embree-vars.sh

If you want to ship Embree with your application please use the Embree
library of the provided tar.gz file. The library name of that Embree
Expand Down
2 changes: 1 addition & 1 deletion include/embree2/rtcore_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
#define RTCORE_VERSION_MINOR 16
#define RTCORE_VERSION_PATCH 3
#define RTCORE_VERSION 21603
#define RTCORE_VERSION_STRING "2.16.3-alpha.0"
#define RTCORE_VERSION_STRING "2.16.3"
Binary file modified readme.pdf
Binary file not shown.

0 comments on commit 31a2dd1

Please sign in to comment.