Updated documentation to 4.4.1

This commit is contained in:
Werner, Stefan
2026-03-16 22:56:40 +01:00
committed by Stefan Werner
parent 068d90f6c8
commit a0e08eba6e
128 changed files with 2473 additions and 5254 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ Version History
- Reduced memory copies and improved move semantics usage.
- Bumped CMake minimum required version to 3.10.
### Embree 4.4
### Embree 4.4.0
- Added support for passing geometry data to Embree using explicit host and SYCL device memory (see `rtcSetSharedGeometryBufferHostDevice`, `rtcNewBufferHostDevice`, and other API calls with `HostDevice` suffix).
- Embree does not use SYCL shared memory anymore internally on systems without host unified memory (i.e., discrete GPUs). Therefore, memory transfers are triggered by specific Embree API calls (e.g. `rtcCommitScene`, `rtcCommitBuffer`).
+2 -2
View File
@@ -314,7 +314,7 @@ installation, put the path to `ispc` permanently into your `PATH` environment
variable or you set the `EMBREE_ISPC_EXECUTABLE` variable to point at the ISPC
executable during CMake configuration.
You additionally have to install CMake 3.1.0 or higher and the developer
You additionally have to install CMake 3.10 or higher and the developer
version of [GLFW](https://www.glfw.org/) version 3.
Under macOS, all these dependencies can be installed
@@ -480,7 +480,7 @@ Windows
Embree is tested using the following compilers under Windows:
- Intel® oneAPI DPC++/C++ Compiler 2024.2
- Intel® oneAPI DPC++/C++ Compiler 2025.2
- oneAPI DPC++/C++ Compiler 6.2.0
- Visual Studio 2022
- Visual Studio 2019
+24 -43
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCBufferType" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCFormat - specifies format of data in buffers
\f[R]
.fi
.EX
RTCFormat \- specifies format of data in buffers
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
enum RTCBufferType
@@ -52,47 +34,46 @@ enum RTCBufferType
RTC_BUFFER_TYPE_FLAGS = 32
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]RTBufferType\f[R] structure defines slots to assign data
The \f[CR]RTBufferType\f[R] structure defines slots to assign data
buffers to using the [rtcSetGeometryBuffer],
[rtcSetSharedGeometryBuffer], and [rtcSetNewGeometryBuffer] API calls.
.PP
For most geometry types the \f[V]RTC_BUFFER_TYPE_INDEX\f[R] slot is used
to assign an index buffer, while the \f[V]RTC_BUFFER_TYPE_VERTEX\f[R] is
used to assign the corresponding vertex buffer.
For most geometry types the \f[CR]RTC_BUFFER_TYPE_INDEX\f[R] slot is
used to assign an index buffer, while the
\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R] is used to assign the corresponding
vertex buffer.
.PP
The \f[V]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R] slot can get used to
The \f[CR]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R] slot can get used to
assign arbitrary additional vertex data which can get interpolated using
the [rtcInterpolate] API call.
.PP
The \f[V]RTC_BUFFER_TYPE_NORMAL\f[R], \f[V]RTC_BUFFER_TYPE_TANGENT\f[R],
and \f[V]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R] are special buffers
The \f[CR]RTC_BUFFER_TYPE_NORMAL\f[R],
\f[CR]RTC_BUFFER_TYPE_TANGENT\f[R], and
\f[CR]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R] are special buffers
required to assign per vertex normals, tangents, and normal derivatives
for some curve types.
.PP
The \f[V]RTC_BUFFER_TYPE_GRID\f[R] buffer is used to assign the grid
The \f[CR]RTC_BUFFER_TYPE_GRID\f[R] buffer is used to assign the grid
primitive buffer for grid geometries (see [RTC_GEOMETRY_TYPE_GRID]).
.PP
The \f[V]RTC_BUFFER_TYPE_FACE\f[R], \f[V]RTC_BUFFER_TYPE_LEVEL\f[R],
\f[V]RTC_BUFFER_TYPE_EDGE_CREASE_INDEX\f[R],
\f[V]RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT\f[R],
\f[V]RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX\f[R],
\f[V]RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT\f[R], and
\f[V]RTC_BUFFER_TYPE_HOLE\f[R] are special buffers required to create
The \f[CR]RTC_BUFFER_TYPE_FACE\f[R], \f[CR]RTC_BUFFER_TYPE_LEVEL\f[R],
\f[CR]RTC_BUFFER_TYPE_EDGE_CREASE_INDEX\f[R],
\f[CR]RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT\f[R],
\f[CR]RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX\f[R],
\f[CR]RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT\f[R], and
\f[CR]RTC_BUFFER_TYPE_HOLE\f[R] are special buffers required to create
subdivision meshes (see [RTC_GEOMETRY_TYPE_SUBDIVISION]).
.PP
The \f[V]RTC_BUFFER_TYPE_TRANSFORM\f[R] buffer is used to provide
The \f[CR]RTC_BUFFER_TYPE_TRANSFORM\f[R] buffer is used to provide
instance transformation information for instance array geometries (see
[RTC_GEOMETRY_TYPE_INSTANCE_ARRAY]).
.PP
The \f[V]RTC_BUFFER_TYPE_FLAGS\f[R] can get used to add additional flag
The \f[CR]RTC_BUFFER_TYPE_FLAGS\f[R] can get used to add additional flag
per primitive of a geometry, and is currently only used for linear
curves.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[rtcSetGeometryBuffer], [rtcSetSharedGeometryBuffer],
[rtcSetNewGeometryBuffer]
+6 -27
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCCurveFlags" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCCurveFlags - per segment flags for curve geometry
\f[R]
.fi
.EX
RTCCurveFlags \- per segment flags for curve geometry
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
enum RTCCurveFlags
@@ -34,10 +16,8 @@ enum RTCCurveFlags
RTC_CURVE_FLAG_NEIGHBOR_LEFT = (1 << 0),
RTC_CURVE_FLAG_NEIGHBOR_RIGHT = (1 << 1)
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The RTCCurveFlags type is used for linear curves to determine if the
left and/or right neighbor segment exist.
Therefore one attaches a buffer of type RTC_BUFFER_TYPE_FLAGS to the
@@ -58,5 +38,4 @@ rendering at the ending of these curves may not look correct, in
particular when round linear curves are viewed from the inside.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTC_GEOMETRY_TYPE_CURVE]
+17 -38
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCFeatureFlags" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCFeatureFlags - specifies features to enable
.EX
RTCFeatureFlags \- specifies features to enable
for ray queries
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
enum RTCFeatureFlags
@@ -90,27 +72,25 @@ enum RTCFeatureFlags
RTC_FEATURE_FLAG_ALL = 0xffffffff
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]RTCFeatureFlags\f[R] enum specify a bit mask to enable specific
ray tracing features for ray query operations.
The feature flags are passed to the \f[V]rtcIntersect1/4/8/16\f[R] and
\f[V]rtcOccluded1/4/8/16\f[R] functions through the
\f[V]RTCIntersectArguments\f[R] and \f[V]RTCOccludedArguments\f[R]
The \f[CR]RTCFeatureFlags\f[R] enum specify a bit mask to enable
specific ray tracing features for ray query operations.
The feature flags are passed to the \f[CR]rtcIntersect1/4/8/16\f[R] and
\f[CR]rtcOccluded1/4/8/16\f[R] functions through the
\f[CR]RTCIntersectArguments\f[R] and \f[CR]RTCOccludedArguments\f[R]
structures.
Only a ray tracing feature whose bit is enabled in the feature mask can
get used.
If a feature bit is not set, the behaviour is undefined, thus the
feature may work or not.
To enable multiple features the respective features have to get combined
using a bitwise \f[V]OR\f[R] operation.
using a bitwise \f[CR]OR\f[R] operation.
.PP
The purpose of feature flags is to reduce code size on the GPU by
enabling just the features required to render the scene.
On the CPU there is no need to use feature flags, and the default of all
features enabled (\f[V]RTC_FEATURE_FLAG_ALL\f[R]) can just be kept.
features enabled (\f[CR]RTC_FEATURE_FLAG_ALL\f[R]) can just be kept.
.PP
The following features can get enabled using feature flags:
.IP \[bu] 2
@@ -148,7 +128,7 @@ RTC_FEATURE_FLAG_LINEAR_CURVES: Enables all linear curves
RTC_FEATURE_FLAG_BEZIER_CURVES: Enables all Bézier curves
(RTC_GEOMETRY_TYPE_XXX_BEZIER_CURVE).
.IP \[bu] 2
RTC_FEATURE_FLAG_BSPLINE_CURVES: Enables all B-spline curves
RTC_FEATURE_FLAG_BSPLINE_CURVES: Enables all B\-spline curves
(RTC_GEOMETRY_TYPE_XXX_BSPLINE_CURVE).
.IP \[bu] 2
RTC_FEATURE_FLAG_HERMITE_CURVES: Enables all Hermite curves
@@ -172,14 +152,14 @@ RTC_FEATURE_FLAG_FLAT_BEZIER_CURVE: Enables flat Bézier curves
RTC_FEATURE_FLAG_NORMAL_ORIENTED_BEZIER_CURVE: Enables normal oriented
Bézier curves (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE).
.IP \[bu] 2
RTC_FEATURE_FLAG_ROUND_BSPLINE_CURVE: Enables round B-spline curves
RTC_FEATURE_FLAG_ROUND_BSPLINE_CURVE: Enables round B\-spline curves
(RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE).
.IP \[bu] 2
RTC_FEATURE_FLAG_FLAT_BSPLINE_CURVE: Enables flat B-spline curves
RTC_FEATURE_FLAG_FLAT_BSPLINE_CURVE: Enables flat B\-spline curves
(RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE).
.IP \[bu] 2
RTC_FEATURE_FLAG_NORMAL_ORIENTED_BSPLINE_CURVE: Enables normal oriented
B-spline curves (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE).
B\-spline curves (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE).
.IP \[bu] 2
RTC_FEATURE_FLAG_ROUND_HERMITE_CURVE: Enables round Hermite curves
(RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE).
@@ -239,6 +219,5 @@ correctly.
RTC_FEATURE_FLAG_ALL: Enables all features (default).
.SS EXIT STATUS
.SS SEE ALSO
.PP
[rtcIntersect1], [rtcIntersect4/8/16], [rtcOccluded1],
[rtcOccluded4/8/16],
+20 -41
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCFormat" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCFormat - specifies format of data in buffers
\f[R]
.fi
.EX
RTCFormat \- specifies format of data in buffers
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
enum RTCFormat
@@ -63,47 +45,44 @@ enum RTCFormat
RTC_FORMAT_QUATERNION_DECOMPOSITION
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]RTFormat\f[R] structure defines the data format stored in data
The \f[CR]RTFormat\f[R] structure defines the data format stored in data
buffers provided to Embree using the [rtcSetGeometryBuffer],
[rtcSetSharedGeometryBuffer], and [rtcSetNewGeometryBuffer] API calls.
.PP
The \f[V]RTC_FORMAT_UINT/2/3/4\f[R] format are used to specify that data
buffers store unsigned integers, or unsigned integer vectors of size 2,3
or 4.
The \f[CR]RTC_FORMAT_UINT/2/3/4\f[R] format are used to specify that
data buffers store unsigned integers, or unsigned integer vectors of
size 2,3 or 4.
This format has typically to get used when specifying index buffers,
e.g.\ \f[V]RTC_FORMAT_UINT3\f[R] for triangle meshes.
e.g.\ \f[CR]RTC_FORMAT_UINT3\f[R] for triangle meshes.
.PP
The \f[V]RTC_FORMAT_FLOAT/2/3/4...\f[R] format are used to specify that
The \f[CR]RTC_FORMAT_FLOAT/2/3/4...\f[R] format are used to specify that
data buffers store single precision floating point values, or vectors
there of (size 2,3,4, etc.).
This format is typcally used to specify to format of vertex buffers,
e.g.\ the \f[V]RTC_FORMAT_FLOAT3\f[R] type for vertex buffers of
e.g.\ the \f[CR]RTC_FORMAT_FLOAT3\f[R] type for vertex buffers of
triangle meshes.
.PP
The \f[V]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R] and
\f[V]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R] formats, specify a 3x4
The \f[CR]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R] and
\f[CR]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R] formats, specify a 3x4
floating point matrix layed out either row major or column major.
The \f[V]RTC_FORMAT_FLOAT4X4_ROW_MAJOR\f[R] and
\f[V]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R] formats, specify a 4x4
The \f[CR]RTC_FORMAT_FLOAT4X4_ROW_MAJOR\f[R] and
\f[CR]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R] formats, specify a 4x4
floating point matrix layed out either row major or column major.
The \f[V]RTC_FORMAT_QUATERNION_DECOMPOSITION\f[R] format specifies a
The \f[CR]RTC_FORMAT_QUATERNION_DECOMPOSITION\f[R] format specifies a
structure that represents a quaternion decomposition (see
[RTCQuaternionDecomposition]) of an affine transformation.
These formats are used in the [rtcSetGeometryTransform] function or in
geometry buffers with type \f[V]RTC_BUFFER_TYPE_TRANSFORM\f[R] in order
geometry buffers with type \f[CR]RTC_BUFFER_TYPE_TRANSFORM\f[R] in order
to set a transformation matrix for instance and instance array
geometries.
.PP
The \f[V]RTC_FORMAT_GRID\f[R] is a special data format used to specify
The \f[CR]RTC_FORMAT_GRID\f[R] is a special data format used to specify
grid primitives of layout RTCGrid when creating grid geometries (see
[RTC_GEOMETRY_TYPE_GRID]).
.SS EXIT STATUS
.SS SEE ALSO
.PP
[rtcSetGeometryBuffer], [rtcSetSharedGeometryBuffer],
[rtcSetNewGeometryBuffer], [rtcSetGeometryTransform]
[RTCQuaternionDecomposition]
+19 -40
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCHit" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCHit - single hit structure
\f[R]
.fi
.EX
RTCHit \- single hit structure
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCHit
@@ -42,28 +24,25 @@ struct RTCHit
unsigned int geomID; // primitive ID
unsigned int instID[RTC_MAX_INSTANCE_LEVEL_COUNT]; // instance ID
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]RTCHit\f[R] type defines the type of a ray/primitive
The \f[CR]RTCHit\f[R] type defines the type of a ray/primitive
intersection result.
The hit contains the unnormalized geometric normal in object space at
the hit location (\f[V]Ng_x\f[R], \f[V]Ng_y\f[R], \f[V]Ng_z\f[R]
members), the barycentric u/v coordinates of the hit (\f[V]u\f[R] and
\f[V]v\f[R] members), as well as the primitive ID (\f[V]primID\f[R]
member), geometry ID (\f[V]geomID\f[R] member), and instance ID stack
(\f[V]instID\f[R] member) of the hit.
the hit location (\f[CR]Ng_x\f[R], \f[CR]Ng_y\f[R], \f[CR]Ng_z\f[R]
members), the barycentric u/v coordinates of the hit (\f[CR]u\f[R] and
\f[CR]v\f[R] members), as well as the primitive ID (\f[CR]primID\f[R]
member), geometry ID (\f[CR]geomID\f[R] member), and instance ID stack
(\f[CR]instID\f[R] member) of the hit.
The parametric intersection distance is not stored inside the hit, but
stored inside the \f[V]tfar\f[R] member of the ray.
stored inside the \f[CR]tfar\f[R] member of the ray.
.PP
The \f[V]embree4/rtcore_ray.h\f[R] header additionally defines the same
The \f[CR]embree4/rtcore_ray.h\f[R] header additionally defines the same
hit structure in structure of array (SOA) layout for hit packets of size
4 (\f[V]RTCHit4\f[R] type), size 8 (\f[V]RTCHit8\f[R] type), and size 16
(\f[V]RTCHit16\f[R] type).
The header additionally defines an \f[V]RTCHitNt\f[R] template for hit
packets of an arbitrary compile-time size.
4 (\f[CR]RTCHit4\f[R] type), size 8 (\f[CR]RTCHit8\f[R] type), and size
16 (\f[CR]RTCHit16\f[R] type).
The header additionally defines an \f[CR]RTCHitNt\f[R] template for hit
packets of an arbitrary compile\-time size.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTCRay], [Multi-Level Instancing]
[RTCRay], [Multi\-Level Instancing]
+13 -34
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCHitN" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCHitN - hit packet of runtime size
\f[R]
.fi
.EX
RTCHitN \- hit packet of runtime size
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct HitN;
@@ -41,26 +23,23 @@ float& RTCHitN_v(RTCHitN* hit, unsigned int N, unsigned int i);
unsigned& RTCHitN_primID(RTCHitN* hit, unsigned int N, unsigned int i);
unsigned& RTCHitN_geomID(RTCHitN* hit, unsigned int N, unsigned int i);
unsigned& RTCHitN_instID(RTCHitN* hit, unsigned int N, unsigned int i, unsigned int level);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
When the hit packet size is not known at compile time (e.g.\ when Embree
returns a hit packet in the \f[V]RTCFilterFuncN\f[R] callback function),
Embree uses the \f[V]RTCHitN\f[R] type for hit packets.
returns a hit packet in the \f[CR]RTCFilterFuncN\f[R] callback
function), Embree uses the \f[CR]RTCHitN\f[R] type for hit packets.
These hit packets can only have sizes of 1, 4, 8, or 16.
No other packet size will be used.
.PP
You can either implement different special code paths for each of these
possible packet sizes and cast the hit to the appropriate hit packet
type, or implement one general code path that uses the
\f[V]RTCHitN_XXX\f[R] helper functions to access hit packet components.
\f[CR]RTCHitN_XXX\f[R] helper functions to access hit packet components.
.PP
These helper functions get a pointer to the hit packet (\f[V]hit\f[R]
argument), the packet size (\f[V]N\f[R] argument), and returns a
reference to a component (e.g.\ x component of \f[V]Ng\f[R]) of the the
i-th hit of the packet (\f[V]i\f[R] argument).
These helper functions get a pointer to the hit packet (\f[CR]hit\f[R]
argument), the packet size (\f[CR]N\f[R] argument), and returns a
reference to a component (e.g.\ x component of \f[CR]Ng\f[R]) of the the
i\-th hit of the packet (\f[CR]i\f[R] argument).
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTCRayN]
+15 -37
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCQuaternionDecomposition" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCQuaternionDecomposition - structure that represents a quaternion
.EX
RTCQuaternionDecomposition \- structure that represents a quaternion
decomposition of an affine transformation
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
struct RTCQuaternionDecomposition
{
float scale_x, scale_y, scale_z;
@@ -36,11 +18,9 @@ struct RTCQuaternionDecomposition
float quaternion_r, quaternion_i, quaternion_j, quaternion_k;
float translation_x, translation_y, translation_z;
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The struct \f[V]RTCQuaternionDecomposition\f[R] represents an affine
The struct \f[CR]RTCQuaternionDecomposition\f[R] represents an affine
transformation decomposed into three parts.
An upper triangular scaling/skew/shift matrix
.PP
@@ -77,24 +57,22 @@ units.
The passed quaternion will be normalized internally.
.PP
The affine transformation matrix corresponding to a
\f[V]RTCQuaternionDecomposition\f[R] is
\f[CR]RTCQuaternionDecomposition\f[R] is
\f[I]T\f[R]\f[I]R\f[R]\f[I]S\f[R] and a point
\f[I]p\f[R] = (\f[I]p\f[R]~\f[I]x\f[R]~,\f[I]p\f[R]~\f[I]y\f[R]~,\f[I]p\f[R]~\f[I]z\f[R]~,1)^\f[I]T\f[R]^
\f[I]p\f[R] = (\f[I]p\f[R]~\f[I]x\f[R]~, \f[I]p\f[R]~\f[I]y\f[R]~, \f[I]p\f[R]~\f[I]z\f[R]~, 1)^\f[I]T\f[R]^
will be transformed as
.RS
\f[I]p\f[R]′ = \f[I]T\f[R]\ \f[I]R\f[R]\ \f[I]S\f[R]\ \f[I]p\f[R].
.RE
.PP
The functions \f[V]rtcInitQuaternionDecomposition\f[R],
\f[V]rtcQuaternionDecompositionSetQuaternion\f[R],
\f[V]rtcQuaternionDecompositionSetScale\f[R],
\f[V]rtcQuaternionDecompositionSetSkew\f[R],
\f[V]rtcQuaternionDecompositionSetShift\f[R], and
\f[V]rtcQuaternionDecompositionSetTranslation\f[R] allow to set the
The functions \f[CR]rtcInitQuaternionDecomposition\f[R],
\f[CR]rtcQuaternionDecompositionSetQuaternion\f[R],
\f[CR]rtcQuaternionDecompositionSetScale\f[R],
\f[CR]rtcQuaternionDecompositionSetSkew\f[R],
\f[CR]rtcQuaternionDecompositionSetShift\f[R], and
\f[CR]rtcQuaternionDecompositionSetTranslation\f[R] allow to set the
fields of the structure more conveniently.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcSetGeometryTransformQuaternion], [rtcInitQuaternionDecomposition]
+22 -43
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCRay" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCRay - single ray structure
\f[R]
.fi
.EX
RTCRay \- single ray structure
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
struct RTC_ALIGN(16) RTCRay
@@ -46,37 +28,34 @@ struct RTC_ALIGN(16) RTCRay
unsigned int id; // ray ID
unsigned int flags; // ray flags
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]RTCRay\f[R] structure defines the ray layout for a single ray.
The ray contains the origin (\f[V]org_x\f[R], \f[V]org_y\f[R],
\f[V]org_z\f[R] members), direction vector (\f[V]dir_x\f[R],
\f[V]dir_y\f[R], \f[V]dir_z\f[R] members), and ray segment
(\f[V]tnear\f[R] and \f[V]tfar\f[R] members).
The \f[CR]RTCRay\f[R] structure defines the ray layout for a single ray.
The ray contains the origin (\f[CR]org_x\f[R], \f[CR]org_y\f[R],
\f[CR]org_z\f[R] members), direction vector (\f[CR]dir_x\f[R],
\f[CR]dir_y\f[R], \f[CR]dir_z\f[R] members), and ray segment
(\f[CR]tnear\f[R] and \f[CR]tfar\f[R] members).
The ray direction does not have to be normalized, and only the parameter
range specified by the \f[V]tnear\f[R]/\f[V]tfar\f[R] interval is
range specified by the \f[CR]tnear\f[R]/\f[CR]tfar\f[R] interval is
considered valid.
.PP
The ray segment must be in the range [0,∞], thus ranges that start
The ray segment must be in the range [0, ∞], thus ranges that start
behind the ray origin are not allowed, but ranges can reach to infinity.
.PP
The ray further contains a motion blur time in the range [0,1]
(\f[V]time\f[R] member), a ray mask (\f[V]mask\f[R] member), a ray ID
(\f[V]id\f[R] member), and ray flags (\f[V]flags\f[R] member).
The ray further contains a motion blur time in the range [0, 1]
(\f[CR]time\f[R] member), a ray mask (\f[CR]mask\f[R] member), a ray ID
(\f[CR]id\f[R] member), and ray flags (\f[CR]flags\f[R] member).
The ray mask can be used to mask out some geometries for some rays (see
\f[V]rtcSetGeometryMask\f[R] for more details).
\f[CR]rtcSetGeometryMask\f[R] for more details).
The ray ID can be used to identify a ray inside a callback function,
even if the order of rays inside a ray packet has changed.
.PP
The \f[V]embree4/rtcore_ray.h\f[R] header additionally defines the same
The \f[CR]embree4/rtcore_ray.h\f[R] header additionally defines the same
ray structure in structure of array (SOA) layout for API functions
accepting ray packets of size 4 (\f[V]RTCRay4\f[R] type), size 8
(\f[V]RTCRay8\f[R] type), and size 16 (\f[V]RTCRay16\f[R] type).
The header additionally defines an \f[V]RTCRayNt\f[R] template for ray
packets of an arbitrary compile-time size.
accepting ray packets of size 4 (\f[CR]RTCRay4\f[R] type), size 8
(\f[CR]RTCRay8\f[R] type), and size 16 (\f[CR]RTCRay16\f[R] type).
The header additionally defines an \f[CR]RTCRayNt\f[R] template for ray
packets of an arbitrary compile\-time size.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTCHit]
+13 -34
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCRay" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCRayHit - combined single ray/hit structure
\f[R]
.fi
.EX
RTCRayHit \- combined single ray/hit structure
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
struct RTCORE_ALIGN(16) RTCRayHit
@@ -34,21 +16,18 @@ struct RTCORE_ALIGN(16) RTCRayHit
struct RTCRay ray;
struct RTCHit hit;
};
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]RTCRayHit\f[R] structure is used as input for the
\f[V]rtcIntersect\f[R]-type functions and stores the ray to intersect
The \f[CR]RTCRayHit\f[R] structure is used as input for the
\f[CR]rtcIntersect\f[R]\-type functions and stores the ray to intersect
and some hit fields that hold the intersection result afterwards.
.PP
The \f[V]embree4/rtcore_ray.h\f[R] header additionally defines the same
The \f[CR]embree4/rtcore_ray.h\f[R] header additionally defines the same
ray/hit structure in structure of array (SOA) layout for API functions
accepting ray packets of size 4 (\f[V]RTCRayHit4\f[R] type), size 8
(\f[V]RTCRayHit8\f[R] type), and size 16 (\f[V]RTCRayHit16\f[R] type).
The header additionally defines an \f[V]RTCRayHitNt\f[R] template to
generate ray/hit packets of an arbitrary compile-time size.
accepting ray packets of size 4 (\f[CR]RTCRayHit4\f[R] type), size 8
(\f[CR]RTCRayHit8\f[R] type), and size 16 (\f[CR]RTCRayHit16\f[R] type).
The header additionally defines an \f[CR]RTCRayHitNt\f[R] template to
generate ray/hit packets of an arbitrary compile\-time size.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTCRay], [RTCHit]
+12 -33
View File
@@ -1,57 +1,36 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCRayHitN" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCRayHitN - combined ray/hit packet of runtime size
\f[R]
.fi
.EX
RTCRayHitN \- combined ray/hit packet of runtime size
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
struct RTCRayHitN;
struct RTCRayN* RTCRayHitN_RayN(struct RTCRayHitN* rayhit, unsigned int N);
struct RTCHitN* RTCRayHitN_HitN(struct RTCRayHitN* rayhit, unsigned int N);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
When the packet size of a ray/hit structure is not known at compile time
(e.g.\ when Embree returns a ray/hit packet in the
\f[V]RTCIntersectFunctionN\f[R] callback function), Embree uses the
\f[V]RTCRayHitN\f[R] type for ray packets.
\f[CR]RTCIntersectFunctionN\f[R] callback function), Embree uses the
\f[CR]RTCRayHitN\f[R] type for ray packets.
These ray/hit packets can only have sizes of 1, 4, 8, or 16.
No other packet size will be used.
.PP
You can either implement different special code paths for each of these
possible packet sizes and cast the ray/hit to the appropriate ray/hit
packet type, or extract the \f[V]RTCRayN\f[R] and \f[V]RTCHitN\f[R]
components using the \f[V]rtcGetRayN\f[R] and \f[V]rtcGetHitN\f[R]
helper functions and use the \f[V]RTCRayN_XXX\f[R] and
\f[V]RTCHitN_XXX\f[R] functions to access the ray and hit parts of the
packet type, or extract the \f[CR]RTCRayN\f[R] and \f[CR]RTCHitN\f[R]
components using the \f[CR]rtcGetRayN\f[R] and \f[CR]rtcGetHitN\f[R]
helper functions and use the \f[CR]RTCRayN_XXX\f[R] and
\f[CR]RTCHitN_XXX\f[R] functions to access the ray and hit parts of the
structure.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTCHitN]
+13 -34
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTCRayN" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCRayN - ray packet of runtime size
\f[R]
.fi
.EX
RTCRayN \- ray packet of runtime size
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore_ray.h>
struct RTCRayN;
@@ -45,27 +27,24 @@ float& RTCRayN_tfar (RTCRayN* ray, unsigned int N, unsigned int i);
unsigned int& RTCRayN_mask (RTCRayN* ray, unsigned int N, unsigned int i);
unsigned int& RTCRayN_id (RTCRayN* ray, unsigned int N, unsigned int i);
unsigned int& RTCRayN_flags(RTCRayN* ray, unsigned int N, unsigned int i);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
When the ray packet size is not known at compile time (e.g.\ when Embree
returns a ray packet in the \f[V]RTCFilterFuncN\f[R] callback function),
Embree uses the \f[V]RTCRayN\f[R] type for ray packets.
returns a ray packet in the \f[CR]RTCFilterFuncN\f[R] callback
function), Embree uses the \f[CR]RTCRayN\f[R] type for ray packets.
These ray packets can only have sizes of 1, 4, 8, or 16.
No other packet size will be used.
.PP
You can either implement different special code paths for each of these
possible packet sizes and cast the ray to the appropriate ray packet
type, or implement one general code path that uses the
\f[V]RTCRayN_XXX\f[R] helper functions to access the ray packet
\f[CR]RTCRayN_XXX\f[R] helper functions to access the ray packet
components.
.PP
These helper functions get a pointer to the ray packet (\f[V]ray\f[R]
argument), the packet size (\f[V]N\f[R] argument), and returns a
reference to a component (e.g.\ x-component of origin) of the the i-th
ray of the packet (\f[V]i\f[R] argument).
These helper functions get a pointer to the ray packet (\f[CR]ray\f[R]
argument), the packet size (\f[CR]N\f[R] argument), and returns a
reference to a component (e.g.\ x\-component of origin) of the the i\-th
ray of the packet (\f[CR]i\f[R] argument).
.SS EXIT STATUS
.SS SEE ALSO
.PP
[RTCHitN]
+98 -126
View File
@@ -1,75 +1,57 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_*_CURVE" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE -
.EX
RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE \-
flat curve geometry with linear basis
RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE -
RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE \-
flat curve geometry with cubic Bézier basis
RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE -
flat curve geometry with cubic B-spline basis
RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE \-
flat curve geometry with cubic B\-spline basis
RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE -
RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE \-
flat curve geometry with cubic Hermite basis
RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE -
flat curve geometry with Catmull-Rom basis
RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE \-
flat curve geometry with Catmull\-Rom basis
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE -
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE \-
flat normal oriented curve geometry with cubic Bézier basis
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE -
flat normal oriented curve geometry with cubic B-spline basis
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE \-
flat normal oriented curve geometry with cubic B\-spline basis
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE -
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE \-
flat normal oriented curve geometry with cubic Hermite basis
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_CATMULL_ROM_CURVE -
flat normal oriented curve geometry with Catmull-Rom basis
RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_CATMULL_ROM_CURVE \-
flat normal oriented curve geometry with Catmull\-Rom basis
RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE -
capped cone curve geometry with linear basis - discontinuous at edge boundaries
RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE \-
capped cone curve geometry with linear basis \- discontinuous at edge boundaries
RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE -
RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE \-
capped cone curve geometry with linear basis and spherical ending
RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE -
RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE \-
swept surface curve geometry with cubic Bézier basis
RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE -
swept surface curve geometry with cubic B-spline basis
RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE \-
swept surface curve geometry with cubic B\-spline basis
RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE -
RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE \-
swept surface curve geometry with cubic Hermite basis
RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE -
swept surface curve geometry with Catmull-Rom basis
\f[R]
.fi
RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE \-
swept surface curve geometry with Catmull\-Rom basis
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE);
@@ -87,78 +69,76 @@ rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Curves with per vertex radii are supported with linear, cubic Bézier,
cubic B-spline, and cubic Hermite bases.
cubic B\-spline, and cubic Hermite bases.
Such curve geometries are created by passing
\f[V]RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_BSPLINE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_HERMITE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_CATMULL_ROM_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE\f[R], or
\f[V]RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE\f[R] to the
\f[V]rtcNewGeometry\f[R] function.
\f[CR]RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_BSPLINE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_HERMITE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_FLAT_CATMULL_ROM_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE\f[R], or
\f[CR]RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE\f[R] to the
\f[CR]rtcNewGeometry\f[R] function.
The curve indices can be specified through an index buffer
(\f[V]RTC_BUFFER_TYPE_INDEX\f[R]) and the curve vertices through a
vertex buffer (\f[V]RTC_BUFFER_TYPE_VERTEX\f[R]).
(\f[CR]RTC_BUFFER_TYPE_INDEX\f[R]) and the curve vertices through a
vertex buffer (\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R]).
For the Hermite basis a tangent buffer
(\f[V]RTC_BUFFER_TYPE_TANGENT\f[R]), normal oriented curves a normal
buffer (\f[V]RTC_BUFFER_TYPE_NORMAL\f[R]), and for normal oriented
(\f[CR]RTC_BUFFER_TYPE_TANGENT\f[R]), normal oriented curves a normal
buffer (\f[CR]RTC_BUFFER_TYPE_NORMAL\f[R]), and for normal oriented
Hermite curves a normal derivative buffer
(\f[V]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R]) has to get specified
(\f[CR]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R]) has to get specified
additionally.
See \f[V]rtcSetGeometryBuffer\f[R] and
\f[V]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
See \f[CR]rtcSetGeometryBuffer\f[R] and
\f[CR]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
buffers.
.PP
The index buffer contains an array of 32-bit indices
(\f[V]RTC_FORMAT_UINT\f[R] format), each pointing to the first control
The index buffer contains an array of 32\-bit indices
(\f[CR]RTC_FORMAT_UINT\f[R] format), each pointing to the first control
vertex in the vertex buffer, but also to the first tangent in the
tangent buffer, and first normal in the normal buffer if these buffers
are present.
.PP
The vertex buffer stores each control vertex in the form of a single
precision position and radius stored in (\f[V]x\f[R], \f[V]y\f[R],
\f[V]z\f[R], \f[V]r\f[R]) order in memory (\f[V]RTC_FORMAT_FLOAT4\f[R]
format).
precision position and radius stored in (\f[CR]x\f[R], \f[CR]y\f[R],
\f[CR]z\f[R], \f[CR]r\f[R]) order in memory
(\f[CR]RTC_FORMAT_FLOAT4\f[R] format).
The number of vertices is inferred from the size of this buffer.
The radii may be smaller than zero but the interpolated radii should
always be greater or equal to zero.
Similarly, the tangent buffer stores the derivative of each control
vertex (\f[V]x\f[R], \f[V]y\f[R], \f[V]z\f[R], \f[V]r\f[R] order and
\f[V]RTC_FORMAT_FLOAT4\f[R] format) and the normal buffer stores a
single precision normal per control vertex (\f[V]x\f[R], \f[V]y\f[R],
\f[V]z\f[R] order and \f[V]RTC_FORMAT_FLOAT3\f[R] format).
vertex (\f[CR]x\f[R], \f[CR]y\f[R], \f[CR]z\f[R], \f[CR]r\f[R] order and
\f[CR]RTC_FORMAT_FLOAT4\f[R] format) and the normal buffer stores a
single precision normal per control vertex (\f[CR]x\f[R], \f[CR]y\f[R],
\f[CR]z\f[R] order and \f[CR]RTC_FORMAT_FLOAT3\f[R] format).
.SS Linear Basis
.PP
For the linear basis the indices point to the first of 2 consecutive
control points in the vertex buffer.
The first control point is the start and the second control point the
end of the line segment.
When constructing hair strands in this basis, the end-point can be
When constructing hair strands in this basis, the end\-point can be
shared with the start of the next line segment.
.PP
For the linear basis the user optionally can provide a flags buffer of
type \f[V]RTC_BUFFER_TYPE_FLAGS\f[R] which contains bytes that encode if
the left neighbor segment (\f[V]RTC_CURVE_FLAG_NEIGHBOR_LEFT\f[R] flag)
and/or right neighbor segment (\f[V]RTC_CURVE_FLAG_NEIGHBOR_RIGHT\f[R]
flags) exist (see [RTCCurveFlags]).
type \f[CR]RTC_BUFFER_TYPE_FLAGS\f[R] which contains bytes that encode
if the left neighbor segment (\f[CR]RTC_CURVE_FLAG_NEIGHBOR_LEFT\f[R]
flag) and/or right neighbor segment
(\f[CR]RTC_CURVE_FLAG_NEIGHBOR_RIGHT\f[R] flags) exist (see
[RTCCurveFlags]).
If this buffer is not set, than the left/right neighbor bits are
automatically calculated base on the index buffer (left segment exists
if segment(id-1)+1 == segment(id) and right segment exists if
segment(id+1)-1 == segment(id)).
if segment(id\-1)+1 == segment(id) and right segment exists if
segment(id+1)\-1 == segment(id)).
.PP
A left neighbor segment is assumed to end at the start vertex of the
current segment, and to start at the previous vertex in the vertex
@@ -171,7 +151,6 @@ Only when the left and right bits are properly specified the current
segment can properly attach to the left and/or right neighbor, otherwise
the touching area may not get rendered properly.
.SS Bézier Basis
.PP
For the cubic Bézier basis the indices point to the first of 4
consecutive control points in the vertex buffer.
These control points use the cubic Bézier basis, where the first control
@@ -179,11 +158,10 @@ point represents the start point of the curve, and the 4th control point
the end point of the curve.
The Bézier basis is interpolating, thus the curve does go exactly
through the first and fourth control vertex.
.SS B-spline Basis
.PP
For the cubic B-spline basis the indices point to the first of 4
.SS B\-spline Basis
For the cubic B\-spline basis the indices point to the first of 4
consecutive control points in the vertex buffer.
These control points make up a cardinal cubic B-spline (implicit
These control points make up a cardinal cubic B\-spline (implicit
equidistant knot vector).
This basis is not interpolating, thus the curve does in general not go
through any of the control points directly.
@@ -191,9 +169,8 @@ A big advantage of this basis is that 3 control points can be shared for
two continuous neighboring curve segments, e.g.\ the curves
(p0,p1,p2,p3) and (p1,p2,p3,p4) are C1 continuous.
This feature makes this basis a good choice to construct continuous
multi-segment curves, as memory consumption can be kept minimal.
multi\-segment curves, as memory consumption can be kept minimal.
.SS Hermite Basis
.PP
For the cubic Hermite basis the indices point to the first of 2
consecutive points in the vertex buffer, and the first of 2 consecutive
tangents in the tangent buffer.
@@ -203,41 +180,39 @@ second control point, and the first order derivative at the begin and
end matches exactly the value specified in the tangent buffer.
When connecting two segments continuously, the end point and tangent of
the previous segment can be shared.
Different versions of Catmull-Rom splines can be easily constructed
Different versions of Catmull\-Rom splines can be easily constructed
using the Hermite basis, by calculating a proper tangent buffer from the
control points.
.SS Catmull-Rom Basis
.PP
For the Catmull-Rom basis the indices point to the first of 4
.SS Catmull\-Rom Basis
For the Catmull\-Rom basis the indices point to the first of 4
consecutive control points in the vertex buffer.
This basis goes through p1 and p2, with tangents (p2-p0)/2 and
(p3-p1)/2.
This basis goes through p1 and p2, with tangents (p2\-p0)/2 and
(p3\-p1)/2.
.SS Flat Curves
.PP
The \f[V]RTC_GEOMETRY_TYPE_FLAT_*\f[R] flat mode is a fast mode designed
to render distant hair.
The \f[CR]RTC_GEOMETRY_TYPE_FLAT_*\f[R] flat mode is a fast mode
designed to render distant hair.
In this mode the curve is rendered as a connected sequence of ray facing
quads.
Individual quads are considered to have subpixel size, and zooming onto
the curve might show geometric artifacts.
The number of quads to subdivide into can be specified through the
\f[V]rtcSetGeometryTessellationRate\f[R] function.
\f[CR]rtcSetGeometryTessellationRate\f[R] function.
By default the tessellation rate is 4.
.SS Normal Oriented Curves
.PP
The \f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_*\f[R] mode is a mode
The \f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_*\f[R] mode is a mode
designed to render blades of grass.
In this mode a vertex spline has to get specified as for the previous
modes, but additionally a normal spline is required.
If the Hermite basis is used, the \f[V]RTC_BUFFER_TYPE_NORMAL\f[R] and
\f[V]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R] buffers have both to be set.
If the Hermite basis is used, the \f[CR]RTC_BUFFER_TYPE_NORMAL\f[R] and
\f[CR]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R] buffers have both to be
set.
.PP
The curve is rendered as a flat band whose center approximately follows
the provided vertex spline, whose half width approximately follows the
provided radius spline, and whose normal orientation approximately
follows the provided normal spline.
.PP
To intersect the normal oriented curve, we perform a newton-raphson
To intersect the normal oriented curve, we perform a newton\-raphson
style intersection of a ray with a tensor product surface of a linear
basis (perpendicular to the curve) and cubic Bézier basis (along the
curve).
@@ -256,13 +231,12 @@ We further assume second order derivatives of the center curve to be
zero for this construction, as otherwise very large curvatures occurring
in corner cases, can thicken the constructed curve significantly.
.SS Round Curves
.PP
In the \f[V]RTC_GEOMETRY_TYPE_ROUND_*\f[R] round mode, a real geometric
In the \f[CR]RTC_GEOMETRY_TYPE_ROUND_*\f[R] round mode, a real geometric
surface is rendered for the curve, which is more expensive but allows
closeup views.
.PP
For the linear basis the round mode renders a cone that tangentially
touches a start-sphere and end-sphere.
touches a start\-sphere and end\-sphere.
The start sphere is rendered when no previous segments is indicated by
the neighbor bits.
The end sphere is always rendered but parts that lie inside the next
@@ -278,21 +252,21 @@ As a limitation, the radius of the curve has to be smaller than the
curvature radius of the curve at each location on the curve.
.PP
The intersection with the curve segment stores the parametric hit
location along the curve segment as u-coordinate (range 0 to +1).
location along the curve segment as u\-coordinate (range 0 to +1).
.PP
For flat curves, the v-coordinate is set to the normalized distance in
the range -1 to +1.
For normal oriented curves the v-coordinate is in the range 0 to 1.
For the linear basis and in round mode the v-coordinate is set to zero.
For flat curves, the v\-coordinate is set to the normalized distance in
the range \-1 to +1.
For normal oriented curves the v\-coordinate is in the range 0 to 1.
For the linear basis and in round mode the v\-coordinate is set to zero.
.PP
In flat mode, the geometry normal \f[V]Ng\f[R] is set to the tangent of
In flat mode, the geometry normal \f[CR]Ng\f[R] is set to the tangent of
the curve at the hit location.
In round mode and for normal oriented curves, the geometry normal
\f[V]Ng\f[R] is set to the non-normalized geometric normal of the
\f[CR]Ng\f[R] is set to the non\-normalized geometric normal of the
surface.
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] call.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] call.
Then a vertex buffer for each time step can be set using different
buffer slots, and all these buffers must have the same stride and size.
For the Hermite basis also a tangent buffer has to be set for each time
@@ -302,9 +276,7 @@ for each time step.
Also see tutorials [Hair] and [Curves] for examples of how to create and
use curve geometries.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [RTCCurveFlags]
+39 -63
View File
@@ -1,98 +1,74 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_GRID" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_GRID - grid geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_GRID \- grid geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_GRID);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Grid meshes are created by passing \f[V]RTC_GEOMETRY_TYPE_GRID\f[R] to
the \f[V]rtcNewGeometry\f[R] function call, and contain an array of grid
primitives.
Grid meshes are created by passing \f[CR]RTC_GEOMETRY_TYPE_GRID\f[R] to
the \f[CR]rtcNewGeometry\f[R] function call, and contain an array of
grid primitives.
This array of grids can be specified by setting up a grid buffer (with
\f[V]RTC_BUFFER_TYPE_GRID\f[R] type and \f[V]RTC_FORMAT_GRID\f[R]
\f[CR]RTC_BUFFER_TYPE_GRID\f[R] type and \f[CR]RTC_FORMAT_GRID\f[R]
format) and the grid mesh vertices by setting a vertex buffer
(\f[V]RTC_BUFFER_TYPE_VERTEX\f[R] type).
See \f[V]rtcSetGeometryBuffer\f[R] and
\f[V]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
(\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R] type).
See \f[CR]rtcSetGeometryBuffer\f[R] and
\f[CR]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
buffers.
The number of grid primitives in the grid mesh is inferred from the size
of the grid buffer.
.PP
The vertex buffer contains an array of single precision \f[V]x\f[R],
\f[V]y\f[R], \f[V]z\f[R] floating point coordinates
(\f[V]RTC_FORMAT_FLOAT3\f[R] format), and the number of vertices is
The vertex buffer contains an array of single precision \f[CR]x\f[R],
\f[CR]y\f[R], \f[CR]z\f[R] floating point coordinates
(\f[CR]RTC_FORMAT_FLOAT3\f[R] format), and the number of vertices is
inferred from the size of that buffer.
.PP
Each grid in the grid buffer is of the type \f[V]RTCGrid\f[R]:
Each grid in the grid buffer is of the type \f[CR]RTCGrid\f[R]:
.IP
.nf
\f[C]
.EX
struct RTCGrid
{
unsigned int startVertexID;
unsigned int stride;
unsigned short width,height;
};
\f[R]
.fi
.EE
.PP
The \f[V]RTCGrid\f[R] structure describes a 2D grid of vertices (with
The \f[CR]RTCGrid\f[R] structure describes a 2D grid of vertices (with
respect to the vertex buffer of the grid mesh).
The \f[V]width\f[R] and \f[V]height\f[R] members specify the number of
vertices in u and v direction, e.g.\ setting both \f[V]width\f[R] and
\f[V]height\f[R] to 3 sets up a 3×3 vertex grid.
The maximum allowed \f[V]width\f[R] and \f[V]height\f[R] is 32767.
The \f[V]startVertexID\f[R] specifies the ID of the top-left vertex in
the vertex grid, while the \f[V]stride\f[R] parameter specifies a stride
(in number of vertices) used to step to the next row.
The \f[CR]width\f[R] and \f[CR]height\f[R] members specify the number of
vertices in u and v direction, e.g.\ setting both \f[CR]width\f[R] and
\f[CR]height\f[R] to 3 sets up a 3×3 vertex grid.
The maximum allowed \f[CR]width\f[R] and \f[CR]height\f[R] is 32767.
The \f[CR]startVertexID\f[R] specifies the ID of the top\-left vertex in
the vertex grid, while the \f[CR]stride\f[R] parameter specifies a
stride (in number of vertices) used to step to the next row.
.PP
A vertex grid of dimensions \f[V]width\f[R] and \f[V]height\f[R] is
treated as a \f[V](width-1)\f[R] x \f[V](height-1)\f[R] grid of
\f[V]quads\f[R] (triangle-pairs), with the same shared edge handling as
for regular quad meshes.
However, the \f[V]u\f[R]/\f[V]v\f[R] coordinates have the uniform range
\f[V][0..1]\f[R] for an entire vertex grid.
The \f[V]u\f[R] direction follows the \f[V]width\f[R] of the grid while
the \f[V]v\f[R] direction the \f[V]height\f[R].
A vertex grid of dimensions \f[CR]width\f[R] and \f[CR]height\f[R] is
treated as a \f[CR](width\-1)\f[R] x \f[CR](height\-1)\f[R] grid of
\f[CR]quads\f[R] (triangle\-pairs), with the same shared edge handling
as for regular quad meshes.
However, the \f[CR]u\f[R]/\f[CR]v\f[R] coordinates have the uniform
range \f[CR][0..1]\f[R] for an entire vertex grid.
The \f[CR]u\f[R] direction follows the \f[CR]width\f[R] of the grid
while the \f[CR]v\f[R] direction the \f[CR]height\f[R].
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] call.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] call.
Then a vertex buffer for each time step can be set using different
buffer slots, and all these buffers must have the same stride and size.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry]
+31 -52
View File
@@ -1,95 +1,74 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_INSTANCE" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_INSTANCE - instance geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_INSTANCE \- instance geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_INSTANCE);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Embree supports instancing of scenes using affine transformations (3×3
matrix plus translation).
As the instanced scene is stored only a single time, even if instanced
to multiple locations, this feature can be used to create very complex
scenes with small memory footprint.
.PP
Embree supports both single-level instancing and multi-level instancing.
Embree supports both single\-level instancing and multi\-level
instancing.
The maximum instance nesting depth is
\f[V]RTC_MAX_INSTANCE_LEVEL_COUNT\f[R]; it can be configured at
compile-time using the constant
\f[V]EMBREE_MAX_INSTANCE_LEVEL_COUNT\f[R].
\f[CR]RTC_MAX_INSTANCE_LEVEL_COUNT\f[R]; it can be configured at
compile\-time using the constant
\f[CR]EMBREE_MAX_INSTANCE_LEVEL_COUNT\f[R].
Users should adapt this constant to their needs: instances nested any
deeper are silently ignored in release mode, and cause assertions in
debug mode.
.PP
Instances are created by passing \f[V]RTC_GEOMETRY_TYPE_INSTANCE\f[R] to
the \f[V]rtcNewGeometry\f[R] function call.
Instances are created by passing \f[CR]RTC_GEOMETRY_TYPE_INSTANCE\f[R]
to the \f[CR]rtcNewGeometry\f[R] function call.
The instanced scene can be set using the
\f[V]rtcSetGeometryInstancedScene\f[R] call, and the affine
transformation can be set using the \f[V]rtcSetGeometryTransform\f[R]
\f[CR]rtcSetGeometryInstancedScene\f[R] call, and the affine
transformation can be set using the \f[CR]rtcSetGeometryTransform\f[R]
function.
.PP
Please note that \f[V]rtcCommitScene\f[R] on the instanced scene should
be called first, followed by \f[V]rtcCommitGeometry\f[R] on the
instance, followed by \f[V]rtcCommitScene\f[R] for the top-level scene
Please note that \f[CR]rtcCommitScene\f[R] on the instanced scene should
be called first, followed by \f[CR]rtcCommitGeometry\f[R] on the
instance, followed by \f[CR]rtcCommitScene\f[R] for the top\-level scene
containing the instance.
.PP
If a ray hits the instance, the \f[V]geomID\f[R] and \f[V]primID\f[R]
If a ray hits the instance, the \f[CR]geomID\f[R] and \f[CR]primID\f[R]
members of the hit are set to the geometry ID and primitive ID of the
hit primitive in the instanced scene, and the \f[V]instID\f[R] member of
the hit is set to the geometry ID of the instance in the top-level
hit primitive in the instanced scene, and the \f[CR]instID\f[R] member
of the hit is set to the geometry ID of the instance in the top\-level
scene.
.PP
The instancing scheme can also be implemented using user geometries.
To achieve this, the user geometry code should set the \f[V]instID\f[R]
To achieve this, the user geometry code should set the \f[CR]instID\f[R]
member of the ray query context to the geometry ID of the instance, then
trace the transformed ray, and finally set the \f[V]instID\f[R] field of
the ray query context again to -1.
The \f[V]instID\f[R] field is copied automatically by each primitive
intersector into the \f[V]instID\f[R] field of the hit structure when
trace the transformed ray, and finally set the \f[CR]instID\f[R] field
of the ray query context again to \-1.
The \f[CR]instID\f[R] field is copied automatically by each primitive
intersector into the \f[CR]instID\f[R] field of the hit structure when
the primitive is hit.
See the [User Geometry] tutorial for an example.
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] function.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] function.
Then a transformation for each time step can be specified using the
\f[V]rtcSetGeometryTransform\f[R] function.
\f[CR]rtcSetGeometryTransform\f[R] function.
.PP
See tutorials [Instanced Geometry] and [Multi Level Instancing] for
examples of how to use instances.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcSetGeometryInstancedScene],
[rtcSetGeometryTransform]
@@ -1,40 +1,20 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_INSTANCE_ARRAY" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_INSTANCE_ARRAY - instance array geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_INSTANCE_ARRAY \- instance array geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_INSTANCE_ARRAY);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Embree supports instance arrays, which is a more memory efficient way to
represent large amounts of instances of the same or a small set of
(sub)scenes.
@@ -49,68 +29,66 @@ corresponding index buffer that specifies which instance of the instance
array instances which of the scenes in the scenes array.
.PP
Instance arrays are created by passing
\f[V]RTC_GEOMETRY_TYPE_INSTANCE_ARRAY\f[R] to the
\f[V]rtcNewGeometry\f[R] function call.
\f[CR]RTC_GEOMETRY_TYPE_INSTANCE_ARRAY\f[R] to the
\f[CR]rtcNewGeometry\f[R] function call.
The instanced scene can be either be set using the
\f[V]rtcSetGeometryInstancedScene\f[R] call, or if multiple scenes
\f[CR]rtcSetGeometryInstancedScene\f[R] call, or if multiple scenes
should be instanced by passing an array of scenes using
\f[V]rtcSetGeometryInstancedScenes\f[R].
\f[CR]rtcSetGeometryInstancedScenes\f[R].
The latter also requires to specify an index buffer using
\f[V]rtcSetNewGeometryBuffer\f[R] or
\f[V]rtcSetSharedGeometryBuffer\f[R] with
\f[V]RTC_BUFFER_TYPE_INDEX\f[R] as the buffer type.
\f[CR]rtcSetNewGeometryBuffer\f[R] or
\f[CR]rtcSetSharedGeometryBuffer\f[R] with
\f[CR]RTC_BUFFER_TYPE_INDEX\f[R] as the buffer type.
.PP
Because the transformation information can become large for a large
amount of instances, the instance array allows to share the
transformation buffer between the user application and Embree.
It can be either stored in a buffer created by Embree with
\f[V]rtcSetNewGeometryBuffer\f[R] or an already existing buffer can be
shared using \f[V]rtcSetSharedGeometryBuffer\f[R].
\f[CR]rtcSetNewGeometryBuffer\f[R] or an already existing buffer can be
shared using \f[CR]rtcSetSharedGeometryBuffer\f[R].
In either case, the buffer type has to be
\f[V]RTC_BUFFER_TYPE_TRANSFORM\f[R] and the allowed formats are
\f[V]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R],
\f[V]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R],
\f[V]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R], and
\f[V]RTC_FORMAT_QUATERNION_DECOMPOSITION\f[R].
\f[CR]RTC_BUFFER_TYPE_TRANSFORM\f[R] and the allowed formats are
\f[CR]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R],
\f[CR]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R],
\f[CR]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R], and
\f[CR]RTC_FORMAT_QUATERNION_DECOMPOSITION\f[R].
Embree will not modify the data in the transformation buffer.
.PP
Embree instance arrays support both single-level instancing and
multi-level instancing.
Embree instance arrays support both single\-level instancing and
multi\-level instancing.
The maximum instance nesting depth is
\f[V]RTC_MAX_INSTANCE_LEVEL_COUNT\f[R]; it can be configured at
compile-time using the constant
\f[V]EMBREE_MAX_INSTANCE_LEVEL_COUNT\f[R].
\f[CR]RTC_MAX_INSTANCE_LEVEL_COUNT\f[R]; it can be configured at
compile\-time using the constant
\f[CR]EMBREE_MAX_INSTANCE_LEVEL_COUNT\f[R].
Users should adapt this constant to their needs: instances nested any
deeper are silently ignored in release mode, and cause assertions in
debug mode.
.PP
Please note that \f[V]rtcCommitScene\f[R] on the instanced scene(s)
should be called first, followed by \f[V]rtcCommitGeometry\f[R] on the
instance array, followed by \f[V]rtcCommitScene\f[R] for the top-level
Please note that \f[CR]rtcCommitScene\f[R] on the instanced scene(s)
should be called first, followed by \f[CR]rtcCommitGeometry\f[R] on the
instance array, followed by \f[CR]rtcCommitScene\f[R] for the top\-level
scene containing the instance array.
.PP
If a ray hits the instance, the \f[V]geomID\f[R] and \f[V]primID\f[R]
If a ray hits the instance, the \f[CR]geomID\f[R] and \f[CR]primID\f[R]
members of the hit are set to the geometry ID and primitive ID of the
hit primitive in the instanced scene.
The \f[V]instID\f[R] member of the hit is set to the geometry ID of the
instance array in the top-level scene and the \f[V]instPrimID\f[R]
The \f[CR]instID\f[R] member of the hit is set to the geometry ID of the
instance array in the top\-level scene and the \f[CR]instPrimID\f[R]
member is set to the index of the hit instance of the instance array.
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] function.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] function.
Then a transformation for each time step can be specified using the
\f[V]rtcSetNewGeometryBuffer\f[R] or
\f[V]rtcSetSharedGeometryBuffer\f[R] function and passing the time step
as the \f[V]slot\f[R] parameter of these calls.
\f[CR]rtcSetNewGeometryBuffer\f[R] or
\f[CR]rtcSetSharedGeometryBuffer\f[R] function and passing the time step
as the \f[CR]slot\f[R] parameter of these calls.
.PP
See the [Instance Array Geometry] tutorial for an example of how to use
instance arrays.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcSetGeometryInstancedScene],
[rtcSetGeometryInstancedScenes], [rtcSetNewGeometryBuffer],
[rtcSetSharedGeometryBuffer], [rtcGetGeometryTransformEx]
+32 -54
View File
@@ -1,81 +1,61 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_*_POINT" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_SPHERE_POINT -
.EX
RTC_GEOMETRY_TYPE_SPHERE_POINT \-
point geometry spheres
RTC_GEOMETRY_TYPE_DISC_POINT -
point geometry with ray-oriented discs
RTC_GEOMETRY_TYPE_DISC_POINT \-
point geometry with ray\-oriented discs
RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT -
point geometry with normal-oriented discs
\f[R]
.fi
RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT \-
point geometry with normal\-oriented discs
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_SPHERE_POINT);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_DISC_POINT);
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Points with per vertex radii are supported with sphere, ray-oriented
discs, and normal-oriented discs geometric representations.
Points with per vertex radii are supported with sphere, ray\-oriented
discs, and normal\-oriented discs geometric representations.
Such point geometries are created by passing
\f[V]RTC_GEOMETRY_TYPE_SPHERE_POINT\f[R],
\f[V]RTC_GEOMETRY_TYPE_DISC_POINT\f[R], or
\f[V]RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT\f[R] to the
\f[V]rtcNewGeometry\f[R] function.
\f[CR]RTC_GEOMETRY_TYPE_SPHERE_POINT\f[R],
\f[CR]RTC_GEOMETRY_TYPE_DISC_POINT\f[R], or
\f[CR]RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT\f[R] to the
\f[CR]rtcNewGeometry\f[R] function.
The point vertices can be specified t through a vertex buffer
(\f[V]RTC_BUFFER_TYPE_VERTEX\f[R]).
(\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R]).
For the normal oriented discs a normal buffer
(\f[V]RTC_BUFFER_TYPE_NORMAL\f[R]) has to get specified additionally.
See \f[V]rtcSetGeometryBuffer\f[R] and
\f[V]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
(\f[CR]RTC_BUFFER_TYPE_NORMAL\f[R]) has to get specified additionally.
See \f[CR]rtcSetGeometryBuffer\f[R] and
\f[CR]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
buffers.
.PP
The vertex buffer stores each control vertex in the form of a single
precision position and radius stored in (\f[V]x\f[R], \f[V]y\f[R],
\f[V]z\f[R], \f[V]r\f[R]) order in memory (\f[V]RTC_FORMAT_FLOAT4\f[R]
format).
precision position and radius stored in (\f[CR]x\f[R], \f[CR]y\f[R],
\f[CR]z\f[R], \f[CR]r\f[R]) order in memory
(\f[CR]RTC_FORMAT_FLOAT4\f[R] format).
The number of vertices is inferred from the size of this buffer.
Similarly, the normal buffer stores a single precision normal per
control vertex (\f[V]x\f[R], \f[V]y\f[R], \f[V]z\f[R] order and
\f[V]RTC_FORMAT_FLOAT3\f[R] format).
control vertex (\f[CR]x\f[R], \f[CR]y\f[R], \f[CR]z\f[R] order and
\f[CR]RTC_FORMAT_FLOAT3\f[R] format).
.PP
In the \f[V]RTC_GEOMETRY_TYPE_SPHERE_POINT\f[R] mode, a real geometric
In the \f[CR]RTC_GEOMETRY_TYPE_SPHERE_POINT\f[R] mode, a real geometric
surface is rendered for the curve, which is more expensive but allows
closeup views.
.PP
The \f[V]RTC_GEOMETRY_TYPE_DISC_POINT\f[R] flat mode is a fast mode
The \f[CR]RTC_GEOMETRY_TYPE_DISC_POINT\f[R] flat mode is a fast mode
designed to render distant points.
In this mode the point is rendered as a ray facing disc.
.PP
The \f[V]RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT\f[R] mode is a mode
The \f[CR]RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT\f[R] mode is a mode
designed as a midpoint geometrically between ray facing discs and
spheres.
In this mode the point is rendered as a normal oriented disc.
@@ -83,17 +63,15 @@ In this mode the point is rendered as a normal oriented disc.
For all point types, only the hit distance and geometry normal is
returned as hit information, u and v are set to zero.
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] call.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] call.
Then a vertex buffer for each time step can be set using different
buffer slots, and all these buffers must have the same stride and size.
.PP
Also see tutorial [Points] for an example of how to create and use point
geometries.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry]
+37 -63
View File
@@ -1,99 +1,73 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_QUAD" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_QUAD - quad geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_QUAD \- quad geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_QUAD);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Quad meshes are created by passing \f[V]RTC_GEOMETRY_TYPE_QUAD\f[R] to
the \f[V]rtcNewGeometry\f[R] function call.
Quad meshes are created by passing \f[CR]RTC_GEOMETRY_TYPE_QUAD\f[R] to
the \f[CR]rtcNewGeometry\f[R] function call.
The quad indices can be specified by setting an index buffer
(\f[V]RTC_BUFFER_TYPE_INDEX\f[R] type) and the quad vertices by setting
a vertex buffer (\f[V]RTC_BUFFER_TYPE_VERTEX\f[R] type).
See \f[V]rtcSetGeometryBuffer\f[R] and
\f[V]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
(\f[CR]RTC_BUFFER_TYPE_INDEX\f[R] type) and the quad vertices by setting
a vertex buffer (\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R] type).
See \f[CR]rtcSetGeometryBuffer\f[R] and
\f[CR]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
buffers.
The index buffer contains an array of four 32-bit indices per quad
(\f[V]RTC_FORMAT_UINT4\f[R] format), and the number of primitives is
The index buffer contains an array of four 32\-bit indices per quad
(\f[CR]RTC_FORMAT_UINT4\f[R] format), and the number of primitives is
inferred from the size of that buffer.
The vertex buffer contains an array of single precision \f[V]x\f[R],
\f[V]y\f[R], \f[V]z\f[R] floating point coordinates
(\f[V]RTC_FORMAT_FLOAT3\f[R] format), and the number of vertices is
The vertex buffer contains an array of single precision \f[CR]x\f[R],
\f[CR]y\f[R], \f[CR]z\f[R] floating point coordinates
(\f[CR]RTC_FORMAT_FLOAT3\f[R] format), and the number of vertices is
inferred from the size of that buffer.
The vertex buffer can be at most 16 GB large.
.PP
A quad is internally handled as a pair of two triangles
\f[V]v0,v1,v3\f[R] and \f[V]v2,v3,v1\f[R], with the
\f[V]u\[aq]\f[R]/\f[V]v\[aq]\f[R] coordinates of the second triangle
corrected by \f[V]u = 1-u\[aq]\f[R] and \f[V]v = 1-v\[aq]\f[R] to
produce a quad parametrization where \f[V]u\f[R] and \f[V]v\f[R] are in
the range 0 to 1.
Thus the parametrization of a quad uses the first vertex \f[V]p0\f[R] as
base point, and the vector \f[V]p1 - p0\f[R] as \f[V]u\f[R]-direction,
and \f[V]p3 - p0\f[R] as v-direction.
Thus vertex attributes \f[V]t0,t1,t2,t3\f[R] can be bilinearly
\f[CR]v0,v1,v3\f[R] and \f[CR]v2,v3,v1\f[R], with the
\f[CR]u\[aq]\f[R]/\f[CR]v\[aq]\f[R] coordinates of the second triangle
corrected by \f[CR]u = 1\-u\[aq]\f[R] and \f[CR]v = 1\-v\[aq]\f[R] to
produce a quad parametrization where \f[CR]u\f[R] and \f[CR]v\f[R] are
in the range 0 to 1.
Thus the parametrization of a quad uses the first vertex \f[CR]p0\f[R]
as base point, and the vector \f[CR]p1 \- p0\f[R] as
\f[CR]u\f[R]\-direction, and \f[CR]p3 \- p0\f[R] as v\-direction.
Thus vertex attributes \f[CR]t0,t1,t2,t3\f[R] can be bilinearly
interpolated over the quadrilateral the following way:
.IP
.nf
\f[C]
t_uv = (1-v)((1-u)*t0 + u*t1) + v*((1-u)*t3 + u*t2)
\f[R]
.fi
.EX
t_uv = (1\-v)((1\-u)*t0 + u*t1) + v*((1\-u)*t3 + u*t2)
.EE
.PP
Mixed triangle/quad meshes are supported by encoding a triangle as a
quad, which can be achieved by replicating the last triangle vertex
(\f[V]v0,v1,v2\f[R] -> \f[V]v0,v1,v2,v2\f[R]).
(\f[CR]v0,v1,v2\f[R] \-> \f[CR]v0,v1,v2,v2\f[R]).
This way the second triangle is a line (which can never get hit), and
the parametrization of the first triangle is compatible with the
standard triangle parametrization.
.PP
A quad whose vertices are laid out counter-clockwise has its geometry
A quad whose vertices are laid out counter\-clockwise has its geometry
normal pointing upwards outside the front face, like illustrated in the
following picture.
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] call.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] call.
Then a vertex buffer for each time step can be set using different
buffer slots, and all these buffers must have the same stride and size.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry]
+76 -102
View File
@@ -1,88 +1,68 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_SUBDIVISION" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_SUBDIVISION - subdivision geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_SUBDIVISION \- subdivision geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_SUBDIVISION);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Catmull-Clark subdivision meshes are supported, including support for
edge creases, vertex creases, holes, non-manifold geometry, and
face-varying interpolation.
Catmull\-Clark subdivision meshes are supported, including support for
edge creases, vertex creases, holes, non\-manifold geometry, and
face\-varying interpolation.
The number of vertices per face can be in the range of 3 to 15 vertices
(triangles, quadrilateral, pentagons, etc).
.PP
Subdivision meshes are created by passing
\f[V]RTC_GEOMETRY_TYPE_SUBDIVISION\f[R] to the \f[V]rtcNewGeometry\f[R]
function.
\f[CR]RTC_GEOMETRY_TYPE_SUBDIVISION\f[R] to the
\f[CR]rtcNewGeometry\f[R] function.
Various buffers need to be set by the application to set up the
subdivision mesh.
See \f[V]rtcSetGeometryBuffer\f[R] and
\f[V]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
See \f[CR]rtcSetGeometryBuffer\f[R] and
\f[CR]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
buffers.
The face buffer (\f[V]RTC_BUFFER_TYPE_FACE\f[R] type and
\f[V]RTC_FORMAT_UINT\f[R] format) contains the number of edges/indices
The face buffer (\f[CR]RTC_BUFFER_TYPE_FACE\f[R] type and
\f[CR]RTC_FORMAT_UINT\f[R] format) contains the number of edges/indices
of each face (3 to 15), and the number of faces is inferred from the
size of this buffer.
The index buffer (\f[V]RTC_BUFFER_TYPE_INDEX\f[R] type) contains
multiple (3 to 15) 32-bit vertex indices (\f[V]RTC_FORMAT_UINT\f[R]
The index buffer (\f[CR]RTC_BUFFER_TYPE_INDEX\f[R] type) contains
multiple (3 to 15) 32\-bit vertex indices (\f[CR]RTC_FORMAT_UINT\f[R]
format) for each face, and the number of edges is inferred from the size
of this buffer.
The vertex buffer (\f[V]RTC_BUFFER_TYPE_VERTEX\f[R] type) stores an
array of single precision \f[V]x\f[R], \f[V]y\f[R], \f[V]z\f[R] floating
point coordinates (\f[V]RTC_FORMAT_FLOAT3\f[R] format), and the number
of vertices is inferred from the size of this buffer.
The vertex buffer (\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R] type) stores an
array of single precision \f[CR]x\f[R], \f[CR]y\f[R], \f[CR]z\f[R]
floating point coordinates (\f[CR]RTC_FORMAT_FLOAT3\f[R] format), and
the number of vertices is inferred from the size of this buffer.
.PP
Optionally, the application may set additional index buffers using
different buffer slots if multiple topologies are required for
face-varying interpolation.
The standard vertex buffers (\f[V]RTC_BUFFER_TYPE_VERTEX\f[R]) are
face\-varying interpolation.
The standard vertex buffers (\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R]) are
always bound to the geometry topology (topology 0) thus use
\f[V]RTC_BUFFER_TYPE_INDEX\f[R] with buffer slot 0.
\f[CR]RTC_BUFFER_TYPE_INDEX\f[R] with buffer slot 0.
User vertex data interpolation may use different topologies as described
later.
.PP
Optionally, the application can set up the hole buffer
(\f[V]RTC_BUFFER_TYPE_HOLE\f[R]) which contains an array of 32-bit
indices (\f[V]RTC_FORMAT_UINT\f[R] format) of faces that should be
considered non-existing in all topologies.
(\f[CR]RTC_BUFFER_TYPE_HOLE\f[R]) which contains an array of 32\-bit
indices (\f[CR]RTC_FORMAT_UINT\f[R] format) of faces that should be
considered non\-existing in all topologies.
The number of holes is inferred from the size of this buffer.
.PP
Optionally, the application can fill the level buffer
(\f[V]RTC_BUFFER_TYPE_LEVEL\f[R]) with a tessellation rate for each of
(\f[CR]RTC_BUFFER_TYPE_LEVEL\f[R]) with a tessellation rate for each of
the edges of each face.
This buffer must have the same size as the index buffer.
The tessellation level is a positive floating point value
(\f[V]RTC_FORMAT_FLOAT\f[R] format) that specifies how many quads along
(\f[CR]RTC_FORMAT_FLOAT\f[R] format) that specifies how many quads along
the edge should be generated during tessellation.
If no level buffer is specified, a level of 1 is used.
The maximally supported edge level is 4096, and larger levels are
@@ -91,20 +71,20 @@ Note that edges may be shared between (typically 2) faces.
To guarantee a watertight tessellation, the level of these shared edges
should be identical.
A uniform tessellation rate for an entire subdivision mesh can be set by
using the \f[V]rtcSetGeometryTessellationRate\f[R] function.
using the \f[CR]rtcSetGeometryTessellationRate\f[R] function.
The existence of a level buffer has precedence over the uniform
tessellation rate.
.PP
Optionally, the application can fill the sparse edge crease buffers to
make edges appear sharper.
The edge crease index buffer
(\f[V]RTC_BUFFER_TYPE_EDGE_CREASE_INDEX\f[R]) contains an array of pairs
of 32-bit vertex indices (\f[V]RTC_FORMAT_UINT2\f[R] format) that
specify unoriented edges in the geometry topology.
(\f[CR]RTC_BUFFER_TYPE_EDGE_CREASE_INDEX\f[R]) contains an array of
pairs of 32\-bit vertex indices (\f[CR]RTC_FORMAT_UINT2\f[R] format)
that specify unoriented edges in the geometry topology.
The edge crease weight buffer
(\f[V]RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT\f[R]) stores for each of these
(\f[CR]RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT\f[R]) stores for each of these
crease edges a positive floating point weight
(\f[V]RTC_FORMAT_FLOAT\f[R] format).
(\f[CR]RTC_FORMAT_FLOAT\f[R] format).
The number of edge creases is inferred from the size of these buffers,
which has to be identical.
The larger a weight, the sharper the edge.
@@ -121,13 +101,13 @@ Edge crease features are shared between all topologies.
Optionally, the application can fill the sparse vertex crease buffers to
make vertices appear sharper.
The vertex crease index buffer
(\f[V]RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX\f[R]), contains an array of
32-bit vertex indices (\f[V]RTC_FORMAT_UINT\f[R] format) to specify a
(\f[CR]RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX\f[R]), contains an array of
32\-bit vertex indices (\f[CR]RTC_FORMAT_UINT\f[R] format) to specify a
set of vertices from the geometry topology.
The vertex crease weight buffer
(\f[V]RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT\f[R]) specifies for each of
(\f[CR]RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT\f[R]) specifies for each of
these vertices a positive floating point weight
(\f[V]RTC_FORMAT_FLOAT\f[R] format).
(\f[CR]RTC_FORMAT_FLOAT\f[R] format).
The number of vertex creases is inferred from the size of these buffers,
and has to be identical.
The larger a weight, the sharper the vertex.
@@ -140,11 +120,11 @@ undefined behavior.
Vertex crease features are shared between all topologies.
.PP
Subdivision modes can be used to force linear interpolation for parts of
the subdivision mesh; see \f[V]rtcSetGeometrySubdivisionMode\f[R] for
the subdivision mesh; see \f[CR]rtcSetGeometrySubdivisionMode\f[R] for
more details.
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] call.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] call.
Then a vertex buffer for each time step can be set using different
buffer slots, and all these buffers have to have the same stride and
size.
@@ -152,73 +132,67 @@ size.
Also see tutorial [Subdivision Geometry] for an example of how to create
subdivision surfaces.
.SS Parametrization
.PP
The parametrization for subdivision faces is different for
quadrilaterals and non-quadrilateral faces.
quadrilaterals and non\-quadrilateral faces.
.PP
The parametrization of a quadrilateral face uses the first vertex
\f[V]p0\f[R] as base point, and the vector \f[V]p1 - p0\f[R] as
u-direction and \f[V]p3 - p0\f[R] as v-direction.
\f[CR]p0\f[R] as base point, and the vector \f[CR]p1 \- p0\f[R] as
u\-direction and \f[CR]p3 \- p0\f[R] as v\-direction.
.PP
The parametrization for all other face types (with number of vertices
not equal 4), have a special parametrization where the subpatch ID
\f[V]n\f[R] (of the \f[V]n\f[R]-th quadrilateral that would be obtained
by a single subdivision step) and the local hit location inside this
quadrilateral are encoded in the UV coordinates.
The following code extracts the sub-patch ID \f[V]i\f[R] and local UVs
\f[CR]n\f[R] (of the \f[CR]n\f[R]\-th quadrilateral that would be
obtained by a single subdivision step) and the local hit location inside
this quadrilateral are encoded in the UV coordinates.
The following code extracts the sub\-patch ID \f[CR]i\f[R] and local UVs
of this subpatch:
.IP
.nf
\f[C]
.EX
unsigned int l = floorf(0.5f*U);
unsigned int h = floorf(0.5f*V);
unsigned int i = 4*h+l;
float u = 2.0f*fracf(0.5f*U)-0.5f;
float v = 2.0f*fracf(0.5f*V)-0.5f;
\f[R]
.fi
float u = 2.0f*fracf(0.5f*U)\-0.5f;
float v = 2.0f*fracf(0.5f*V)\-0.5f;
.EE
.PP
This encoding allows local subpatch UVs to be in the range
\f[V][-0.5,1.5[\f[R] thus negative subpatch UVs can be passed to
\f[V]rtcInterpolate\f[R] to sample subpatches slightly out of bounds.
\f[CR][\-0.5,1.5[\f[R] thus negative subpatch UVs can be passed to
\f[CR]rtcInterpolate\f[R] to sample subpatches slightly out of bounds.
This can be useful to calculate derivatives using finite differences if
required.
The encoding further has the property that one can just move the value
\f[V]u\f[R] (or \f[V]v\f[R]) on a subpatch by adding \f[V]du\f[R] (or
\f[V]dv\f[R]) to the special UV encoding as long as it does not fall out
of the \f[V][-0.5,1.5[\f[R] range.
\f[CR]u\f[R] (or \f[CR]v\f[R]) on a subpatch by adding \f[CR]du\f[R] (or
\f[CR]dv\f[R]) to the special UV encoding as long as it does not fall
out of the \f[CR][\-0.5,1.5[\f[R] range.
.PP
To smoothly interpolate vertex attributes over the subdivision surface
we recommend using the \f[V]rtcInterpolate\f[R] function, which will
we recommend using the \f[CR]rtcInterpolate\f[R] function, which will
apply the standard subdivision rules for interpolation and automatically
takes care of the special UV encoding for non-quadrilaterals.
.SS Face-Varying Data
.PP
Face-varying interpolation is supported through multiple topologies per
takes care of the special UV encoding for non\-quadrilaterals.
.SS Face\-Varying Data
Face\-varying interpolation is supported through multiple topologies per
subdivision mesh and binding such topologies to vertex attribute buffers
to interpolate.
This way, texture coordinates may use a different topology with
additional boundaries to construct separate UV regions inside one
subdivision mesh.
.PP
Each such topology \f[V]i\f[R] has a separate index buffer (specified
using \f[V]RTC_BUFFER_TYPE_INDEX\f[R] with buffer slot \f[V]i\f[R]) and
separate subdivision mode that can be set using
\f[V]rtcSetGeometrySubdivisionMode\f[R].
A vertex attribute buffer \f[V]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R]
bound to a buffer slot \f[V]j\f[R] can be assigned to use a topology for
interpolation using the \f[V]rtcSetGeometryVertexAttributeTopology\f[R]
call.
Each such topology \f[CR]i\f[R] has a separate index buffer (specified
using \f[CR]RTC_BUFFER_TYPE_INDEX\f[R] with buffer slot \f[CR]i\f[R])
and separate subdivision mode that can be set using
\f[CR]rtcSetGeometrySubdivisionMode\f[R].
A vertex attribute buffer \f[CR]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R]
bound to a buffer slot \f[CR]j\f[R] can be assigned to use a topology
for interpolation using the
\f[CR]rtcSetGeometryVertexAttributeTopology\f[R] call.
.PP
The face buffer (\f[V]RTC_BUFFER_TYPE_FACE\f[R] type) is shared between
all topologies, which means that the \f[V]n\f[R]-th primitive always has
the same number of vertices (e.g.\ being a triangle or a quad) for each
topology.
The face buffer (\f[CR]RTC_BUFFER_TYPE_FACE\f[R] type) is shared between
all topologies, which means that the \f[CR]n\f[R]\-th primitive always
has the same number of vertices (e.g.\ being a triangle or a quad) for
each topology.
However, the indices of the topologies themselves may be different.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry]
+31 -57
View File
@@ -1,82 +1,58 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_TRIANGLE" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_TRIANGLE - triangle geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_TRIANGLE \- triangle geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_TRIANGLE);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Triangle meshes are created by passing
\f[V]RTC_GEOMETRY_TYPE_TRIANGLE\f[R] to the \f[V]rtcNewGeometry\f[R]
\f[CR]RTC_GEOMETRY_TYPE_TRIANGLE\f[R] to the \f[CR]rtcNewGeometry\f[R]
function call.
The triangle indices can be specified by setting an index buffer
(\f[V]RTC_BUFFER_TYPE_INDEX\f[R] type) and the triangle vertices by
setting a vertex buffer (\f[V]RTC_BUFFER_TYPE_VERTEX\f[R] type).
See \f[V]rtcSetGeometryBuffer\f[R] and
\f[V]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
(\f[CR]RTC_BUFFER_TYPE_INDEX\f[R] type) and the triangle vertices by
setting a vertex buffer (\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R] type).
See \f[CR]rtcSetGeometryBuffer\f[R] and
\f[CR]rtcSetSharedGeometryBuffer\f[R] for more details on how to set
buffers.
The index buffer must contain an array of three 32-bit indices per
triangle (\f[V]RTC_FORMAT_UINT3\f[R] format) and the number of
The index buffer must contain an array of three 32\-bit indices per
triangle (\f[CR]RTC_FORMAT_UINT3\f[R] format) and the number of
primitives is inferred from the size of that buffer.
The vertex buffer must contain an array of single precision \f[V]x\f[R],
\f[V]y\f[R], \f[V]z\f[R] floating point coordinates
(\f[V]RTC_FORMAT_FLOAT3\f[R] format), and the number of vertices are
The vertex buffer must contain an array of single precision
\f[CR]x\f[R], \f[CR]y\f[R], \f[CR]z\f[R] floating point coordinates
(\f[CR]RTC_FORMAT_FLOAT3\f[R] format), and the number of vertices are
inferred from the size of that buffer.
The vertex buffer can be at most 16 GB large.
.PP
The parametrization of a triangle uses the first vertex \f[V]p0\f[R] as
base point, the vector \f[V]p1 - p0\f[R] as u-direction and the vector
\f[V]p2 - p0\f[R] as v-direction.
Thus vertex attributes \f[V]t0,t1,t2\f[R] can be linearly interpolated
The parametrization of a triangle uses the first vertex \f[CR]p0\f[R] as
base point, the vector \f[CR]p1 \- p0\f[R] as u\-direction and the
vector \f[CR]p2 \- p0\f[R] as v\-direction.
Thus vertex attributes \f[CR]t0,t1,t2\f[R] can be linearly interpolated
over the triangle the following way:
.IP
.nf
\f[C]
t_uv = (1-u-v)*t0 + u*t1 + v*t2
= t0 + u*(t1-t0) + v*(t2-t0)
\f[R]
.fi
.EX
t_uv = (1\-u\-v)*t0 + u*t1 + v*t2
= t0 + u*(t1\-t0) + v*(t2\-t0)
.EE
.PP
A triangle whose vertices are laid out counter-clockwise has its
A triangle whose vertices are laid out counter\-clockwise has its
geometry normal pointing upwards outside the front face, like
illustrated in the following picture:
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
For multi-segment motion blur, the number of time steps must be first
specified using the \f[V]rtcSetGeometryTimeStepCount\f[R] call.
For multi\-segment motion blur, the number of time steps must be first
specified using the \f[CR]rtcSetGeometryTimeStepCount\f[R] call.
Then a vertex buffer for each time step can be set using different
buffer slots, and all these buffers have to have the same stride and
size.
@@ -84,9 +60,7 @@ size.
Also see tutorial [Triangle Geometry] for an example of how to create
triangle meshes.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that be
get queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that be
get queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry]
+26 -50
View File
@@ -1,55 +1,35 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "RTC_GEOMETRY_TYPE_USER" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTC_GEOMETRY_TYPE_USER - user geometry type
\f[R]
.fi
.EX
RTC_GEOMETRY_TYPE_USER \- user geometry type
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry geometry =
rtcNewGeometry(device, RTC_GEOMETRY_TYPE_USER);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
User-defined geometries contain a number of user-defined primitives,
User\-defined geometries contain a number of user\-defined primitives,
just like triangle meshes contain multiple triangles.
The shape of the user-defined primitives is specified through registered
callback functions, which enable extending Embree with arbitrary types
of primitives.
The shape of the user\-defined primitives is specified through
registered callback functions, which enable extending Embree with
arbitrary types of primitives.
.PP
User-defined geometries are created by passing
\f[V]RTC_GEOMETRY_TYPE_USER\f[R] to the \f[V]rtcNewGeometry\f[R]
User\-defined geometries are created by passing
\f[CR]RTC_GEOMETRY_TYPE_USER\f[R] to the \f[CR]rtcNewGeometry\f[R]
function call.
One has to set the number of primitives (see
\f[V]rtcSetGeometryUserPrimitiveCount\f[R]), a user data pointer (see
\f[V]rtcSetGeometryUserData\f[R]), a bounding function closure (see
\f[V]rtcSetGeometryBoundsFunction\f[R]), as well as user-defined
intersect (see \f[V]rtcSetGeometryIntersectFunction\f[R]) and occluded
(see \f[V]rtcSetGeometryOccludedFunction\f[R]) callback functions.
\f[CR]rtcSetGeometryUserPrimitiveCount\f[R]), a user data pointer (see
\f[CR]rtcSetGeometryUserData\f[R]), a bounding function closure (see
\f[CR]rtcSetGeometryBoundsFunction\f[R]), as well as user\-defined
intersect (see \f[CR]rtcSetGeometryIntersectFunction\f[R]) and occluded
(see \f[CR]rtcSetGeometryOccludedFunction\f[R]) callback functions.
The bounding function is used to query the bounds of all time steps of a
user primitive, while the intersect and occluded callback functions are
called to intersect the primitive with a ray.
@@ -59,34 +39,30 @@ geometry.
.PP
The creation of a user geometry typically looks the following:
.IP
.nf
\f[C]
.EX
RTCGeometry geometry = rtcNewGeometry(device, RTC_GEOMETRY_TYPE_USER);
rtcSetGeometryUserPrimitiveCount(geometry, numPrimitives);
rtcSetGeometryUserData(geometry, userGeometryRepresentation);
rtcSetGeometryBoundsFunction(geometry, boundsFunction);
rtcSetGeometryIntersectFunction(geometry, intersectFunction);
rtcSetGeometryOccludedFunction(geometry, occludedFunction);
\f[R]
.fi
.EE
.PP
Please have a look at the \f[V]rtcSetGeometryBoundsFunction\f[R],
\f[V]rtcSetGeometryIntersectFunction\f[R], and
\f[V]rtcSetGeometryOccludedFunction\f[R] functions on the implementation
of the callback functions.
Please have a look at the \f[CR]rtcSetGeometryBoundsFunction\f[R],
\f[CR]rtcSetGeometryIntersectFunction\f[R], and
\f[CR]rtcSetGeometryOccludedFunction\f[R] functions on the
implementation of the callback functions.
.PP
Primitives of a user geometry are ignored during rendering when their
bounds are empty, thus bounds have lower>upper in at least one
dimension.
.PP
See tutorial [User Geometry] for an example of how to use the
user-defined geometries.
user\-defined geometries.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcSetGeometryUserPrimitiveCount],
[rtcSetGeometryUserData], [rtcSetGeometryBoundsFunction],
[rtcSetGeometryIntersectFunction], [rtcSetGeometryOccludedFunction]
+14 -36
View File
@@ -1,52 +1,32 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcAttachGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcAttachGeometry - attaches a geometry to the scene
\f[R]
.fi
.EX
rtcAttachGeometry \- attaches a geometry to the scene
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
unsigned int rtcAttachGeometry(
RTCScene scene,
RTCGeometry geometry
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcAttachGeometry\f[R] function attaches a geometry
(\f[V]geometry\f[R] argument) to a scene (\f[V]scene\f[R] argument) and
assigns a geometry ID to that geometry.
The \f[CR]rtcAttachGeometry\f[R] function attaches a geometry
(\f[CR]geometry\f[R] argument) to a scene (\f[CR]scene\f[R] argument)
and assigns a geometry ID to that geometry.
All geometries attached to a scene are defined to be included inside the
scene.
A geometry can get attached to multiple scenes.
The geometry ID is unique for the scene, and is used to identify the
geometry when hit by a ray during ray queries.
.PP
This function is thread-safe, thus multiple threads can attach
This function is thread\-safe, thus multiple threads can attach
geometries to a scene in parallel.
.PP
The geometry IDs are assigned sequentially, starting from 0, as long as
@@ -58,14 +38,12 @@ compact range of IDs.
.PP
These rules allow the application to manage a dynamic array to
efficiently map from geometry IDs to its own geometry representation.
Alternatively, the application can also use per-geometry user data to
Alternatively, the application can also use per\-geometry user data to
map to its geometry representation.
See \f[V]rtcSetGeometryUserData\f[R] and
\f[V]rtcGetGeometryUserData\f[R] for more information.
See \f[CR]rtcSetGeometryUserData\f[R] and
\f[CR]rtcGetGeometryUserData\f[R] for more information.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetGeometryUserData], [rtcGetGeometryUserData]
+16 -38
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcAttachGeometryByID" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcAttachGeometryByID - attaches a geometry to the scene
.EX
rtcAttachGeometryByID \- attaches a geometry to the scene
using a specified geometry ID
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcAttachGeometryByID(
@@ -35,36 +17,32 @@ void rtcAttachGeometryByID(
RTCGeometry geometry,
unsigned int geomID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcAttachGeometryByID\f[R] function attaches a geometry
(\f[V]geometry\f[R] argument) to a scene (\f[V]scene\f[R] argument) and
assigns a user provided geometry ID (\f[V]geomID\f[R] argument) to that
geometry.
The \f[CR]rtcAttachGeometryByID\f[R] function attaches a geometry
(\f[CR]geometry\f[R] argument) to a scene (\f[CR]scene\f[R] argument)
and assigns a user provided geometry ID (\f[CR]geomID\f[R] argument) to
that geometry.
All geometries attached to a scene are defined to be included inside the
scene.
A geometry can get attached to multiple scenes.
The passed user-defined geometry ID is used to identify the geometry
The passed user\-defined geometry ID is used to identify the geometry
when hit by a ray during ray queries.
Using this function, it is possible to share the same IDs to refer to
geometries inside the application and Embree.
.PP
This function is thread-safe, thus multiple threads can attach
This function is thread\-safe, thus multiple threads can attach
geometries to a scene in parallel.
.PP
The user-provided geometry ID must be unused in the scene, otherwise the
creation of the geometry will fail.
Further, the user-provided geometry IDs should be compact, as Embree
The user\-provided geometry ID must be unused in the scene, otherwise
the creation of the geometry will fail.
Further, the user\-provided geometry IDs should be compact, as Embree
internally creates a vector which size is equal to the largest geometry
ID used.
Creating very large geometry IDs for small scenes would thus cause a
memory consumption and performance overhead.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcAttachGeometry]
+66 -88
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcBuildBVH" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcBuildBVH - builds a BVH
\f[R]
.fi
.EX
rtcBuildBVH \- builds a BVH
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTC_ALIGN(32) RTCBuildPrimitive
@@ -116,116 +98,112 @@ struct RTCBuildArguments rtcDefaultBuildArguments();
void* rtcBuildBVH(
const struct RTCBuildArguments* args
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcBuildBVH\f[R] function can be used to build a BVH in a
user-defined format over arbitrary primitives.
The \f[CR]rtcBuildBVH\f[R] function can be used to build a BVH in a
user\-defined format over arbitrary primitives.
All arguments to the function are provided through the
\f[V]RTCBuildArguments\f[R] structure.
\f[CR]RTCBuildArguments\f[R] structure.
The first member of that structure must be set to the size of the
structure in bytes (\f[V]bytesSize\f[R] member) which allows future
structure in bytes (\f[CR]bytesSize\f[R] member) which allows future
extensions of the structure.
It is recommended to initialize the build arguments structure using the
\f[V]rtcDefaultBuildArguments\f[R] function.
\f[CR]rtcDefaultBuildArguments\f[R] function.
.PP
The \f[V]rtcBuildBVH\f[R] function gets passed the BVH to build
(\f[V]bvh\f[R] member), the array of primitives (\f[V]primitives\f[R]
member), the capacity of that array (\f[V]primitiveArrayCapacity\f[R]
The \f[CR]rtcBuildBVH\f[R] function gets passed the BVH to build
(\f[CR]bvh\f[R] member), the array of primitives (\f[CR]primitives\f[R]
member), the capacity of that array (\f[CR]primitiveArrayCapacity\f[R]
member), the number of primitives stored inside the array
(\f[V]primitiveCount\f[R] member), callback function pointers, and a
user-defined pointer (\f[V]userPtr\f[R] member) that is passed to all
(\f[CR]primitiveCount\f[R] member), callback function pointers, and a
user\-defined pointer (\f[CR]userPtr\f[R] member) that is passed to all
callback functions when invoked.
The \f[V]primitives\f[R] array can be freed by the application after the
BVH is built.
The \f[CR]primitives\f[R] array can be freed by the application after
the BVH is built.
All callback functions are typically called from multiple threads, thus
their implementation must be thread-safe.
their implementation must be thread\-safe.
.PP
Four callback functions must be registered, which are invoked during
build to create BVH nodes (\f[V]createNode\f[R] member), to set the
pointers to all children (\f[V]setNodeChildren\f[R] member), to set the
bounding boxes of all children (\f[V]setNodeBounds\f[R] member), and to
create a leaf node (\f[V]createLeaf\f[R] member).
build to create BVH nodes (\f[CR]createNode\f[R] member), to set the
pointers to all children (\f[CR]setNodeChildren\f[R] member), to set the
bounding boxes of all children (\f[CR]setNodeBounds\f[R] member), and to
create a leaf node (\f[CR]createLeaf\f[R] member).
.PP
The function pointer to the primitive split function
(\f[V]splitPrimitive\f[R] member) may be \f[V]NULL\f[R], however, then
(\f[CR]splitPrimitive\f[R] member) may be \f[CR]NULL\f[R], however, then
no spatial splitting in high quality mode is possible.
The function pointer used to report the build progress
(\f[V]buildProgress\f[R] member) is optional and may also be
\f[V]NULL\f[R].
(\f[CR]buildProgress\f[R] member) is optional and may also be
\f[CR]NULL\f[R].
.PP
Further, some build settings are passed to configure the BVH build.
Using the build quality settings (\f[V]buildQuality\f[R] member), one
Using the build quality settings (\f[CR]buildQuality\f[R] member), one
can select between a faster, low quality build which is good for dynamic
scenes, and a standard quality build for static scenes.
One can also specify the desired maximum branching factor of the BVH
(\f[V]maxBranchingFactor\f[R] member), the maximum depth the BVH should
have (\f[V]maxDepth\f[R] member), the block size for the SAH heuristic
(\f[V]sahBlockSize\f[R] member), the minimum and maximum leaf size
(\f[V]minLeafSize\f[R] and \f[V]maxLeafSize\f[R] member), and the
(\f[CR]maxBranchingFactor\f[R] member), the maximum depth the BVH should
have (\f[CR]maxDepth\f[R] member), the block size for the SAH heuristic
(\f[CR]sahBlockSize\f[R] member), the minimum and maximum leaf size
(\f[CR]minLeafSize\f[R] and \f[CR]maxLeafSize\f[R] member), and the
estimated costs of one traversal step and one primitive intersection
(\f[V]traversalCost\f[R] and \f[V]intersectionCost\f[R] members).
When enabling the \f[V]RTC_BUILD_FLAG_DYNAMIC\f[R] build flags
(\f[V]buildFlags\f[R] member), re-build performance for dynamic scenes
(\f[CR]traversalCost\f[R] and \f[CR]intersectionCost\f[R] members).
When enabling the \f[CR]RTC_BUILD_FLAG_DYNAMIC\f[R] build flags
(\f[CR]buildFlags\f[R] member), re\-build performance for dynamic scenes
is improved at the cost of higher memory requirements.
.PP
To spatially split primitives in high quality mode, the builder needs
extra space at the end of the build primitive array to store split
primitives.
The total capacity of the build primitive array is passed using the
\f[V]primitiveArrayCapacity\f[R] member, and should be about twice the
\f[CR]primitiveArrayCapacity\f[R] member, and should be about twice the
number of primitives when using spatial splits.
.PP
The \f[V]RTCCreateNodeFunc\f[R] and \f[V]RTCCreateLeafFunc\f[R]
The \f[CR]RTCCreateNodeFunc\f[R] and \f[CR]RTCCreateLeafFunc\f[R]
callbacks are passed a thread local allocator object that should be used
for fast allocation of nodes using the \f[V]rtcThreadLocalAlloc\f[R]
for fast allocation of nodes using the \f[CR]rtcThreadLocalAlloc\f[R]
function.
We strongly recommend using this allocation mechanism, as alternative
approaches like standard \f[V]malloc\f[R] can be over 10× slower.
approaches like standard \f[CR]malloc\f[R] can be over 10× slower.
The allocator object passed to the create callbacks may be used only
inside the current thread.
Memory allocated using \f[V]rtcThreadLocalAlloc\f[R] is automatically
freed when the \f[V]RTCBVH\f[R] object is deleted.
Memory allocated using \f[CR]rtcThreadLocalAlloc\f[R] is automatically
freed when the \f[CR]RTCBVH\f[R] object is deleted.
If you use your own memory allocation scheme you have to free the memory
yourself when the \f[V]RTCBVH\f[R] object is no longer used.
yourself when the \f[CR]RTCBVH\f[R] object is no longer used.
.PP
The \f[V]RTCCreateNodeFunc\f[R] callback additionally gets the number of
children for this node in the range from 2 to
\f[V]maxBranchingFactor\f[R] (\f[V]childCount\f[R] argument).
The \f[CR]RTCCreateNodeFunc\f[R] callback additionally gets the number
of children for this node in the range from 2 to
\f[CR]maxBranchingFactor\f[R] (\f[CR]childCount\f[R] argument).
.PP
The \f[V]RTCSetNodeChildFunc\f[R] callback function gets a pointer to
the node as input (\f[V]nodePtr\f[R] argument), an array of pointers to
the children (\f[V]childPtrs\f[R] argument), and the size of this array
(\f[V]childCount\f[R] argument).
The \f[CR]RTCSetNodeChildFunc\f[R] callback function gets a pointer to
the node as input (\f[CR]nodePtr\f[R] argument), an array of pointers to
the children (\f[CR]childPtrs\f[R] argument), and the size of this array
(\f[CR]childCount\f[R] argument).
.PP
The \f[V]RTCSetNodeBoundsFunc\f[R] callback function gets a pointer to
the node as input (\f[V]nodePtr\f[R] argument), an array of pointers to
the bounding boxes of the children (\f[V]bounds\f[R] argument), and the
size of this array (\f[V]childCount\f[R] argument).
The \f[CR]RTCSetNodeBoundsFunc\f[R] callback function gets a pointer to
the node as input (\f[CR]nodePtr\f[R] argument), an array of pointers to
the bounding boxes of the children (\f[CR]bounds\f[R] argument), and the
size of this array (\f[CR]childCount\f[R] argument).
.PP
The \f[V]RTCCreateLeafFunc\f[R] callback additionally gets an array of
primitives as input (\f[V]primitives\f[R] argument), and the size of
this array (\f[V]primitiveCount\f[R] argument).
The callback should read the \f[V]geomID\f[R] and \f[V]primID\f[R]
The \f[CR]RTCCreateLeafFunc\f[R] callback additionally gets an array of
primitives as input (\f[CR]primitives\f[R] argument), and the size of
this array (\f[CR]primitiveCount\f[R] argument).
The callback should read the \f[CR]geomID\f[R] and \f[CR]primID\f[R]
members from the passed primitives to construct the leaf.
.PP
The \f[V]RTCSplitPrimitiveFunc\f[R] callback is invoked in high quality
mode to split a primitive (\f[V]primitive\f[R] argument) at the
specified position (\f[V]position\f[R] argument) and dimension
(\f[V]dimension\f[R] argument).
The \f[CR]RTCSplitPrimitiveFunc\f[R] callback is invoked in high quality
mode to split a primitive (\f[CR]primitive\f[R] argument) at the
specified position (\f[CR]position\f[R] argument) and dimension
(\f[CR]dimension\f[R] argument).
The callback should return bounds of the clipped left and right parts of
the primitive (\f[V]leftBounds\f[R] and \f[V]rightBounds\f[R]
the primitive (\f[CR]leftBounds\f[R] and \f[CR]rightBounds\f[R]
arguments).
.PP
The \f[V]RTCProgressMonitorFunction\f[R] callback function is called
with the estimated completion rate \f[V]n\f[R] in the range [0,1].
Returning \f[V]true\f[R] from the callback lets the build continue;
returning \f[V]false\f[R] cancels the build.
The \f[CR]RTCProgressMonitorFunction\f[R] callback function is called
with the estimated completion rate \f[CR]n\f[R] in the range [0, 1].
Returning \f[CR]true\f[R] from the callback lets the build continue;
returning \f[CR]false\f[R] cancels the build.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewBVH]
+14 -36
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcCollide" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcCollide - intersects one BVH with another
\f[R]
.fi
.EX
rtcCollide \- intersects one BVH with another
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCCollision {
@@ -45,32 +27,28 @@ void rtcCollide (
RTCCollideFunc callback,
void* userPtr
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcCollide\f[R] function intersects the BVH of
\f[V]hscene0\f[R] with the BVH of scene \f[V]hscene1\f[R] and calls a
user defined callback function (e.g \f[V]callback\f[R] argument) for
The \f[CR]rtcCollide\f[R] function intersects the BVH of
\f[CR]hscene0\f[R] with the BVH of scene \f[CR]hscene1\f[R] and calls a
user defined callback function (e.g \f[CR]callback\f[R] argument) for
each pair of intersecting primitives between the two scenes.
A user defined data pointer (\f[V]userPtr\f[R] argument) can also be
A user defined data pointer (\f[CR]userPtr\f[R] argument) can also be
passed in.
.PP
For every pair of primitives that may intersect each other, the callback
function (\f[V]callback\f[R] argument) is called.
function (\f[CR]callback\f[R] argument) is called.
The user will be provided with the primID\[cq]s and geomID\[cq]s of
multiple potentially intersecting primitive pairs.
Currently, only scene entirely composed of user geometries are
supported, thus the user is expected to implement a primitive/primitive
intersection to filter out false positives in the callback function.
The \f[V]userPtr\f[R] argument can be used to input geometry data of the
scene or output results of the intersection query.
The \f[CR]userPtr\f[R] argument can be used to input geometry data of
the scene or output results of the intersection query.
.SS SUPPORTED PRIMITIVES
.PP
Currently, the only supported type is the user geometry type (see
[RTC_GEOMETRY_TYPE_USER]).
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
+11 -33
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcCommitGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcCommitGeometry - commits geometry changes
\f[R]
.fi
.EX
rtcCommitGeometry \- commits geometry changes
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcCommitGeometry(RTCGeometry geometry);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcCommitGeometry\f[R] function is used to commit all geometry
changes performed to a geometry (\f[V]geometry\f[R] parameter).
The \f[CR]rtcCommitGeometry\f[R] function is used to commit all geometry
changes performed to a geometry (\f[CR]geometry\f[R] parameter).
After a geometry gets modified, this function must be called to properly
update the internal state of the geometry to perform interpolations
using \f[V]rtcInterpolate\f[R] or to commit a scene containing the
geometry using \f[V]rtcCommitScene\f[R].
using \f[CR]rtcInterpolate\f[R] or to commit a scene containing the
geometry using \f[CR]rtcCommitScene\f[R].
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcInterpolate], [rtcCommitScene]
+25 -47
View File
@@ -1,58 +1,38 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcCommitScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcCommitScene - commits scene changes
\f[R]
.fi
.EX
rtcCommitScene \- commits scene changes
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcCommitScene(RTCScene scene);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcCommitScene\f[R] function commits all changes for the
specified scene (\f[V]scene\f[R] argument).
The \f[CR]rtcCommitScene\f[R] function commits all changes for the
specified scene (\f[CR]scene\f[R] argument).
This internally triggers building of a spatial acceleration structure
for the scene using all available worker threads.
Ray queries can be performed only after committing all scene changes.
.PP
If the application uses TBB 2019 Update 9 or later for parallelization
of rendering, lazy scene construction during rendering is supported by
\f[V]rtcCommitScene\f[R].
Therefore \f[V]rtcCommitScene\f[R] can get called from multiple TBB
\f[CR]rtcCommitScene\f[R].
Therefore \f[CR]rtcCommitScene\f[R] can get called from multiple TBB
worker threads concurrently for the same scene.
The \f[V]rtcCommitScene\f[R] function will then internally isolate the
The \f[CR]rtcCommitScene\f[R] function will then internally isolate the
scene construction using a tbb::isolated_task_group.
The alternative approach of using \f[V]rtcJoinCommitScene\f[R] which
The alternative approach of using \f[CR]rtcJoinCommitScene\f[R] which
uses an tbb:task_arena internally, is not recommended due to it\[cq]s
high runtime overhead.
.PP
If scene geometries get modified or attached or detached, the
\f[V]rtcCommitScene\f[R] call must be invoked before performing any
\f[CR]rtcCommitScene\f[R] call must be invoked before performing any
further ray queries for the scene; otherwise the effect of the ray query
is undefined.
The modification of a geometry, committing the scene, and tracing of
@@ -62,8 +42,8 @@ in the scene count as scene modification, e.g.\ including setting of
intersection filter functions.
.PP
The kind of acceleration structure built can be influenced using scene
flags (see \f[V]rtcSetSceneFlags\f[R]), and the quality can be specified
using the \f[V]rtcSetSceneBuildQuality\f[R] function.
flags (see \f[CR]rtcSetSceneFlags\f[R]), and the quality can be
specified using the \f[CR]rtcSetSceneBuildQuality\f[R] function.
.PP
Embree silently ignores primitives during spatial acceleration structure
construction that would cause numerical issues, e.g.\ primitives
@@ -71,23 +51,21 @@ containing NaNs, INFs, or values greater than 1.844E18f (as no
reasonable calculations can be performed with such values without
causing overflows).
.PP
In case the RTCDevice associated with the \f[V]scene\f[R] is a SYCL
device, \f[V]rtcCommitScene\f[R] will internally create a temporary SYCL
queue to issue memory transfers from host to device memory.
In this case, the call to \f[V]rtcCommitScene\f[R] will be blocking and
In case the RTCDevice associated with the \f[CR]scene\f[R] is a SYCL
device, \f[CR]rtcCommitScene\f[R] will internally create a temporary
SYCL queue to issue memory transfers from host to device memory.
In this case, the call to \f[CR]rtcCommitScene\f[R] will be blocking and
return only after the memory transfers are completed and SYCL kernels
can traverse the scene savely on the device.
The function \f[V]rtcCommitSceneWithQueue\f[R] can be used to commit all
changes for the specified scene asynchronously.
Handles to traversal objects (\f[V]RTCTraversable\f[R] type) that have
been aquired before a call to \f[V]rtcCommitScene\f[R] will be
The function \f[CR]rtcCommitSceneWithQueue\f[R] can be used to commit
all changes for the specified scene asynchronously.
Handles to traversal objects (\f[CR]RTCTraversable\f[R] type) that have
been aquired before a call to \f[CR]rtcCommitScene\f[R] will be
invalidated.
Use \f[V]rtcGetSceneTraversable\f[R] to get a valid handle from the
Use \f[CR]rtcGetSceneTraversable\f[R] to get a valid handle from the
scene after every scene commit.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcCommitSceneWithQueue], [rtcJoinCommitScene]
+9 -31
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcDetachGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcDetachGeometry - detaches a geometry from the scene
\f[R]
.fi
.EX
rtcDetachGeometry \- detaches a geometry from the scene
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcDetachGeometry(RTCScene scene, unsigned int geomID);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function detaches a geometry identified by its geometry ID
(\f[V]geomID\f[R] argument) from a scene (\f[V]scene\f[R] argument).
(\f[CR]geomID\f[R] argument) from a scene (\f[CR]scene\f[R] argument).
When detached, the geometry is no longer contained in the scene.
.PP
This function is thread-safe, thus multiple threads can detach
This function is thread\-safe, thus multiple threads can detach
geometries from a scene at the same time.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcAttachGeometry], [rtcAttachGeometryByID]
+10 -32
View File
@@ -1,50 +1,28 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcDisableGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcDisableGeometry - disables the geometry
\f[R]
.fi
.EX
rtcDisableGeometry \- disables the geometry
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcDisableGeometry(RTCGeometry geometry);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcDisableGeometry\f[R] function disables the specified
geometry (\f[V]geometry\f[R] argument).
The \f[CR]rtcDisableGeometry\f[R] function disables the specified
geometry (\f[CR]geometry\f[R] argument).
A disabled geometry is not rendered.
Each geometry is enabled by default at construction time.
.PP
After disabling a geometry, the scene containing that geometry must be
committed using \f[V]rtcCommitScene\f[R] for the change to have effect.
committed using \f[CR]rtcCommitScene\f[R] for the change to have effect.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcEnableGeometry], [rtcCommitScene]
+10 -32
View File
@@ -1,50 +1,28 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcEnableGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcEnableGeometry - enables the geometry
\f[R]
.fi
.EX
rtcEnableGeometry \- enables the geometry
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcEnableGeometry(RTCGeometry geometry);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcEnableGeometry\f[R] function enables the specified geometry
(\f[V]geometry\f[R] argument).
The \f[CR]rtcEnableGeometry\f[R] function enables the specified geometry
(\f[CR]geometry\f[R] argument).
Only enabled geometries are rendered.
Each geometry is enabled by default at construction time.
.PP
After enabling a geometry, the scene containing that geometry must be
committed using \f[V]rtcCommitScene\f[R] for the change to have effect.
committed using \f[CR]rtcCommitScene\f[R] for the change to have effect.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcDisableGeometry], [rtcCommitScene]
+21 -43
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcForwardIntersect1/Ex" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcForwardIntersect1/Ex - forwards a single ray to new scene
.EX
rtcForwardIntersect1/Ex \- forwards a single ray to new scene
from user geometry callback
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcForwardIntersect1(
@@ -44,53 +26,49 @@ void rtcForwardIntersect1Ex(
unsigned int instID,
unsigned int instPrimID,
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcForwardIntersect1\f[R] and \f[V]rtcForwardIntersect1Ex\f[R]
functions forward the traversal of a transformed ray (\f[V]ray\f[R]
argument) into a scene (\f[V]scene\f[R] argument) from a user geometry
callback.
The \f[CR]rtcForwardIntersect1\f[R] and
\f[CR]rtcForwardIntersect1Ex\f[R] functions forward the traversal of a
transformed ray (\f[CR]ray\f[R] argument) into a scene (\f[CR]scene\f[R]
argument) from a user geometry callback.
The function can only get invoked from a user geometry callback for a
ray traversal initiated with the \f[V]rtcIntersect1\f[R] function.
ray traversal initiated with the \f[CR]rtcIntersect1\f[R] function.
The callback arguments structure of the callback invokation has to get
passed to the ray forwarding (\f[V]args\f[R] argument).
passed to the ray forwarding (\f[CR]args\f[R] argument).
The user geometry callback should instantly terminate after invoking the
\f[V]rtcForwardIntersect1/Ex\f[R] function.
\f[CR]rtcForwardIntersect1/Ex\f[R] function.
.PP
Only the ray origin and ray direction members of the ray argument are
used for forwarding, all additional ray properties are inherited from
the initial ray traversal invokation of \f[V]rtcIntersect1\f[R].
the initial ray traversal invokation of \f[CR]rtcIntersect1\f[R].
.PP
The implementation of the \f[V]rtcForwardIntersect1\f[R] function
The implementation of the \f[CR]rtcForwardIntersect1\f[R] function
recursively continues the ray traversal into the specified scene and
pushes the provided instance ID (\f[V]instID\f[R] argument) to the
pushes the provided instance ID (\f[CR]instID\f[R] argument) to the
instance ID stack.
Hit information is updated into the ray hit structure passed to the
original \f[V]rtcIntersect1\f[R] invokation.
original \f[CR]rtcIntersect1\f[R] invokation.
.PP
This function can get used to implement user defined instancing using
user geometries, e.g.\ by transforming the ray in a special way, and/or
selecting between different scenes to instantiate.
.PP
For user defined instance arrays, the \f[V]rtcForwardIntersect1Ex\f[R]
variant has an additional \f[V]instPrimID\f[R] argument which is pushed
For user defined instance arrays, the \f[CR]rtcForwardIntersect1Ex\f[R]
variant has an additional \f[CR]instPrimID\f[R] argument which is pushed
to the instance primitive ID stack.
Instance primitive IDs identify which instance of an instance array was
hit.
.PP
When using Embree on the CPU it is possible to recursively invoke
\f[V]rtcIntersect1\f[R] directly from a user geometry callback.
\f[CR]rtcIntersect1\f[R] directly from a user geometry callback.
However, when SYCL is used, recursively tracing rays is not directly
supported, and the \f[V]rtcForwardIntersect1/Ex\f[R] functions must be
supported, and the \f[CR]rtcForwardIntersect1/Ex\f[R] functions must be
used.
.PP
The ray structure must be aligned to 16 bytes.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcIntersect1], [RTCRay]
+24 -46
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcForwardIntersect4/8/16/Ex" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcForwardIntersect4/8/16/Ex - forwards a ray packet to new scene
.EX
rtcForwardIntersect4/8/16/Ex \- forwards a ray packet to new scene
from user geometry callback
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcForwardIntersect4(
@@ -81,57 +63,53 @@ void rtcForwardIntersect16Ex(
unsigned int instID,
unsigned int instPrimID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcForwardIntersect4/8/16\f[R] and
\f[V]rtcForwardIntersect4/8/16Ex\f[R] functions forward the traversal of
a transformed ray packet (\f[V]ray\f[R] argument) into a scene
(\f[V]scene\f[R] argument) from a user geometry callback.
The \f[CR]rtcForwardIntersect4/8/16\f[R] and
\f[CR]rtcForwardIntersect4/8/16Ex\f[R] functions forward the traversal
of a transformed ray packet (\f[CR]ray\f[R] argument) into a scene
(\f[CR]scene\f[R] argument) from a user geometry callback.
The function can only get invoked from a user geometry callback for a
ray traversal initiated with the \f[V]rtcIntersect4/8/16\f[R] function.
ray traversal initiated with the \f[CR]rtcIntersect4/8/16\f[R] function.
The callback arguments structure of the callback invokation has to get
passed to the ray forwarding (\f[V]args\f[R] argument).
passed to the ray forwarding (\f[CR]args\f[R] argument).
The user geometry callback should instantly terminate after invoking the
\f[V]rtcForwardIntersect4/8/16/Ex\f[R] function.
\f[CR]rtcForwardIntersect4/8/16/Ex\f[R] function.
.PP
Only the ray origin and ray direction members of the ray argument are
used for forwarding, all additional ray properties are inherited from
the initial ray traversal invokation of \f[V]rtcIntersect4/8/16\f[R].
the initial ray traversal invokation of \f[CR]rtcIntersect4/8/16\f[R].
.PP
The implementation of the \f[V]rtcForwardIntersect4/8/16\f[R] function
The implementation of the \f[CR]rtcForwardIntersect4/8/16\f[R] function
recursively continues the ray traversal into the specified scene and
pushes the provided instance ID (\f[V]instID\f[R] argument) to the
pushes the provided instance ID (\f[CR]instID\f[R] argument) to the
instance ID stack.
Hit information is updated into the ray hit structure passed to the
original \f[V]rtcIntersect4/8/16\f[R] invokation.
original \f[CR]rtcIntersect4/8/16\f[R] invokation.
.PP
This function can get used to implement user defined instancing using
user geometries, e.g.\ by transforming the ray in a special way, and/or
selecting between different scenes to instantiate.
.PP
For user defined instance arrays, the
\f[V]rtcForwardIntersect4/8/16Ex\f[R] variant has an additional
\f[V]instPrimID\f[R] argument which is pushed to the instance primitive
\f[CR]rtcForwardIntersect4/8/16Ex\f[R] variant has an additional
\f[CR]instPrimID\f[R] argument which is pushed to the instance primitive
ID stack.
Instance primitive IDs identify which instance of an instance array was
hit.
.PP
When using Embree on the CPU it is possible to recursively invoke
\f[V]rtcIntersect4/8/16\f[R] directly from a user geometry callback.
\f[CR]rtcIntersect4/8/16\f[R] directly from a user geometry callback.
However, when SYCL is used, recursively tracing rays is not directly
supported, and the \f[V]rtcForwardIntersect4/8/16\f[R] function must be
supported, and the \f[CR]rtcForwardIntersect4/8/16\f[R] function must be
used.
.PP
For \f[V]rtcForwardIntersect4\f[R] the ray packet must be aligned to 16
bytes, for \f[V]rtcForwardIntersect8\f[R] the alignment must be 32
bytes, and for \f[V]rtcForwardIntersect16\f[R] the alignment must be 64
For \f[CR]rtcForwardIntersect4\f[R] the ray packet must be aligned to 16
bytes, for \f[CR]rtcForwardIntersect8\f[R] the alignment must be 32
bytes, and for \f[CR]rtcForwardIntersect16\f[R] the alignment must be 64
bytes.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcIntersect4/8/16]
+20 -42
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcForwardOccluded1/Ex" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcForwardOccluded1/Ex - forwards a single ray to new scene
.EX
rtcForwardOccluded1/Ex \- forwards a single ray to new scene
from user geometry callback
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcForwardOccluded1(
@@ -44,53 +26,49 @@ void rtcForwardOccluded1Ex(
unsigned int instID,
unsigned int instPrimID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcForwardOccluded1\f[R] and \f[V]rtcForwardOccluded1Ex\f[R]
functions forward the traversal of a transformed ray (\f[V]ray\f[R]
argument) into a scene (\f[V]scene\f[R] argument) from a user geometry
The \f[CR]rtcForwardOccluded1\f[R] and \f[CR]rtcForwardOccluded1Ex\f[R]
functions forward the traversal of a transformed ray (\f[CR]ray\f[R]
argument) into a scene (\f[CR]scene\f[R] argument) from a user geometry
callback.
The function can only get invoked from a user geometry callback for a
ray traversal initiated with the \f[V]rtcOccluded1\f[R] function.
ray traversal initiated with the \f[CR]rtcOccluded1\f[R] function.
The callback arguments structure of the callback invokation has to get
passed to the ray forwarding (\f[V]args\f[R] argument).
passed to the ray forwarding (\f[CR]args\f[R] argument).
The user geometry callback should instantly terminate after invoking the
\f[V]rtcForwardOccluded1/Ex\f[R] function.
\f[CR]rtcForwardOccluded1/Ex\f[R] function.
.PP
Only the ray origin and ray direction members of the ray argument are
used for forwarding, all additional ray properties are inherited from
the initial ray traversal invokation of \f[V]rtcOccluded1\f[R].
the initial ray traversal invokation of \f[CR]rtcOccluded1\f[R].
.PP
The implementation of the \f[V]rtcForwardOccluded1\f[R] function
The implementation of the \f[CR]rtcForwardOccluded1\f[R] function
recursively continues the ray traversal into the specified scene and
pushes the provided instance ID (\f[V]instID\f[R] argument) to the
pushes the provided instance ID (\f[CR]instID\f[R] argument) to the
instance ID stack.
Hit information is updated into the ray structure passed to the original
\f[V]rtcOccluded1\f[R] invokation.
\f[CR]rtcOccluded1\f[R] invokation.
.PP
This function can get used to implement user defined instancing using
user geometries, e.g.\ by transforming the ray in a special way, and/or
selecting between different scenes to instantiate.
.PP
For user defined instance arrays, the \f[V]rtcForwardIntersect1Ex\f[R]
variant has an additional \f[V]instPrimID\f[R] argument which is pushed
For user defined instance arrays, the \f[CR]rtcForwardIntersect1Ex\f[R]
variant has an additional \f[CR]instPrimID\f[R] argument which is pushed
to the instance primitive ID stack.
Instance primitive IDs identify which instance of an instance array was
hit.
.PP
When using Embree on the CPU it is possible to recursively invoke
\f[V]rtcOccluded1\f[R] directly from a user geometry callback.
\f[CR]rtcOccluded1\f[R] directly from a user geometry callback.
However, when SYCL is used, recursively tracing rays is not directly
supported, and the \f[V]rtcForwardOccluded1/Ex\f[R] function must be
supported, and the \f[CR]rtcForwardOccluded1/Ex\f[R] function must be
used.
.PP
The ray structure must be aligned to 16 bytes.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcOccluded1], [RTCRay]
+25 -46
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcForwardOccluded4/8/16/Ex" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcForwardOccluded4/8/16/Ex - forwards a ray packet to new scene
.EX
rtcForwardOccluded4/8/16/Ex \- forwards a ray packet to new scene
from user geometry callback
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcForwardOccluded4(
@@ -80,56 +62,53 @@ void rtcForwardOccluded16Ex(
unsigned int instID,
unsigned int instPrimID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcForwardOccluded4/8/16\f[R] and
\f[V]rtcForwardOccluded4/8/16Ex\f[R] functions forward the traversal of
a transformed ray packet (\f[V]ray\f[R] argument) into a scene
(\f[V]scene\f[R] argument) from a user geometry callback.
The \f[CR]rtcForwardOccluded4/8/16\f[R] and
\f[CR]rtcForwardOccluded4/8/16Ex\f[R] functions forward the traversal of
a transformed ray packet (\f[CR]ray\f[R] argument) into a scene
(\f[CR]scene\f[R] argument) from a user geometry callback.
The function can only get invoked from a user geometry callback for a
ray traversal initiated with the \f[V]rtcOccluded4/8/16\f[R] function.
ray traversal initiated with the \f[CR]rtcOccluded4/8/16\f[R] function.
The callback arguments structure of the callback invokation has to get
passed to the ray forwarding (\f[V]args\f[R] argument).
passed to the ray forwarding (\f[CR]args\f[R] argument).
The user geometry callback should instantly terminate after invoking the
\f[V]rtcForwardOccluded4/8/16/Ex\f[R] function.
\f[CR]rtcForwardOccluded4/8/16/Ex\f[R] function.
.PP
Only the ray origin and ray direction members of the ray argument are
used for forwarding, all additional ray properties are inherited from
the initial ray traversal invokation of \f[V]rtcOccluded4/8/16\f[R].
the initial ray traversal invokation of \f[CR]rtcOccluded4/8/16\f[R].
.PP
The implementation of the \f[V]rtcForwardOccluded4/8/16\f[R] function
The implementation of the \f[CR]rtcForwardOccluded4/8/16\f[R] function
recursively continues the ray traversal into the specified scene and
pushes the provided instance ID (\f[V]instID\f[R] argument) to the
pushes the provided instance ID (\f[CR]instID\f[R] argument) to the
instance ID stack.
Hit information is updated into the ray structure passed to the original
\f[V]rtcOccluded4/8/16\f[R] invokation.
\f[CR]rtcOccluded4/8/16\f[R] invokation.
.PP
This function can get used to implement user defined instancing using
user geometries, e.g.\ by transforming the ray in a special way, and/or
selecting between different scenes to instantiate.
.PP
For user defined instance arrays, the
\f[V]rtcForwardIntersect4/8/16Ex\f[R] variant has an additional
\f[V]instPrimID\f[R] argument which is pushed to the instance primitive
\f[CR]rtcForwardIntersect4/8/16Ex\f[R] variant has an additional
\f[CR]instPrimID\f[R] argument which is pushed to the instance primitive
ID stack.
Instance primitive IDs identify which instance of an instance array was
hit.
.PP
When using Embree on the CPU it is possible to recursively invoke
\f[V]rtcOccluded4/8/16\f[R] directly from a user geometry callback.
\f[CR]rtcOccluded4/8/16\f[R] directly from a user geometry callback.
However, when SYCL is used, recursively tracing rays is not directly
supported, and the \f[V]rtcForwardOccluded4/8/16\f[R] function must be
supported, and the \f[CR]rtcForwardOccluded4/8/16\f[R] function must be
used.
.PP
For \f[V]rtcForwardOccluded4\f[R] the ray packet must be aligned to 16
bytes, for \f[V]rtcForwardOccluded8\f[R] the alignment must be 32 bytes,
and for \f[V]rtcForwardOccluded16\f[R] the alignment must be 64 bytes.
For \f[CR]rtcForwardOccluded4\f[R] the ray packet must be aligned to 16
bytes, for \f[CR]rtcForwardOccluded8\f[R] the alignment must be 32
bytes, and for \f[CR]rtcForwardOccluded16\f[R] the alignment must be 64
bytes.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcOccluded4/8/16]
+13 -35
View File
@@ -1,50 +1,28 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetBufferData" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetBufferData - gets a pointer to the buffer data
\f[R]
.fi
.EX
rtcGetBufferData \- gets a pointer to the buffer data
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void* rtcGetBufferData(RTCBuffer buffer);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetBufferData\f[R] function returns a pointer to the buffer
data of the specified buffer object (\f[V]buffer\f[R] argument).
If the buffer was created using \f[V]rtcNewBufferHostDevice\f[R] and the
SYCL device has no host unified memory, this pointer is only valid on
the host.
The \f[CR]rtcGetBufferData\f[R] function returns a pointer to the buffer
data of the specified buffer object (\f[CR]buffer\f[R] argument).
If the buffer was created using \f[CR]rtcNewBufferHostDevice\f[R] and
the SYCL device has no host unified memory, this pointer is only valid
on the host.
To get a device pointer in this case, use
\f[V]rtcGetBufferDataDevice\f[R].
\f[CR]rtcGetBufferDataDevice\f[R].
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetBufferDataDevice], [rtcNewBuffer], [rtcNewBufferHostDevice]
+36 -55
View File
@@ -1,95 +1,76 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetDeviceError" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetDeviceError - returns the error code of the device
\f[R]
.fi
.EX
rtcGetDeviceError \- returns the error code of the device
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCError rtcGetDeviceError(RTCDevice device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Each thread has its own error code per device.
If an error occurs when calling an API function, this error code is set
to the occurred error if it stores no previous error.
The \f[V]rtcGetDeviceError\f[R] function reads and returns the currently
stored error and clears the error code.
The \f[CR]rtcGetDeviceError\f[R] function reads and returns the
currently stored error and clears the error code.
This assures that the returned error code is always the first error
occurred since the last invocation of \f[V]rtcGetDeviceError\f[R].
occurred since the last invocation of \f[CR]rtcGetDeviceError\f[R].
.PP
Possible error codes returned by \f[V]rtcGetDeviceError\f[R] are:
Possible error codes returned by \f[CR]rtcGetDeviceError\f[R] are:
.IP \[bu] 2
\f[V]RTC_ERROR_NONE\f[R]: No error occurred.
\f[CR]RTC_ERROR_NONE\f[R]: No error occurred.
.IP \[bu] 2
\f[V]RTC_ERROR_UNKNOWN\f[R]: An unknown error has occurred.
\f[CR]RTC_ERROR_UNKNOWN\f[R]: An unknown error has occurred.
.IP \[bu] 2
\f[V]RTC_ERROR_INVALID_ARGUMENT\f[R]: An invalid argument was specified.
\f[CR]RTC_ERROR_INVALID_ARGUMENT\f[R]: An invalid argument was
specified.
.IP \[bu] 2
\f[V]RTC_ERROR_INVALID_OPERATION\f[R]: The operation is not allowed for
\f[CR]RTC_ERROR_INVALID_OPERATION\f[R]: The operation is not allowed for
the specified object.
.IP \[bu] 2
\f[V]RTC_ERROR_OUT_OF_MEMORY\f[R]: There is not enough memory left to
\f[CR]RTC_ERROR_OUT_OF_MEMORY\f[R]: There is not enough memory left to
complete the operation.
.IP \[bu] 2
\f[V]RTC_ERROR_UNSUPPORTED_CPU\f[R]: The CPU is not supported as it does
not support the lowest ISA Embree is compiled for.
\f[CR]RTC_ERROR_UNSUPPORTED_CPU\f[R]: The CPU is not supported as it
does not support the lowest ISA Embree is compiled for.
.IP \[bu] 2
\f[V]RTC_ERROR_CANCELLED\f[R]: The operation got canceled by a memory
\f[CR]RTC_ERROR_CANCELLED\f[R]: The operation got canceled by a memory
monitor callback or progress monitor callback function.
.IP \[bu] 2
\f[V]RTC_ERROR_LEVEL_ZERO_RAYTRACING_SUPPORT_MISSING\f[R]: This error
\f[CR]RTC_ERROR_LEVEL_ZERO_RAYTRACING_SUPPORT_MISSING\f[R]: This error
can occur when creating an Embree device with SYCL support using
\f[V]rtcNewSYCLDevice\f[R] fails.
\f[CR]rtcNewSYCLDevice\f[R] fails.
This error probably means that the GPU driver is to old or not installed
properly.
Install a new GPU driver and on Linux make sure that the package
\f[V]intel-level-zero-gpu-raytracing\f[R] is installed.
For general driver installation information for Linux refer to
<https://dgpu-docs.intel.com>.
\f[CR]intel\-level\-zero\-gpu\-raytracing\f[R] is installed.
For general driver installation information for Linux refer to \c
.UR https://dgpu-docs.intel.com
.UE \c
\&.
.PP
When the device construction fails, \f[V]rtcNewDevice\f[R] returns
\f[V]NULL\f[R] as device.
When the device construction fails, \f[CR]rtcNewDevice\f[R] returns
\f[CR]NULL\f[R] as device.
To detect the error code of a such a failed device construction, pass
\f[V]NULL\f[R] as device to the \f[V]rtcGetDeviceError\f[R] function.
For all other invocations of \f[V]rtcGetDeviceError\f[R], a proper
\f[CR]NULL\f[R] as device to the \f[CR]rtcGetDeviceError\f[R] function.
For all other invocations of \f[CR]rtcGetDeviceError\f[R], a proper
device pointer must be specified.
.PP
The API function \f[V]rtcGetDeviceLastErrorMessage\f[R] can be used to
get more details about the last \f[V]RTCError\f[R] a \f[V]RTCDevice\f[R]
encountered.
The API function \f[CR]rtcGetDeviceLastErrorMessage\f[R] can be used to
get more details about the last \f[CR]RTCError\f[R] a
\f[CR]RTCDevice\f[R] encountered.
.PP
For convenient reporting of a \f[V]RTCError\f[R], the API function
\f[V]rtcGetErrorString\f[R] can be used, which returns a string
representation of a given \f[V]RTCError\f[R].
For convenient reporting of a \f[CR]RTCError\f[R], the API function
\f[CR]rtcGetErrorString\f[R] can be used, which returns a string
representation of a given \f[CR]RTCError\f[R].
.SS EXIT STATUS
.PP
Returns the error code for the device.
.SS SEE ALSO
.PP
[rtcSetDeviceErrorFunction], [rtcGetDeviceLastErrorMessage],
[rtcGetErrorString]
+12 -34
View File
@@ -1,57 +1,35 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetDeviceLastErrorMessage" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetDeviceLastErrorMessage - returns a message corresponding
.EX
rtcGetDeviceLastErrorMessage \- returns a message corresponding
to the last error code
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
const char* rtcGetDeviceLastErrorMessage(RTCDevice device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function can be used to get a message corresponding to the last
error code (returned by \f[V]rtcGetDeviceError\f[R]) which often
error code (returned by \f[CR]rtcGetDeviceError\f[R]) which often
provides details about the error that happened.
The message is the same as the message that will written to console when
verbosity is > 0 or which is passed as the \f[V]str\f[R] argument of the
\f[V]RTCErrorFunction\f[R] (see [rtcSetDeviceErrorFunction]).
verbosity is > 0 or which is passed as the \f[CR]str\f[R] argument of
the \f[CR]RTCErrorFunction\f[R] (see [rtcSetDeviceErrorFunction]).
However, when device construction fails this is the only way to get
additional information about the error.
In this case, \f[V]rtcNewDevice\f[R] returns \f[V]NULL\f[R] as device.
In this case, \f[CR]rtcNewDevice\f[R] returns \f[CR]NULL\f[R] as device.
To query the error message for such a failed device construction, pass
\f[V]NULL\f[R] as device to the \f[V]rtcGetDeviceLastErrorMessage\f[R]
\f[CR]NULL\f[R] as device to the \f[CR]rtcGetDeviceLastErrorMessage\f[R]
function.
For all other invocations of \f[V]rtcGetDeviceLastErrorMessage\f[R], a
For all other invocations of \f[CR]rtcGetDeviceLastErrorMessage\f[R], a
proper device pointer must be specified.
.SS EXIT STATUS
.PP
Returns a message corresponding to the last error code.
.SS SEE ALSO
.PP
[rtcGetDeviceError], [rtcSetDeviceErrorFunction]
+70 -91
View File
@@ -1,145 +1,125 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetDeviceProperty" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetDeviceProperty - queries properties of the device
\f[R]
.fi
.EX
rtcGetDeviceProperty \- queries properties of the device
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
ssize_t rtcGetDeviceProperty(
RTCDevice device,
enum RTCDeviceProperty prop
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetDeviceProperty\f[R] function can be used to query
properties (\f[V]prop\f[R] argument) of a device object
(\f[V]device\f[R] argument).
The returned property is an integer of type \f[V]ssize_t\f[R].
The \f[CR]rtcGetDeviceProperty\f[R] function can be used to query
properties (\f[CR]prop\f[R] argument) of a device object
(\f[CR]device\f[R] argument).
The returned property is an integer of type \f[CR]ssize_t\f[R].
.PP
Possible properties to query are:
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_VERSION\f[R]: Queries the combined version
\f[CR]RTC_DEVICE_PROPERTY_VERSION\f[R]: Queries the combined version
number (MAJOR.MINOR.PATCH) with two decimal digits per component.
E.g.
for Embree 2.8.3 the integer 208003 is returned.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_VERSION_MAJOR\f[R]: Queries the major version
\f[CR]RTC_DEVICE_PROPERTY_VERSION_MAJOR\f[R]: Queries the major version
number of Embree.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_VERSION_MINOR\f[R]: Queries the minor version
\f[CR]RTC_DEVICE_PROPERTY_VERSION_MINOR\f[R]: Queries the minor version
number of Embree.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_VERSION_PATCH\f[R]: Queries the patch version
\f[CR]RTC_DEVICE_PROPERTY_VERSION_PATCH\f[R]: Queries the patch version
number of Embree.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[R]: Queries whether the
\f[V]rtcIntersect4\f[R] and \f[V]rtcOccluded4\f[R] functions preserve
packet size and ray order when invoking callback functions.
This is only the case if Embree is compiled with
\f[V]EMBREE_RAY_PACKETS\f[R] and \f[V]SSE2\f[R] (or \f[V]SSE4.2\f[R])
enabled, and if the machine it is running on supports \f[V]SSE2\f[R] (or
\f[V]SSE4.2\f[R]).
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[R]: Queries whether the
\f[V]rtcIntersect8\f[R] and \f[V]rtcOccluded8\f[R] functions preserve
packet size and ray order when invoking callback functions.
This is only the case if Embree is compiled with
\f[V]EMBREE_RAY_PACKETS\f[R] and \f[V]AVX\f[R] (or \f[V]AVX2\f[R])
enabled, and if the machine it is running on supports \f[V]AVX\f[R] (or
\f[V]AVX2\f[R]).
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[R]: Queries whether
the \f[V]rtcIntersect16\f[R] and \f[V]rtcOccluded16\f[R] functions
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[R]: Queries whether
the \f[CR]rtcIntersect4\f[R] and \f[CR]rtcOccluded4\f[R] functions
preserve packet size and ray order when invoking callback functions.
This is only the case if Embree is compiled with
\f[V]EMBREE_RAY_PACKETS\f[R] and \f[V]AVX512\f[R] enabled, and if the
machine it is running on supports \f[V]AVX512\f[R].
\f[CR]EMBREE_RAY_PACKETS\f[R] and \f[CR]SSE2\f[R] (or \f[CR]SSE4.2\f[R])
enabled, and if the machine it is running on supports \f[CR]SSE2\f[R]
(or \f[CR]SSE4.2\f[R]).
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED\f[R]: Queries whether ray
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[R]: Queries whether
the \f[CR]rtcIntersect8\f[R] and \f[CR]rtcOccluded8\f[R] functions
preserve packet size and ray order when invoking callback functions.
This is only the case if Embree is compiled with
\f[CR]EMBREE_RAY_PACKETS\f[R] and \f[CR]AVX\f[R] (or \f[CR]AVX2\f[R])
enabled, and if the machine it is running on supports \f[CR]AVX\f[R] (or
\f[CR]AVX2\f[R]).
.IP \[bu] 2
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[R]: Queries whether
the \f[CR]rtcIntersect16\f[R] and \f[CR]rtcOccluded16\f[R] functions
preserve packet size and ray order when invoking callback functions.
This is only the case if Embree is compiled with
\f[CR]EMBREE_RAY_PACKETS\f[R] and \f[CR]AVX512\f[R] enabled, and if the
machine it is running on supports \f[CR]AVX512\f[R].
.IP \[bu] 2
\f[CR]RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED\f[R]: Queries whether ray
masks are supported.
This is only the case if Embree is compiled with
\f[V]EMBREE_RAY_MASK\f[R] enabled.
\f[CR]EMBREE_RAY_MASK\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED\f[R]: Queries whether
\f[CR]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED\f[R]: Queries whether
back face culling is enabled.
This is only the case if Embree is compiled with
\f[V]EMBREE_BACKFACE_CULLING\f[R] enabled.
\f[CR]EMBREE_BACKFACE_CULLING\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_CURVES_ENABLED\f[R]: Queries
\f[CR]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_CURVES_ENABLED\f[R]: Queries
whether back face culling for curves is enabled.
This is only the case if Embree is compiled with
\f[V]EMBREE_BACKFACE_CULLING_CURVES\f[R] enabled.
\f[CR]EMBREE_BACKFACE_CULLING_CURVES\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_SPHERES_ENABLED\f[R]: Queries
\f[CR]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_SPHERES_ENABLED\f[R]: Queries
whether back face culling for spheres is enabled.
This is only the case if Embree is compiled with
\f[V]EMBREE_BACKFACE_CULLING_SPHERES\f[R] enabled.
\f[CR]EMBREE_BACKFACE_CULLING_SPHERES\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLED\f[R]: Queries whether
\f[CR]RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLED\f[R]: Queries whether
compact polys is enabled.
This is only the case if Embree is compiled with
\f[V]EMBREE_COMPACT_POLYS\f[R] enabled.
\f[CR]EMBREE_COMPACT_POLYS\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED\f[R]: Queries whether
filter functions are supported, which is the case if Embree is compiled
with \f[V]EMBREE_FILTER_FUNCTION\f[R] enabled.
\f[CR]RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED\f[R]: Queries
whether filter functions are supported, which is the case if Embree is
compiled with \f[CR]EMBREE_FILTER_FUNCTION\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED\f[R]: Queries
\f[CR]RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED\f[R]: Queries
whether invalid rays are ignored, which is the case if Embree is
compiled with \f[V]EMBREE_IGNORE_INVALID_RAYS\f[R] enabled.
compiled with \f[CR]EMBREE_IGNORE_INVALID_RAYS\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED\f[R]: Queries
\f[CR]RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED\f[R]: Queries
whether triangles are supported, which is the case if Embree is compiled
with \f[V]EMBREE_GEOMETRY_TRIANGLE\f[R] enabled.
with \f[CR]EMBREE_GEOMETRY_TRIANGLE\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED\f[R]: Queries whether
\f[CR]RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED\f[R]: Queries whether
quads are supported, which is the case if Embree is compiled with
\f[V]EMBREE_GEOMETRY_QUAD\f[R] enabled.
\f[CR]EMBREE_GEOMETRY_QUAD\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED\f[R]: Queries
\f[CR]RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED\f[R]: Queries
whether subdivision meshes are supported, which is the case if Embree is
compiled with \f[V]EMBREE_GEOMETRY_SUBDIVISION\f[R] enabled.
compiled with \f[CR]EMBREE_GEOMETRY_SUBDIVISION\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED\f[R]: Queries whether
\f[CR]RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED\f[R]: Queries whether
curves are supported, which is the case if Embree is compiled with
\f[V]EMBREE_GEOMETRY_CURVE\f[R] enabled.
\f[CR]EMBREE_GEOMETRY_CURVE\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED\f[R]: Queries whether
\f[CR]RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED\f[R]: Queries whether
points are supported, which is the case if Embree is compiled with
\f[V]EMBREE_GEOMETRY_POINT\f[R] enabled.
\f[CR]EMBREE_GEOMETRY_POINT\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED\f[R]: Queries whether
\f[CR]RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED\f[R]: Queries whether
user geometries are supported, which is the case if Embree is compiled
with \f[V]EMBREE_GEOMETRY_USER\f[R] enabled.
with \f[CR]EMBREE_GEOMETRY_USER\f[R] enabled.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_TASKING_SYSTEM\f[R]: Queries the tasking system
Embree is compiled with.
\f[CR]RTC_DEVICE_PROPERTY_TASKING_SYSTEM\f[R]: Queries the tasking
system Embree is compiled with.
Possible return values are:
.RS 2
.IP "0." 3
@@ -150,20 +130,19 @@ Intel Threading Building Blocks (TBB)
Parallel Patterns Library (PPL)
.RE
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED\f[R]: Queries whether
\f[V]rtcJoinCommitScene\f[R] is supported.
\f[CR]RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED\f[R]: Queries whether
\f[CR]rtcJoinCommitScene\f[R] is supported.
This is not the case when Embree is compiled with PPL or older versions
of TBB.
.IP \[bu] 2
\f[V]RTC_DEVICE_PROPERTY_PARALLEL_COMMIT_SUPPORTED\f[R]: Queries whether
\f[V]rtcCommitScene\f[R] can get invoked from multiple TBB worker
threads concurrently.
\f[CR]RTC_DEVICE_PROPERTY_PARALLEL_COMMIT_SUPPORTED\f[R]: Queries
whether \f[CR]rtcCommitScene\f[R] can get invoked from multiple TBB
worker threads concurrently.
This feature is only supported starting with TBB 2019 Update 9.
.SS EXIT STATUS
.PP
On success returns the value of the queried property.
For properties returning a boolean value, the return value 0 denotes
\f[V]false\f[R] and 1 denotes \f[V]true\f[R].
\f[CR]false\f[R] and 1 denotes \f[CR]true\f[R].
.PP
On failure zero is returned and an error code is set that can be queried
using \f[V]rtcGetDeviceError\f[R].
using \f[CR]rtcGetDeviceError\f[R].
+12 -34
View File
@@ -1,54 +1,32 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetErrorString" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetErrorString - returns a string representation
.EX
rtcGetErrorString \- returns a string representation
of a given RTCError
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
const char* rtcGetErrorString(RTCError code);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Returns a string representation for a \f[V]RTCError\f[R] error code.
For example, for the \f[V]RTCError\f[R] RTC_ERROR_UNKNOWN this function
Returns a string representation for a \f[CR]RTCError\f[R] error code.
For example, for the \f[CR]RTCError\f[R] RTC_ERROR_UNKNOWN this function
will return the string \[lq]Unknown Error\[rq].
This is purely a convenience function for printing error information on
the user side.
.PP
The returned strings should not be used for comparing different
\f[V]RTCError\f[R] error codes or make other decisions based on the type
of error that occurred.
For such things only the \f[V]RTCError\f[R] enum values should be used.
\f[CR]RTCError\f[R] error codes or make other decisions based on the
type of error that occurred.
For such things only the \f[CR]RTCError\f[R] enum values should be used.
.SS EXIT STATUS
.PP
Returns a string representation of a given \f[V]RTCError\f[R] error
Returns a string representation of a given \f[CR]RTCError\f[R] error
code.
.SS SEE ALSO
.PP
[rtcGetDeviceError]
+12 -34
View File
@@ -1,47 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometry - returns the geometry bound to
.EX
rtcGetGeometry \- returns the geometry bound to
the specified geometry ID
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry rtcGetGeometry(RTCScene scene, unsigned int geomID);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometry\f[R] function returns the geometry that is bound
to the specified geometry ID (\f[V]geomID\f[R] argument) for the
specified scene (\f[V]scene\f[R] argument).
The \f[CR]rtcGetGeometry\f[R] function returns the geometry that is
bound to the specified geometry ID (\f[CR]geomID\f[R] argument) for the
specified scene (\f[CR]scene\f[R] argument).
This function just looks up the handle and does \f[I]not\f[R] increment
the reference count.
If you want to get ownership of the handle, you need to additionally
call \f[V]rtcRetainGeometry\f[R].
call \f[CR]rtcRetainGeometry\f[R].
.PP
This function is not thread safe and thus can be used during rendering.
However, it is generally recommended to store the geometry handle inside
@@ -51,9 +31,7 @@ handle from that representation directly.
If you need a thread safe version of this function please use
[rtcGetGeometryThreadSafe].
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcAttachGeometry], [rtcAttachGeometryByID], [rtcGetGeometryThreadSafe]
+14 -35
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryBufferData" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryBufferData - gets pointer to
.EX
rtcGetGeometryBufferData \- gets pointer to
the first buffer view element
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void* rtcGetGeometryBufferData(
@@ -35,24 +17,21 @@ void* rtcGetGeometryBufferData(
enum RTCBufferType type,
unsigned int slot
);
\f[R]
.fi
.EE
.SS DESCRIPTION
The \f[CR]rtcGetGeometryBufferData\f[R] function returns a pointer to
the first element of the buffer view attached to the specified buffer
type and slot (\f[CR]type\f[R] and \f[CR]slot\f[R] argument) of the
geometry (\f[CR]geometry\f[R] argument).
.PP
The \f[V]rtcGetGeometryBufferData\f[R] function returns a pointer to the
first element of the buffer view attached to the specified buffer type
and slot (\f[V]type\f[R] and \f[V]slot\f[R] argument) of the geometry
(\f[V]geometry\f[R] argument).
.PP
If the device associated with \f[V]geometry\f[R] is a SYCL device, the
If the device associated with \f[CR]geometry\f[R] is a SYCL device, the
returned pointer only accessible on the host.
The function \f[V]rtcGetGeometryBufferDataDevice\f[R] can be used to get
a pointer accessible on the SYCL device.
The function \f[CR]rtcGetGeometryBufferDataDevice\f[R] can be used to
get a pointer accessible on the SYCL device.
#### EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetGeometryBufferDataDevice], [rtcSetGeometryBuffer],
[rtcSetSharedGeometryBuffer], [rtcSetNewGeometryBuffer]
+14 -37
View File
@@ -1,61 +1,38 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryFace" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryFace - returns the face of some half edge
\f[R]
.fi
.EX
rtcGetGeometryFace \- returns the face of some half edge
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
unsigned int rtcGetGeometryFace(
RTCGeometry geometry,
unsigned int edgeID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryFace\f[R] function returns the ID of the face the
specified half edge (\f[V]edgeID\f[R] argument) belongs to.
For instance in the following example the face \f[V]f1\f[R] is returned
for edges \f[V]e4\f[R], \f[V]e5\f[R], \f[V]e6\f[R], and \f[V]e7\f[R].
The \f[CR]rtcGetGeometryFace\f[R] function returns the ID of the face
the specified half edge (\f[CR]edgeID\f[R] argument) belongs to.
For instance in the following example the face \f[CR]f1\f[R] is returned
for edges \f[CR]e4\f[R], \f[CR]e5\f[R], \f[CR]e6\f[R], and
\f[CR]e7\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
This function can only be used for subdivision geometries.
As all topologies of a subdivision geometry share the same face buffer
the function does not depend on the topology ID.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetGeometryFirstHalfEdge], [rtcGetGeometryFace],
[rtcGetGeometryOppositeHalfEdge], [rtcGetGeometryNextHalfEdge],
[rtcGetGeometryPreviousHalfEdge]
+12 -36
View File
@@ -1,52 +1,30 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryFirstHalfEdge" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryFirstHalfEdge - returns the first half edge of a face
\f[R]
.fi
.EX
rtcGetGeometryFirstHalfEdge \- returns the first half edge of a face
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
unsigned int rtcGetGeometryFirstHalfEdge(
RTCGeometry geometry,
unsigned int faceID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryFirstHalfEdge\f[R] function returns the ID of the
first half edge belonging to the specified face (\f[V]faceID\f[R]
The \f[CR]rtcGetGeometryFirstHalfEdge\f[R] function returns the ID of
the first half edge belonging to the specified face (\f[CR]faceID\f[R]
argument).
For instance in the following example the first half edge of face
\f[V]f1\f[R] is \f[V]e4\f[R].
\f[CR]f1\f[R] is \f[CR]e4\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
This function can only be used for subdivision geometries.
As all topologies of a subdivision geometry share the same face buffer
@@ -60,11 +38,9 @@ E.g.
as the indices of face f1 start at location 4 of the index array, the
first edge is edge e4, the next edge e5, etc.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetGeometryFirstHalfEdge], [rtcGetGeometryFace],
[rtcGetGeometryOppositeHalfEdge], [rtcGetGeometryNextHalfEdge],
[rtcGetGeometryPreviousHalfEdge]
+12 -36
View File
@@ -1,61 +1,37 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryNextHalfEdge" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryNextHalfEdge - returns the next half edge
\f[R]
.fi
.EX
rtcGetGeometryNextHalfEdge \- returns the next half edge
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
unsigned int rtcGetGeometryNextHalfEdge(
RTCGeometry geometry,
unsigned int edgeID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryNextHalfEdge\f[R] function returns the ID of the
next half edge of the specified half edge (\f[V]edgeID\f[R] argument).
The \f[CR]rtcGetGeometryNextHalfEdge\f[R] function returns the ID of the
next half edge of the specified half edge (\f[CR]edgeID\f[R] argument).
For instance in the following example the next half edge of
\f[V]e10\f[R] is \f[V]e11\f[R].
\f[CR]e10\f[R] is \f[CR]e11\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
This function can only be used for subdivision geometries.
As all topologies of a subdivision geometry share the same face buffer
the function does not depend on the topology ID.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetGeometryFirstHalfEdge], [rtcGetGeometryFace],
[rtcGetGeometryOppositeHalfEdge], [rtcGetGeometryNextHalfEdge],
[rtcGetGeometryPreviousHalfEdge]
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryOppositeHalfEdge" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryOppositeHalfEdge - returns the opposite half edge
\f[R]
.fi
.EX
rtcGetGeometryOppositeHalfEdge \- returns the opposite half edge
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
unsigned int rtcGetGeometryOppositeHalfEdge(
@@ -34,35 +16,29 @@ unsigned int rtcGetGeometryOppositeHalfEdge(
unsigned int topologyID,
unsigned int edgeID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryOppositeHalfEdge\f[R] function returns the ID of
the opposite half edge of the specified half edge (\f[V]edgeID\f[R]
argument) in the specified topology (\f[V]topologyID\f[R] argument).
The \f[CR]rtcGetGeometryOppositeHalfEdge\f[R] function returns the ID of
the opposite half edge of the specified half edge (\f[CR]edgeID\f[R]
argument) in the specified topology (\f[CR]topologyID\f[R] argument).
For instance in the following example the opposite half edge of
\f[V]e6\f[R] is \f[V]e16\f[R].
\f[CR]e6\f[R] is \f[CR]e16\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
An opposite half edge does not exist if the specified half edge has
either no neighboring face, or more than 2 neighboring faces.
In these cases the function just returns the same edge \f[V]edgeID\f[R]
In these cases the function just returns the same edge \f[CR]edgeID\f[R]
again.
.PP
This function can only be used for subdivision geometries.
The function depends on the topology as the topologies of a subdivision
geometry have different index buffers assigned.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetGeometryFirstHalfEdge], [rtcGetGeometryFace],
[rtcGetGeometryOppositeHalfEdge], [rtcGetGeometryNextHalfEdge],
[rtcGetGeometryPreviousHalfEdge]
@@ -1,62 +1,38 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryPreviousHalfEdge" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryPreviousHalfEdge - returns the previous half edge
\f[R]
.fi
.EX
rtcGetGeometryPreviousHalfEdge \- returns the previous half edge
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
unsigned int rtcGetGeometryPreviousHalfEdge(
RTCGeometry geometry,
unsigned int edgeID
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryPreviousHalfEdge\f[R] function returns the ID of
the previous half edge of the specified half edge (\f[V]edgeID\f[R]
The \f[CR]rtcGetGeometryPreviousHalfEdge\f[R] function returns the ID of
the previous half edge of the specified half edge (\f[CR]edgeID\f[R]
argument).
For instance in the following example the previous half edge of
\f[V]e6\f[R] is \f[V]e5\f[R].
\f[CR]e6\f[R] is \f[CR]e5\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
This function can only be used for subdivision geometries.
As all topologies of a subdivision geometry share the same face buffer
the function does not depend on the topology ID.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetGeometryFirstHalfEdge], [rtcGetGeometryFace],
[rtcGetGeometryOppositeHalfEdge], [rtcGetGeometryNextHalfEdge],
[rtcGetGeometryPreviousHalfEdge]
+13 -35
View File
@@ -1,55 +1,33 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryThreadSafe" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryThreadSafe - returns the geometry bound to
.EX
rtcGetGeometryThreadSafe \- returns the geometry bound to
the specified geometry ID
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCGeometry rtcGetGeometryThreadSafe(RTCScene scene, unsigned int geomID);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryThreadSafe\f[R] function returns the geometry
that is bound to the specified geometry ID (\f[V]geomID\f[R] argument)
for the specified scene (\f[V]scene\f[R] argument).
The \f[CR]rtcGetGeometryThreadSafe\f[R] function returns the geometry
that is bound to the specified geometry ID (\f[CR]geomID\f[R] argument)
for the specified scene (\f[CR]scene\f[R] argument).
This function just looks up the handle and does \f[I]not\f[R] increment
the reference count.
If you want to get ownership of the handle, you need to additionally
call \f[V]rtcRetainGeometry\f[R].
call \f[CR]rtcRetainGeometry\f[R].
.PP
This function is thread safe and should NOT get used during rendering.
If you need a fast non-thread safe version during rendering please use
If you need a fast non\-thread safe version during rendering please use
the [rtcGetGeometry] function.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcAttachGeometry], [rtcAttachGeometryByID], [rtcGetGeometry]
+20 -42
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryTransform" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryTransform - returns the interpolated instance
.EX
rtcGetGeometryTransform \- returns the interpolated instance
transformation for the specified time
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcGetGeometryTransform(
@@ -36,37 +18,33 @@ void rtcGetGeometryTransform(
enum RTCFormat format,
void* xfm
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryTransform\f[R] function returns the interpolated
local to world transformation (\f[V]xfm\f[R] parameter) of an instance
geometry (\f[V]geometry\f[R] parameter) for a particular time
(\f[V]time\f[R] parameter in range [0,1]) in the specified format
(\f[V]format\f[R] parameter).
The \f[CR]rtcGetGeometryTransform\f[R] function returns the interpolated
local to world transformation (\f[CR]xfm\f[R] parameter) of an instance
geometry (\f[CR]geometry\f[R] parameter) for a particular time
(\f[CR]time\f[R] parameter in range [0, 1]) in the specified format
(\f[CR]format\f[R] parameter).
.PP
Possible formats for the returned matrix are:
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R]: The 3×4 float matrix is laid
out in row-major form.
\f[CR]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R]: The 3×4 float matrix is laid
out in row\-major form.
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is laid
out in column-major form.
\f[CR]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is
laid out in column\-major form.
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is laid
out in column-major form as a 4×4 homogeneous matrix with last row equal
to (0, 0, 0, 1).
\f[CR]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is
laid out in column\-major form as a 4×4 homogeneous matrix with last row
equal to (0, 0, 0, 1).
.PP
This function is supposed to be used during rendering, but only
supported on the CPU and not inside SYCL kernels on the GPU.
Inside a SYCL kernel the \f[V]rtcGetGeometryTransformFromScene\f[R]
Inside a SYCL kernel the \f[CR]rtcGetGeometryTransformFromScene\f[R]
function has to get used.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[RTC_GEOMETRY_TYPE_INSTANCE], [rtcSetGeometryTransform],
[rtcGetGeometryTransformFromScene]
+21 -43
View File
@@ -1,34 +1,16 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryTransformEx" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryTransformEx - returns the interpolated instance
.EX
rtcGetGeometryTransformEx \- returns the interpolated instance
transformation for an instance of an instance array geometry for the
specified time.
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcGetGeometryTransformEx(
@@ -38,34 +20,30 @@ void rtcGetGeometryTransformEx(
enum RTCFormat format,
void* xfm
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryTransformEx\f[R] function returns the
interpolated local to world transformation (\f[V]xfm\f[R] parameter) of
the \f[V]instPrimID\f[R]-th instance of an instance array geometry
(\f[V]geometry\f[R] parameter) for a particular time (\f[V]time\f[R]
parameter in range [0,1]) in the specified format (\f[V]format\f[R]
The \f[CR]rtcGetGeometryTransformEx\f[R] function returns the
interpolated local to world transformation (\f[CR]xfm\f[R] parameter) of
the \f[CR]instPrimID\f[R]\-th instance of an instance array geometry
(\f[CR]geometry\f[R] parameter) for a particular time (\f[CR]time\f[R]
parameter in range [0, 1]) in the specified format (\f[CR]format\f[R]
parameter).
The function can also be used when \f[V]geometry\f[R] refers to a
regular instance, but then the \f[V]instPrimID\f[R] has to be 0.
The function can also be used when \f[CR]geometry\f[R] refers to a
regular instance, but then the \f[CR]instPrimID\f[R] has to be 0.
.PP
Possible formats for the returned matrix are:
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R]: The 3×4 float matrix is laid
out in row-major form.
\f[CR]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R]: The 3×4 float matrix is laid
out in row\-major form.
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is laid
out in column-major form.
\f[CR]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is
laid out in column\-major form.
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is laid
out in column-major form as a 4×4 homogeneous matrix with last row equal
to (0, 0, 0, 1).
\f[CR]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is
laid out in column\-major form as a 4×4 homogeneous matrix with last row
equal to (0, 0, 0, 1).
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[RTC_GEOMETRY_TYPE_INSTANCE_ARRAY]
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryTransformFromScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryTransformFromScene - returns the interpolated instance
.EX
rtcGetGeometryTransformFromScene \- returns the interpolated instance
transformation for the specified time
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcGetGeometryTransformFromScene(
@@ -37,37 +19,33 @@ void rtcGetGeometryTransformFromScene(
enum RTCFormat format,
void* xfm
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryTransformFromScene\f[R] function returns the
interpolated local to world transformation (\f[V]xfm\f[R] output
The \f[CR]rtcGetGeometryTransformFromScene\f[R] function returns the
interpolated local to world transformation (\f[CR]xfm\f[R] output
parameter) of an instance geometry specified by its geometry ID
(\f[V]geomID\f[R] parameter) of a scene (\f[V]scene\f[R] parameter) for
a particular time (\f[V]time\f[R] parameter in range [0,1]) in the
specified format (\f[V]format\f[R] parameter).
(\f[CR]geomID\f[R] parameter) of a scene (\f[CR]scene\f[R] parameter)
for a particular time (\f[CR]time\f[R] parameter in range [0, 1]) in the
specified format (\f[CR]format\f[R] parameter).
.PP
Possible formats for the returned matrix are:
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R]: The 3×4 float matrix is laid
out in row-major form.
\f[CR]RTC_FORMAT_FLOAT3X4_ROW_MAJOR\f[R]: The 3×4 float matrix is laid
out in row\-major form.
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is laid
out in column-major form.
\f[CR]RTC_FORMAT_FLOAT3X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is
laid out in column\-major form.
.IP \[bu] 2
\f[V]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is laid
out in column-major form as a 4×4 homogeneous matrix with last row equal
to (0, 0, 0, 1).
\f[CR]RTC_FORMAT_FLOAT4X4_COLUMN_MAJOR\f[R]: The 3×4 float matrix is
laid out in column\-major form as a 4×4 homogeneous matrix with last row
equal to (0, 0, 0, 1).
.PP
In contrast to the \f[V]rtcGetGeometryTransform\f[R] function, the
\f[V]rtcGetGeometryTransformFromScene\f[R] function can get used during
In contrast to the \f[CR]rtcGetGeometryTransform\f[R] function, the
\f[CR]rtcGetGeometryTransformFromScene\f[R] function can get used during
rendering inside a SYCL kernel.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[RTC_GEOMETRY_TYPE_INSTANCE], [rtcSetGeometryTransform],
[rtcGetGeometryTransform]
+12 -34
View File
@@ -1,53 +1,31 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryUserData" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryUserData - returns the user data pointer
.EX
rtcGetGeometryUserData \- returns the user data pointer
of the geometry
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void* rtcGetGeometryUserData(RTCGeometry geometry);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetGeometryUserData\f[R] function queries the user data
pointer previously set with \f[V]rtcSetGeometryUserData\f[R].
When \f[V]rtcSetGeometryUserData\f[R] was not called yet, \f[V]NULL\f[R]
is returned.
The \f[CR]rtcGetGeometryUserData\f[R] function queries the user data
pointer previously set with \f[CR]rtcSetGeometryUserData\f[R].
When \f[CR]rtcSetGeometryUserData\f[R] was not called yet,
\f[CR]NULL\f[R] is returned.
.PP
This function is supposed to be used during rendering, but only
supported on the CPU and not inside SYCL kernels on the GPU.
Inside a SYCL kernel the \f[V]rtcGetGeometryUserDataFromScene\f[R]
Inside a SYCL kernel the \f[CR]rtcGetGeometryUserDataFromScene\f[R]
function has to get used.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetGeometryUserData], [rtcGetGeometryUserDataFromScene]
@@ -1,54 +1,32 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetGeometryUserDataFromScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetGeometryUserDataFromScene - returns the user data pointer
.EX
rtcGetGeometryUserDataFromScene \- returns the user data pointer
of the geometry through the scene object
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void* rtcGetGeometryUserDataFromScene(RTCScene scene, unsigned int geomID);
\f[R]
.fi
.EE
.SS DESCRIPTION
The \f[CR]rtcGetGeometryUserDataFromScene\f[R] function queries the user
data pointer previously set with \f[CR]rtcSetGeometryUserData\f[R] from
the geometry with index \f[CR]geomID\f[R] from the specified scene
\f[CR]scene\f[R].
When \f[CR]rtcSetGeometryUserData\f[R] was not called yet,
\f[CR]NULL\f[R] is returned.
.PP
The \f[V]rtcGetGeometryUserDataFromScene\f[R] function queries the user
data pointer previously set with \f[V]rtcSetGeometryUserData\f[R] from
the geometry with index \f[V]geomID\f[R] from the specified scene
\f[V]scene\f[R].
When \f[V]rtcSetGeometryUserData\f[R] was not called yet, \f[V]NULL\f[R]
is returned.
.PP
In contrast to the \f[V]rtcGetGeometryUserData\f[R] function, the
\f[V]rtcGetGeometryUserDataFromScene\f[R] function an get used during
In contrast to the \f[CR]rtcGetGeometryUserData\f[R] function, the
\f[CR]rtcGetGeometryUserDataFromScene\f[R] function an get used during
rendering inside a SYCL kernel.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetGeometryUserData], [rtcGetGeometryUserData]
@@ -1,73 +1,48 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetSYCLDeviceFunctionPointer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetSYCLDeviceFunctionPointer - obtains a device side
.EX
rtcGetSYCLDeviceFunctionPointer \- obtains a device side
function pointer for some SYCL function
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
template<auto F>
inline decltype(F) rtcGetSYCLDeviceFunctionPointer(sycl::queue& queue);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function returns a device side function pointer for some function
F.
This function F must be defined using the
\f[V]RTC_SYCL_INDIRECTLY_CALLABLE\f[R] attribute, e.g.:
F. This function F must be defined using the
\f[CR]RTC_SYCL_INDIRECTLY_CALLABLE\f[R] attribute, e.g.:
.IP
.nf
\f[C]
.EX
RTC_SYCL_INDIRECTLY_CALLABLE void filter(
const RTCFilterFunctionNArguments* args) { ... }
RTCFilterFunctionN fptr = rtcGetSYCLDeviceFunctionPointer<filter>(queue);
\f[R]
.fi
.EE
.PP
Such a device side function pointers of some filter callbacks can get
assigned to a geometry using the
\f[V]rtcSetGeometryIntersectFilterFunction\f[R] and
\f[V]rtcSetGeometryOccludedFilterFunction\f[R] API functions.
\f[CR]rtcSetGeometryIntersectFilterFunction\f[R] and
\f[CR]rtcSetGeometryOccludedFilterFunction\f[R] API functions.
.PP
Further, device side function pointers for user geometry callbacks can
be assigned to geometries using the
\f[V]rtcSetGeometryIntersectFunction\f[R] and
\f[V]rtcSetGeometryOccludedFunction\f[R] API calls.
\f[CR]rtcSetGeometryIntersectFunction\f[R] and
\f[CR]rtcSetGeometryOccludedFunction\f[R] API calls.
.PP
These geometry versions of the callback functions are disabled in SYCL
by default, and we recommend not using them for performance reasons.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetGeometryIntersectFunction], [rtcSetGeometryOccludedFunction],
[rtcSetGeometryIntersectFilterFunction],
[rtcSetGeometryOccludedFilterFunction]
+11 -33
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetSceneBounds" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetSceneBounds - returns the axis-aligned bounding box of the scene
\f[R]
.fi
.EX
rtcGetSceneBounds \- returns the axis\-aligned bounding box of the scene
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCORE_ALIGN(16) RTCBounds
@@ -39,24 +21,20 @@ void rtcGetSceneBounds(
RTCScene scene,
struct RTCBounds* bounds_o
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetSceneBounds\f[R] function queries the axis-aligned
bounding box of the specified scene (\f[V]scene\f[R] argument) and
The \f[CR]rtcGetSceneBounds\f[R] function queries the axis\-aligned
bounding box of the specified scene (\f[CR]scene\f[R] argument) and
stores that bounding box to the provided destination pointer
(\f[V]bounds_o\f[R] argument).
(\f[CR]bounds_o\f[R] argument).
The stored bounding box consists of lower and upper bounds for the x, y,
and z dimensions as specified by the \f[V]RTCBounds\f[R] structure.
and z dimensions as specified by the \f[CR]RTCBounds\f[R] structure.
.PP
The provided destination pointer must be aligned to 16 bytes.
The function may be invoked only after committing the scene; otherwise
the result is undefined.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetSceneLinearBounds], [rtcCommitScene], [rtcJoinCommitScene]
+8 -30
View File
@@ -1,47 +1,25 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetSceneDevice" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetSceneDevice - returns the device the scene got created in
\f[R]
.fi
.EX
rtcGetSceneDevice \- returns the device the scene got created in
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCDevice rtcGetSceneDevice(RTCScene scene);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function returns the device object the scene got created in.
The returned handle own one additional reference to the device object,
thus you should need to call \f[V]rtcReleaseDevice\f[R] when the
thus you should need to call \f[CR]rtcReleaseDevice\f[R] when the
returned handle is no longer required.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcReleaseDevice]
+10 -34
View File
@@ -1,53 +1,29 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetSceneFlags" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetSceneFlags - returns the flags of the scene
\f[R]
.fi
.EX
rtcGetSceneFlags \- returns the flags of the scene
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
enum RTCSceneFlags rtcGetSceneFlags(RTCScene scene);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Queries the flags of a scene.
This function can be useful when setting individual flags, e.g.\ to just
set the robust mode without changing other flags the following way:
.IP
.nf
\f[C]
.EX
RTCSceneFlags flags = rtcGetSceneFlags(scene);
rtcSetSceneFlags(scene, RTC_SCENE_FLAG_ROBUST | flags);
\f[R]
.fi
.EE
.SS EXIT STATUS
.PP
On failure \f[V]RTC_SCENE_FLAG_NONE\f[R] is returned and an error code
is set that can be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]RTC_SCENE_FLAG_NONE\f[R] is returned and an error code
is set that can be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetSceneFlags]
+13 -35
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcGetSceneLinearBounds" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcGetSceneLinearBounds - returns the linear bounds of the scene
\f[R]
.fi
.EX
rtcGetSceneLinearBounds \- returns the linear bounds of the scene
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCORE_ALIGN(16) RTCLinearBounds
@@ -39,26 +21,22 @@ void rtcGetSceneLinearBounds(
RTCScene scene,
struct RTCLinearBounds* bounds_o
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcGetSceneLinearBounds\f[R] function queries the linear bounds
of the specified scene (\f[V]scene\f[R] argument) and stores them to the
provided destination pointer (\f[V]bounds_o\f[R] argument).
The \f[CR]rtcGetSceneLinearBounds\f[R] function queries the linear
bounds of the specified scene (\f[CR]scene\f[R] argument) and stores
them to the provided destination pointer (\f[CR]bounds_o\f[R] argument).
The stored linear bounds consist of bounding boxes for time 0
(\f[V]bounds0\f[R] member) and time 1 (\f[V]bounds1\f[R] member) as
specified by the \f[V]RTCLinearBounds\f[R] structure.
Linearly interpolating these bounds to a specific time \f[V]t\f[R]
(\f[CR]bounds0\f[R] member) and time 1 (\f[CR]bounds1\f[R] member) as
specified by the \f[CR]RTCLinearBounds\f[R] structure.
Linearly interpolating these bounds to a specific time \f[CR]t\f[R]
yields bounds for the geometry at that time.
.PP
The provided destination pointer must be aligned to 16 bytes.
The function may be called only after committing the scene, otherwise
the result is undefined.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetSceneBounds], [rtcCommitScene], [rtcJoinCommitScene]
+27 -49
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInitIntersectArguments" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInitIntersectArguments - initializes the intersect arguments struct
\f[R]
.fi
.EX
rtcInitIntersectArguments \- initializes the intersect arguments struct
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
enum RTCRayQueryFlags
@@ -52,74 +34,70 @@ struct RTCIntersectArguments
void rtcInitIntersectArguments(
struct RTCIntersectArguments* args
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInitIntersectArguments\f[R] function initializes the
The \f[CR]rtcInitIntersectArguments\f[R] function initializes the
optional argument struct that can get passed to the
\f[V]rtcIntersect1/4/8/16\f[R] functions to default values.
\f[CR]rtcIntersect1/4/8/16\f[R] functions to default values.
The arguments struct needs to get used for more advanced Embree features
as described here.
.PP
The \f[V]flags\f[R] member can get used to enable special traversal
The \f[CR]flags\f[R] member can get used to enable special traversal
mode.
Using the \f[V]RTC_RAY_QUERY_FLAG_INCOHERENT\f[R] flag uses an optimized
traversal algorithm for incoherent rays (default), while
\f[V]RTC_RAY_QUERY_FLAG_COHERENT\f[R] uses an optimized traversal
Using the \f[CR]RTC_RAY_QUERY_FLAG_INCOHERENT\f[R] flag uses an
optimized traversal algorithm for incoherent rays (default), while
\f[CR]RTC_RAY_QUERY_FLAG_COHERENT\f[R] uses an optimized traversal
algorithm for coherent rays (e.g.\ primary camera rays).
.PP
The \f[V]feature_mask\f[R] member should get used in SYCL to just enable
ray tracing features required to render a given scene.
The \f[CR]feature_mask\f[R] member should get used in SYCL to just
enable ray tracing features required to render a given scene.
Please see section [RTCFeatureFlags] for a more detailed description.
.PP
The \f[V]context\f[R] member can get used to pass an optional
The \f[CR]context\f[R] member can get used to pass an optional
intersection context.
It is guaranteed that the pointer to the context passed to a ray query
is directly passed to all callback functions.
This way it is possible to attach arbitrary data to the end of the
context, such as a per-ray payload.
context, such as a per\-ray payload.
Please note that the ray pointer is not guaranteed to be passed to the
callback functions, thus reading additional data from the ray pointer
passed to callbacks is not possible.
See section [rtcInitRayQueryContext] for more details.
.PP
The \f[V]filter\f[R] member specifies a filter function to invoke for
The \f[CR]filter\f[R] member specifies a filter function to invoke for
each encountered hit.
The support for the argument filter function must be enabled for a scene
by using the \f[V]RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS\f[R] scene
flag.
by using the \f[CR]RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS\f[R]
scene flag.
In case of instancing this feature has to get enabled also for each
instantiated scene.
.PP
The argument filter function is invoked for each geometry for which it
got explicitely enabled using the
\f[V]rtcSetGeometryEnableFilterFunctionFromArguments\f[R] function.
\f[CR]rtcSetGeometryEnableFilterFunctionFromArguments\f[R] function.
The invokation of the argument filter function can also get enfored for
each geometry using the
\f[V]RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER\f[R] ray query flag.
\f[CR]RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER\f[R] ray query flag.
This argument filter function is invoked as a second filter stage after
the per-geometry filter function is invoked.
the per\-geometry filter function is invoked.
Only rays that passed the first filter stage are valid in this second
filter stage.
Having such a per ray-query filter function can be useful to implement
Having such a per ray\-query filter function can be useful to implement
modifications of the behavior of the query, such as collecting all hits
or accumulating transparencies.
.PP
The \f[V]intersect\f[R] member specifies the user geometry callback to
The \f[CR]intersect\f[R] member specifies the user geometry callback to
get invoked for each user geometry encountered during traversal.
The user geometry callback specified this way has preference over the
one specified inside the geometry.
.PP
The \f[V]minWidthDistanceFactor\f[R] value controls the target size of
the curve radii when the min-width feature is enabled.
The \f[CR]minWidthDistanceFactor\f[R] value controls the target size of
the curve radii when the min\-width feature is enabled.
Please see the [rtcSetGeometryMaxRadiusScale] function for more details
on the min-width feature.
on the min\-width feature.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcIntersect1], [rtcIntersect4/8/16], [RTCFeatureFlags],
[rtcInitRayQueryContext], [RTC_GEOMETRY_TYPE_USER],
[rtcSetGeometryMaxRadiusScale]
+28 -50
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInitOccludedArguments" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInitOccludedArguments - initializes the occluded arguments struct
\f[R]
.fi
.EX
rtcInitOccludedArguments \- initializes the occluded arguments struct
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
enum RTCRayQueryFlags
@@ -52,74 +34,70 @@ struct RTCOccludedArguments
void rtcInitOccludedArguments(
struct RTCOccludedArguments* args
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInitOccludedArguments\f[R] function initializes the optional
argument struct that can get passed to the \f[V]rtcOccluded1/4/8/16\f[R]
functions to default values.
The \f[CR]rtcInitOccludedArguments\f[R] function initializes the
optional argument struct that can get passed to the
\f[CR]rtcOccluded1/4/8/16\f[R] functions to default values.
The arguments struct needs to get used for more advanced Embree features
as described here.
.PP
The \f[V]flags\f[R] member can get used to enable special traversal
The \f[CR]flags\f[R] member can get used to enable special traversal
mode.
Using the \f[V]RTC_RAY_QUERY_FLAG_INCOHERENT\f[R] flag uses an optimized
traversal algorithm for incoherent rays (default), while
\f[V]RTC_RAY_QUERY_FLAG_COHERENT\f[R] uses an optimized traversal
Using the \f[CR]RTC_RAY_QUERY_FLAG_INCOHERENT\f[R] flag uses an
optimized traversal algorithm for incoherent rays (default), while
\f[CR]RTC_RAY_QUERY_FLAG_COHERENT\f[R] uses an optimized traversal
algorithm for coherent rays (e.g.\ primary camera rays).
.PP
The \f[V]feature_mask\f[R] member should get used in SYCL to just enable
ray tracing features required to render a given scene.
The \f[CR]feature_mask\f[R] member should get used in SYCL to just
enable ray tracing features required to render a given scene.
Please see section [RTCFeatureFlags] for a more detailed description.
.PP
The \f[V]context\f[R] member can get used to pass an optional
The \f[CR]context\f[R] member can get used to pass an optional
intersection context.
It is guaranteed that the pointer to the context passed to a ray query
is directly passed to all callback functions.
This way it is possible to attach arbitrary data to the end of the
context, such as a per-ray payload.
context, such as a per\-ray payload.
Please note that the ray pointer is not guaranteed to be passed to the
callback functions, thus reading additional data from the ray pointer
passed to callbacks is not possible.
See section [rtcInitRayQueryContext] for more details.
.PP
The \f[V]filter\f[R] member specifies a filter function to invoked for
The \f[CR]filter\f[R] member specifies a filter function to invoked for
each encountered hit.
The support for the argument filter function must be enabled for a scene
by using the \f[V]RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS\f[R] scene
flag.
by using the \f[CR]RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS\f[R]
scene flag.
In case of instancing this feature has to get enabled also for each
instantiated scene.
.PP
The argument filter function is invoked for each geometry for which it
got explicitely enabled using the
\f[V]rtcSetGeometryEnableFilterFunctionFromArguments\f[R] function.
\f[CR]rtcSetGeometryEnableFilterFunctionFromArguments\f[R] function.
The invokation of the argument filter function can also get enfored for
each geometry using the
\f[V]RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER\f[R] ray query flag.
\f[CR]RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER\f[R] ray query flag.
This argument filter function is invoked as a second filter stage after
the per-geometry filter function is invoked.
the per\-geometry filter function is invoked.
Only rays that passed the first filter stage are valid in this second
filter stage.
Having such a per ray-query filter function can be useful to implement
Having such a per ray\-query filter function can be useful to implement
modifications of the behavior of the query, such as collecting all hits
or accumulating transparencies.
.PP
The \f[V]intersect\f[R] member specifies the user geometry callback to
The \f[CR]intersect\f[R] member specifies the user geometry callback to
get invoked for each user geometry encountered during traversal.
The user geometry callback specified this way has preference over the
one specified inside the geometry.
.PP
The \f[V]minWidthDistanceFactor\f[R] value controls the target size of
the curve radii when the min-width feature is enabled.
The \f[CR]minWidthDistanceFactor\f[R] value controls the target size of
the curve radii when the min\-width feature is enabled.
Please see the [rtcSetGeometryMaxRadiusScale] function for more details
on the min-width feature.
on the min\-width feature.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcOccluded1], [rtcOccluded4/8/16], [RTCFeatureFlags],
[rtcInitRayQueryContext], [RTC_GEOMETRY_TYPE_USER],
[rtcSetGeometryMaxRadiusScale]
+9 -31
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInitPointQueryContext" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInitPointQueryContext - initializes the context information (e.g.
stack of (multilevel-)instance transformations) for point queries
\f[R]
.fi
.EX
rtcInitPointQueryContext \- initializes the context information (e.g.
stack of (multilevel\-)instance transformations) for point queries
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTC_ALIGN(16) RTCPointQueryContext
@@ -48,17 +30,15 @@ struct RTC_ALIGN(16) RTCPointQueryContext
void rtcInitPointQueryContext(
struct RTCPointQueryContext* context
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
A stack (\f[V]RTCPointQueryContext\f[R] type) which stores the IDs and
A stack (\f[CR]RTCPointQueryContext\f[R] type) which stores the IDs and
instance transformations during a BVH traversal for a point query.
The transformations are assumed to be affine transformations (3×3 matrix
plus translation) and therefore the last column is ignored (see
[RTC_GEOMETRY_TYPE_INSTANCE] for details).
.PP
The \f[V]rtcInitPointContext\f[R] function initializes the context to
The \f[CR]rtcInitPointContext\f[R] function initializes the context to
default values and should be called for initialization.
.PP
The context will be passed as an argument to the point query callback
@@ -71,8 +51,6 @@ The context is an necessary argument to [rtcPointQuery] and Embree
internally uses the topmost instance transformation of the stack to
transform the point query into instance space.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcPointQuery], [rtcSetGeometryPointQueryFunction]
@@ -1,45 +1,23 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInitQuaternionDecomposition" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInitQuaternionDecomposition - initializes quaternion decomposition
\f[R]
.fi
.EX
rtcInitQuaternionDecomposition \- initializes quaternion decomposition
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
void rtcInitQuaternionDecomposition(
struct RTCQuaternionDecomposition* qd
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInitQuaternionDecomposition\f[R] function initializes a
\f[V]RTCQuaternionDecomposition\f[R] structure to represent an identity
The \f[CR]rtcInitQuaternionDecomposition\f[R] function initializes a
\f[CR]RTCQuaternionDecomposition\f[R] structure to represent an identity
transformation.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcSetGeometryTransformQuaternion], [RTCQuaternionDecomposition]
+11 -33
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInitRayQueryContext" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInitRayQueryContext - initializes the ray query context
\f[R]
.fi
.EX
rtcInitRayQueryContext \- initializes the ray query context
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCRayQueryContext
@@ -41,30 +23,26 @@ struct RTCRayQueryContext
void rtcInitRayQueryContext(
struct RTCRayQueryContext* context
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInitRayQueryContext\f[R] function initializes the
The \f[CR]rtcInitRayQueryContext\f[R] function initializes the
intersection context to default values and should be called to
initialize every ray query context.
.PP
It is guaranteed that the pointer to the ray query context
(\f[V]RTCRayQueryContext\f[R] type) is passed to the registered callback
functions.
(\f[CR]RTCRayQueryContext\f[R] type) is passed to the registered
callback functions.
This way it is possible to attach arbitrary data to the end of the ray
query context, such as a per-ray payload.
query context, such as a per\-ray payload.
.PP
Inside the user geometry callback the ray query context can get used to
access the \f[V]instID\f[R] stack to know which instance the user
access the \f[CR]instID\f[R] stack to know which instance the user
geometry object resides.
.PP
If not ray query context is specified when tracing a ray, a default
context is used.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcIntersect1], [rtcIntersect4/8/16], [rtcOccluded1],
[rtcOccluded4/8/16]
+31 -53
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInterpolate" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInterpolate - interpolates vertex attributes
\f[R]
.fi
.EX
rtcInterpolate \- interpolates vertex attributes
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCInterpolateArguments
@@ -49,11 +31,9 @@ struct RTCInterpolateArguments
void rtcInterpolate(
const struct RTCInterpolateArguments* args
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInterpolate\f[R] function smoothly interpolates per-vertex
The \f[CR]rtcInterpolate\f[R] function smoothly interpolates per\-vertex
data over the geometry.
This interpolation is supported for triangle meshes, quad meshes, curve
geometries, and subdivision geometries.
@@ -62,49 +42,47 @@ possible to get the first and second order derivatives of that value.
This interpolation ignores displacements of subdivision surfaces and
always interpolates the underlying base surface.
.PP
The \f[V]rtcInterpolate\f[R] call gets passed a number of arguments
inside a structure of type \f[V]RTCInterpolateArguments\f[R].
For some geometry (\f[V]geometry\f[R] parameter) this function smoothly
interpolates the per-vertex data stored inside the specified geometry
buffer (\f[V]bufferType\f[R] and \f[V]bufferSlot\f[R] parameters) to the
u/v location (\f[V]u\f[R] and \f[V]v\f[R] parameters) of the primitive
(\f[V]primID\f[R] parameter).
The \f[CR]rtcInterpolate\f[R] call gets passed a number of arguments
inside a structure of type \f[CR]RTCInterpolateArguments\f[R].
For some geometry (\f[CR]geometry\f[R] parameter) this function smoothly
interpolates the per\-vertex data stored inside the specified geometry
buffer (\f[CR]bufferType\f[R] and \f[CR]bufferSlot\f[R] parameters) to
the u/v location (\f[CR]u\f[R] and \f[CR]v\f[R] parameters) of the
primitive (\f[CR]primID\f[R] parameter).
The number of floating point values to interpolate and store to the
destination arrays can be specified using the \f[V]valueCount\f[R]
destination arrays can be specified using the \f[CR]valueCount\f[R]
parameter.
As interpolation buffer, one can specify vertex buffers
(\f[V]RTC_BUFFER_TYPE_VERTEX\f[R]) and vertex attribute buffers
(\f[V]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R]) as well.
(\f[CR]RTC_BUFFER_TYPE_VERTEX\f[R]) and vertex attribute buffers
(\f[CR]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R]) as well.
.PP
The \f[V]rtcInterpolate\f[R] call stores \f[V]valueCount\f[R] number of
interpolated floating point values to the memory location pointed to by
\f[V]P\f[R].
One can avoid storing the interpolated value by setting \f[V]P\f[R] to
\f[V]NULL\f[R].
The \f[CR]rtcInterpolate\f[R] call stores \f[CR]valueCount\f[R] number
of interpolated floating point values to the memory location pointed to
by \f[CR]P\f[R].
One can avoid storing the interpolated value by setting \f[CR]P\f[R] to
\f[CR]NULL\f[R].
.PP
The first order derivative of the interpolation by u and v are stored at
the \f[V]dPdu\f[R] and \f[V]dPdv\f[R] memory locations.
the \f[CR]dPdu\f[R] and \f[CR]dPdv\f[R] memory locations.
One can avoid storing first order derivatives by setting both
\f[V]dPdu\f[R] and \f[V]dPdv\f[R] to \f[V]NULL\f[R].
\f[CR]dPdu\f[R] and \f[CR]dPdv\f[R] to \f[CR]NULL\f[R].
.PP
The second order derivatives are stored at the \f[V]ddPdudu\f[R],
\f[V]ddPdvdv\f[R], and \f[V]ddPdudv\f[R] memory locations.
The second order derivatives are stored at the \f[CR]ddPdudu\f[R],
\f[CR]ddPdvdv\f[R], and \f[CR]ddPdudv\f[R] memory locations.
One can avoid storing second order derivatives by setting these three
pointers to \f[V]NULL\f[R].
pointers to \f[CR]NULL\f[R].
.PP
To use \f[V]rtcInterpolate\f[R] for a geometry, all changes to that
geometry must be properly committed using \f[V]rtcCommitGeometry\f[R].
To use \f[CR]rtcInterpolate\f[R] for a geometry, all changes to that
geometry must be properly committed using \f[CR]rtcCommitGeometry\f[R].
.PP
All input buffers and output arrays must be padded to 16 bytes, as the
implementation uses 16-byte SSE instructions to read and write into
implementation uses 16\-byte SSE instructions to read and write into
these buffers.
.PP
See tutorial [Interpolation] for an example of using the
\f[V]rtcInterpolate\f[R] function.
\f[CR]rtcInterpolate\f[R] function.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcInterpolateN]
+16 -37
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInterpolateN" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInterpolateN - performs N interpolations of vertex attribute data
\f[R]
.fi
.EX
rtcInterpolateN \- performs N interpolations of vertex attribute data
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCInterpolateNArguments
@@ -51,27 +33,24 @@ struct RTCInterpolateNArguments
void rtcInterpolateN(
const struct RTCInterpolateNArguments* args
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInterpolateN\f[R] is similar to \f[V]rtcInterpolate\f[R],
but performs \f[V]N\f[R] many interpolations at once.
The \f[CR]rtcInterpolateN\f[R] is similar to \f[CR]rtcInterpolate\f[R],
but performs \f[CR]N\f[R] many interpolations at once.
It additionally gets an array of u/v coordinates and a valid mask
(\f[V]valid\f[R] parameter) that specifies which of these coordinates
(\f[CR]valid\f[R] parameter) that specifies which of these coordinates
are valid.
The valid mask points to \f[V]N\f[R] integers, and a value of -1 denotes
valid and 0 invalid.
If the valid pointer is \f[V]NULL\f[R] all elements are considers valid.
The valid mask points to \f[CR]N\f[R] integers, and a value of \-1
denotes valid and 0 invalid.
If the valid pointer is \f[CR]NULL\f[R] all elements are considers
valid.
The destination arrays are filled in structure of array (SOA) layout.
The value \f[V]N\f[R] must be divisible by 4.
The value \f[CR]N\f[R] must be divisible by 4.
.PP
To use \f[V]rtcInterpolateN\f[R] for a geometry, all changes to that
geometry must be properly committed using \f[V]rtcCommitGeometry\f[R].
To use \f[CR]rtcInterpolateN\f[R] for a geometry, all changes to that
geometry must be properly committed using \f[CR]rtcCommitGeometry\f[R].
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcInterpolate]
+37 -60
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcIntersect1" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcIntersect1 - finds the closest hit for a single ray
\f[R]
.fi
.EX
rtcIntersect1 \- finds the closest hit for a single ray
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcIntersect1(
@@ -34,72 +16,67 @@ void rtcIntersect1(
struct RTCRayHit* rayhit
struct RTCIntersectArguments* args = NULL
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcIntersect1\f[R] function finds the closest hit of a single
ray (\f[V]rayhit\f[R] argument) with the scene (\f[V]scene\f[R]
The \f[CR]rtcIntersect1\f[R] function finds the closest hit of a single
ray (\f[CR]rayhit\f[R] argument) with the scene (\f[CR]scene\f[R]
argument).
The provided ray/hit structure contains the ray to intersect and some
hit output fields that are filled when a hit is found.
The passed optional arguments struct (\f[V]args\f[R] argument) can get
The passed optional arguments struct (\f[CR]args\f[R] argument) can get
used for advanced use cases, see section [rtcInitIntersectArguments] for
more details.
.PP
To trace a ray, the user has to initialize the ray origin (\f[V]org\f[R]
ray member), ray direction (\f[V]dir\f[R] ray member), ray segment
(\f[V]tnear\f[R], \f[V]tfar\f[R] ray members), ray mask (\f[V]mask\f[R]
ray member), and set the ray flags to \f[V]0\f[R] (\f[V]flags\f[R] ray
member).
The ray time (\f[V]time\f[R] ray member) must be initialized to a value
To trace a ray, the user has to initialize the ray origin
(\f[CR]org\f[R] ray member), ray direction (\f[CR]dir\f[R] ray member),
ray segment (\f[CR]tnear\f[R], \f[CR]tfar\f[R] ray members), ray mask
(\f[CR]mask\f[R] ray member), and set the ray flags to \f[CR]0\f[R]
(\f[CR]flags\f[R] ray member).
The ray time (\f[CR]time\f[R] ray member) must be initialized to a value
in the range $[0, 1].
The ray segment has to be in the range [0,∞], thus ranges that start
The ray segment has to be in the range [0, ∞], thus ranges that start
behind the ray origin are not valid, but ranges can reach to infinity.
See Section [RTCRay] for the ray layout description.
.PP
The geometry ID (\f[V]geomID\f[R] hit member) of the hit data must be
initialized to \f[V]RTC_INVALID_GEOMETRY_ID\f[R] (-1).
The geometry ID (\f[CR]geomID\f[R] hit member) of the hit data must be
initialized to \f[CR]RTC_INVALID_GEOMETRY_ID\f[R] (\-1).
.PP
When no intersection is found, the ray/hit data is not updated.
When an intersection is found, the hit distance is written into the
\f[V]tfar\f[R] member of the ray and all hit data is set, such as
unnormalized geometry normal in object space (\f[V]Ng\f[R] hit member),
local hit coordinates (\f[V]u\f[R], \f[V]v\f[R] hit member), instance ID
stack (\f[V]instID\f[R] hit member), geometry ID (\f[V]geomID\f[R] hit
member), and primitive ID (\f[V]primID\f[R] hit member).
\f[CR]tfar\f[R] member of the ray and all hit data is set, such as
unnormalized geometry normal in object space (\f[CR]Ng\f[R] hit member),
local hit coordinates (\f[CR]u\f[R], \f[CR]v\f[R] hit member), instance
ID stack (\f[CR]instID\f[R] hit member), geometry ID (\f[CR]geomID\f[R]
hit member), and primitive ID (\f[CR]primID\f[R] hit member).
See Section [RTCHit] for the hit layout description.
.PP
If the instance ID stack has a prefix of values not equal to
\f[V]RTC_INVALID_GEOMETRY_ID\f[R], the instance ID on each level
corresponds to the geometry ID of the hit instance of the higher-level
\f[CR]RTC_INVALID_GEOMETRY_ID\f[R], the instance ID on each level
corresponds to the geometry ID of the hit instance of the higher\-level
scene, the geometry ID corresponds to the hit geometry inside the hit
instanced scene, and the primitive ID corresponds to the n-th primitive
instanced scene, and the primitive ID corresponds to the n\-th primitive
of that geometry.
.PP
If level 0 of the instance ID stack is equal to
\f[V]RTC_INVALID_GEOMETRY_ID\f[R], the geometry ID corresponds to the
hit geometry inside the top-level scene, and the primitive ID
corresponds to the n-th primitive of that geometry.
\f[CR]RTC_INVALID_GEOMETRY_ID\f[R], the geometry ID corresponds to the
hit geometry inside the top\-level scene, and the primitive ID
corresponds to the n\-th primitive of that geometry.
.PP
The implementation makes no guarantees that primitives whose hit
distance is exactly at (or very close to) \f[V]tnear\f[R] or
\f[V]tfar\f[R] are hit or missed.
If you want to exclude intersections at \f[V]tnear\f[R] just pass a
slightly enlarged \f[V]tnear\f[R], and if you want to include
intersections at \f[V]tfar\f[R] pass a slightly enlarged \f[V]tfar\f[R].
distance is exactly at (or very close to) \f[CR]tnear\f[R] or
\f[CR]tfar\f[R] are hit or missed.
If you want to exclude intersections at \f[CR]tnear\f[R] just pass a
slightly enlarged \f[CR]tnear\f[R], and if you want to include
intersections at \f[CR]tfar\f[R] pass a slightly enlarged
\f[CR]tfar\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
The ray/hit structure must be aligned to 16 bytes.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcOccluded1], [rtcIntersect4/8/16], [RTCRayHit],
[rtcInitIntersectArguments]
+23 -47
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcIntersect4/8/16" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcIntersect4/8/16 - finds the closest hits for a ray packet
\f[R]
.fi
.EX
rtcIntersect4/8/16 \- finds the closest hits for a ray packet
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcIntersect4(
@@ -49,49 +31,43 @@ void rtcIntersect16(
struct RTCRayHit16* rayhit,
struct RTCIntersectArguments* args = NULL
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcIntersect4/8/16\f[R] functions finds the closest hits for a
ray packet of size 4, 8, or 16 (\f[V]rayhit\f[R] argument) with the
scene (\f[V]scene\f[R] argument).
The \f[CR]rtcIntersect4/8/16\f[R] functions finds the closest hits for a
ray packet of size 4, 8, or 16 (\f[CR]rayhit\f[R] argument) with the
scene (\f[CR]scene\f[R] argument).
The ray/hit input contains a ray packet and hit packet.
The passed optional arguments struct (\f[V]args\f[R] argument) are used
The passed optional arguments struct (\f[CR]args\f[R] argument) are used
to pass additional arguments for advanced features.
See Section [rtcIntersect1] for more details and a description of how to
set up and trace rays.
.PP
A ray valid mask must be provided (\f[V]valid\f[R] argument) which
stores one 32-bit integer (\f[V]-1\f[R] means valid and \f[V]0\f[R]
A ray valid mask must be provided (\f[CR]valid\f[R] argument) which
stores one 32\-bit integer (\f[CR]\-1\f[R] means valid and \f[CR]0\f[R]
invalid) per ray in the packet.
Only active rays are processed, and hit data of inactive rays is not
changed.
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
For \f[V]rtcIntersect4\f[R] the ray packet must be aligned to 16 bytes,
for \f[V]rtcIntersect8\f[R] the alignment must be 32 bytes, and for
\f[V]rtcIntersect16\f[R] the alignment must be 64 bytes.
For \f[CR]rtcIntersect4\f[R] the ray packet must be aligned to 16 bytes,
for \f[CR]rtcIntersect8\f[R] the alignment must be 32 bytes, and for
\f[CR]rtcIntersect16\f[R] the alignment must be 64 bytes.
.PP
The \f[V]rtcIntersect4\f[R], \f[V]rtcIntersect8\f[R] and
\f[V]rtcIntersect16\f[R] functions may change the ray packet size and
The \f[CR]rtcIntersect4\f[R], \f[CR]rtcIntersect8\f[R] and
\f[CR]rtcIntersect16\f[R] functions may change the ray packet size and
ray order when calling back into filter functions or user geometry
callbacks.
Under some conditions the application can assume packets to stay intakt,
which can determined by querying the
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[R],
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[R],
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[R] properties through
the \f[V]rtcGetDeviceProperty\f[R] function.
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[R],
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[R],
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[R] properties through
the \f[CR]rtcGetDeviceProperty\f[R] function.
See [rtcGetDeviceProperty] for more information.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcIntersect1], [rtcOccluded4/8/16], [rtcInitIntersectArguments]
@@ -1,57 +1,35 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInvokeIntersectFilterFromGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInvokeIntersectFilterFromGeometry - invokes the
.EX
rtcInvokeIntersectFilterFromGeometry \- invokes the
intersection filter function from the geometry
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcInvokeIntersectFilterFromGeometry(
const struct RTCIntersectFunctionNArguments* args,
const struct RTCFilterFunctionNArguments* filterArgs
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInvokeIntersectFilterFromGeometry\f[R] function can be
called inside an \f[V]RTCIntersectFunctionN\f[R] user geometry callback
The \f[CR]rtcInvokeIntersectFilterFromGeometry\f[R] function can be
called inside an \f[CR]RTCIntersectFunctionN\f[R] user geometry callback
function to invoke the intersection filter registered to the geometry.
For this an \f[V]RTCFilterFunctionNArguments\f[R] structure must be
created (see \f[V]rtcSetGeometryIntersectFilterFunction\f[R]) which
For this an \f[CR]RTCFilterFunctionNArguments\f[R] structure must be
created (see \f[CR]rtcSetGeometryIntersectFilterFunction\f[R]) which
basically consists of a valid mask, a hit packet to filter, the
corresponding ray packet, and the packet size.
After the invocation of \f[V]rtcInvokeIntersectFilterFromGeometry\f[R],
only rays that are still valid (valid mask set to -1) should update a
After the invocation of \f[CR]rtcInvokeIntersectFilterFromGeometry\f[R],
only rays that are still valid (valid mask set to \-1) should update a
hit.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcInvokeOccludedFilterFromGeometry], [rtcSetGeometryIntersectFunction]
@@ -1,57 +1,35 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcInvokeOccludedFilterFromGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInvokeOccludedFilterFromGeometry - invokes the occlusion
.EX
rtcInvokeOccludedFilterFromGeometry \- invokes the occlusion
filter function from the geometry
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcInvokeOccludedFilterFromGeometry(
const struct RTCOccludedFunctionNArguments* args,
const struct RTCFilterFunctionNArguments* filterArgs
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcInvokeOccludedFilterFromGeometry\f[R] function can be called
inside an \f[V]RTCOccludedFunctionN\f[R] user geometry callback function
to invoke the occlusion filter registered to the geometry.
For this an \f[V]RTCFilterFunctionNArguments\f[R] structure must be
created (see \f[V]rtcSetGeometryIntersectFilterFunction\f[R]) which
The \f[CR]rtcInvokeOccludedFilterFromGeometry\f[R] function can be
called inside an \f[CR]RTCOccludedFunctionN\f[R] user geometry callback
function to invoke the occlusion filter registered to the geometry.
For this an \f[CR]RTCFilterFunctionNArguments\f[R] structure must be
created (see \f[CR]rtcSetGeometryIntersectFilterFunction\f[R]) which
basically consists of a valid mask, a hit packet to filter, the
corresponding ray packet, and the packet size.
After the invocation of \f[V]rtcInvokeOccludedFilterFromGeometry\f[R]
only rays that are still valid (valid mask set to -1) should signal an
After the invocation of \f[CR]rtcInvokeOccludedFilterFromGeometry\f[R]
only rays that are still valid (valid mask set to \-1) should signal an
occlusion.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcInvokeIntersectFilterFromGeometry], [rtcSetGeometryOccludedFunction]
+8 -30
View File
@@ -1,47 +1,25 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcIsSYCLDeviceSupported" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcIsSYCLDeviceSupported - checks if some SYCL device is supported by Embree
\f[R]
.fi
.EX
rtcIsSYCLDeviceSupported \- checks if some SYCL device is supported by Embree
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
bool rtcIsSYCLDeviceSupported(const sycl::device sycl_device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function can be used to check if some SYCL device
(\f[V]sycl_device\f[R] argument) is supported by Embree.
(\f[CR]sycl_device\f[R] argument) is supported by Embree.
.SS EXIT STATUS
.PP
The function returns true if the SYCL device is supported by Embree and
false otherwise.
On failure an error code is set that can get queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSYCLDeviceSelector]
+39 -60
View File
@@ -1,70 +1,50 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcJoinCommitScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcJoinCommitScene - commits the scene from multiple threads
\f[R]
.fi
.EX
rtcJoinCommitScene \- commits the scene from multiple threads
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcJoinCommitScene(RTCScene scene);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcJoinCommitScene\f[R] function commits all changes for the
specified scene (\f[V]scene\f[R] argument).
The \f[CR]rtcJoinCommitScene\f[R] function commits all changes for the
specified scene (\f[CR]scene\f[R] argument).
The scene commit internally triggers building of a spatial acceleration
structure for the scene.
Ray queries can be performed after scene changes got properly committed.
.PP
The \f[V]rtcJoinCommitScene\f[R] function can get called from multiple
The \f[CR]rtcJoinCommitScene\f[R] function can get called from multiple
user threads which will all cooperate in the build operation.
All threads calling into this function will return from
\f[V]rtcJoinCommitScene\f[R] after the scene commit is finished.
All threads must consistently call \f[V]rtcJoinCommitScene\f[R] and not
\f[V]rtcCommitScene\f[R].
\f[CR]rtcJoinCommitScene\f[R] after the scene commit is finished.
All threads must consistently call \f[CR]rtcJoinCommitScene\f[R] and not
\f[CR]rtcCommitScene\f[R].
.PP
In contrast to the \f[V]rtcCommitScene\f[R] function, the
\f[V]rtcJoinCommitScene\f[R] function can be called from multiple user
threads, while the \f[V]rtcCommitScene\f[R] can only get called from
In contrast to the \f[CR]rtcCommitScene\f[R] function, the
\f[CR]rtcJoinCommitScene\f[R] function can be called from multiple user
threads, while the \f[CR]rtcCommitScene\f[R] can only get called from
multiple TBB worker threads when used concurrently.
For optimal performance we strongly recommend using TBB inside the
application together with the \f[V]rtcCommitScene\f[R] function and to
avoid using the \f[V]rtcJoinCommitScene\f[R] function.
application together with the \f[CR]rtcCommitScene\f[R] function and to
avoid using the \f[CR]rtcJoinCommitScene\f[R] function.
.PP
The \f[V]rtcJoinCommitScene\f[R] feature allows a flexible way to lazily
create hierarchies during rendering.
A thread reaching a not-yet-constructed sub-scene of a two-level scene
can generate the sub-scene geometry and call
\f[V]rtcJoinCommitScene\f[R] on that just generated scene.
During construction, further threads reaching the not-yet-built scene
The \f[CR]rtcJoinCommitScene\f[R] feature allows a flexible way to
lazily create hierarchies during rendering.
A thread reaching a not\-yet\-constructed sub\-scene of a two\-level
scene can generate the sub\-scene geometry and call
\f[CR]rtcJoinCommitScene\f[R] on that just generated scene.
During construction, further threads reaching the not\-yet\-built scene
can join the build operation by also invoking
\f[V]rtcJoinCommitScene\f[R].
A thread that calls \f[V]rtcJoinCommitScene\f[R] after the build
finishes will directly return from the \f[V]rtcJoinCommitScene\f[R]
\f[CR]rtcJoinCommitScene\f[R].
A thread that calls \f[CR]rtcJoinCommitScene\f[R] after the build
finishes will directly return from the \f[CR]rtcJoinCommitScene\f[R]
call.
.PP
Multiple scene commit operations on different scenes can be running at
@@ -72,34 +52,33 @@ the same time, hence it is possible to commit many small scenes in
parallel, distributing the commits to many threads.
.PP
When using Embree with the Intel® Threading Building Blocks (which is
the default), threads that call \f[V]rtcJoinCommitScene\f[R] will join
the default), threads that call \f[CR]rtcJoinCommitScene\f[R] will join
the build operation, but other TBB worker threads might also participate
in the build.
To avoid thread oversubscription, we recommend using TBB also inside the
application.
Further, the join mode only works properly starting with TBB v4.4 Update
1.
For earlier TBB versions, threads that call \f[V]rtcJoinCommitScene\f[R]
to join a running build will just trigger the build and wait for the
build to finish.
Further, old TBB versions with \f[V]TBB_INTERFACE_VERSION_MAJOR < 8\f[R]
do not support \f[V]rtcJoinCommitScene\f[R], and invoking this function
will result in an error.
For earlier TBB versions, threads that call
\f[CR]rtcJoinCommitScene\f[R] to join a running build will just trigger
the build and wait for the build to finish.
Further, old TBB versions with
\f[CR]TBB_INTERFACE_VERSION_MAJOR < 8\f[R] do not support
\f[CR]rtcJoinCommitScene\f[R], and invoking this function will result in
an error.
.PP
When using Embree with the internal tasking system, only threads that
call \f[V]rtcJoinCommitScene\f[R] will perform the build operation, and
call \f[CR]rtcJoinCommitScene\f[R] will perform the build operation, and
no additional worker threads will be scheduled.
.PP
When using Embree with the Parallel Patterns Library (PPL),
\f[V]rtcJoinCommitScene\f[R] is not supported and calling that function
\f[CR]rtcJoinCommitScene\f[R] is not supported and calling that function
will result in an error.
.PP
To detect whether \f[V]rtcJoinCommitScene\f[R] is supported, use the
\f[V]rtcGetDeviceProperty\f[R] function.
To detect whether \f[CR]rtcJoinCommitScene\f[R] is supported, use the
\f[CR]rtcGetDeviceProperty\f[R] function.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcCommitScene], [rtcGetDeviceProperty]
+11 -33
View File
@@ -1,52 +1,30 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewBVH" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewBVH - creates a new BVH object
\f[R]
.fi
.EX
rtcNewBVH \- creates a new BVH object
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCBVH rtcNewBVH(RTCDevice device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function creates a new BVH object and returns a handle to this BVH.
The BVH object is reference counted with an initial reference count of
1.
The handle can be released using the \f[V]rtcReleaseBVH\f[R] API call.
The handle can be released using the \f[CR]rtcReleaseBVH\f[R] API call.
.PP
The BVH object can be used to build a BVH in a user-specified format
over user-specified primitives.
See the documentation of the \f[V]rtcBuildBVH\f[R] call for more
The BVH object can be used to build a BVH in a user\-specified format
over user\-specified primitives.
See the documentation of the \f[CR]rtcBuildBVH\f[R] call for more
details.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcRetainBVH], [rtcReleaseBVH], [rtcBuildBVH]
+16 -40
View File
@@ -1,68 +1,44 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewBuffer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewBuffer - creates a new data buffer
\f[R]
.fi
.EX
rtcNewBuffer \- creates a new data buffer
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCBuffer rtcNewBuffer(
RTCDevice device,
size_t byteSize
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcNewBuffer\f[R] function creates a new data buffer object of
specified size in bytes (\f[V]byteSize\f[R] argument) that is bound to
the specified device (\f[V]device\f[R] argument).
The \f[CR]rtcNewBuffer\f[R] function creates a new data buffer object of
specified size in bytes (\f[CR]byteSize\f[R] argument) that is bound to
the specified device (\f[CR]device\f[R] argument).
The buffer object is reference counted with an initial reference count
of 1.
The returned buffer object can be released using the
\f[V]rtcReleaseBuffer\f[R] API call.
\f[CR]rtcReleaseBuffer\f[R] API call.
The specified number of bytes are allocated at buffer construction time
and deallocated when the buffer is destroyed.
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
If the \f[V]device\f[R] is a Embree SYCL device, the buffer will be
If the \f[CR]device\f[R] is a Embree SYCL device, the buffer will be
allocated using SYCL USM shared memory, i.e.\ the buffer can be accessed
on the host and device (GPU) and the SYCL runtime will handle buffer
transfers automatically.
.PP
For precise control over when memory is copied from host to device, a
buffer can also be created using \f[V]rtcNewBufferHostDevice\f[R].
buffer can also be created using \f[CR]rtcNewBufferHostDevice\f[R].
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewBufferHostDevice], [rtcRetainBuffer], [rtcReleaseBuffer]
+27 -51
View File
@@ -1,44 +1,24 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewDevice" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewDevice - creates a new device
\f[R]
.fi
.EX
rtcNewDevice \- creates a new device
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCDevice rtcNewDevice(const char* config);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function creates a new device to be used for CPU ray tracing and
returns a handle to this device.
The device object is reference counted with an initial reference count
of 1.
The handle can be released using the \f[V]rtcReleaseDevice\f[R] API
The handle can be released using the \f[CR]rtcReleaseDevice\f[R] API
call.
.PP
The device object acts as a class factory for all other object types.
@@ -50,65 +30,65 @@ Objects are only compatible if they belong to the same device, e.g it is
not allowed to create a geometry in one device and attach it to a scene
created with a different device.
.PP
A configuration string (\f[V]config\f[R] argument) can be passed to the
A configuration string (\f[CR]config\f[R] argument) can be passed to the
device construction.
This configuration string can be \f[V]NULL\f[R] to use the default
This configuration string can be \f[CR]NULL\f[R] to use the default
configuration.
.PP
The following configuration is supported:
.IP \[bu] 2
\f[V]threads=[int]\f[R]: Specifies a number of build threads to use.
\f[CR]threads=[int]\f[R]: Specifies a number of build threads to use.
A value of 0 enables all detected hardware threads.
By default all hardware threads are used.
.IP \[bu] 2
\f[V]user_threads=[int]\f[R]: Sets the number of user threads that can
\f[CR]user_threads=[int]\f[R]: Sets the number of user threads that can
be used to join and participate in a scene commit using
\f[V]rtcJoinCommitScene\f[R].
The tasking system will only use threads-user_threads many worker
\f[CR]rtcJoinCommitScene\f[R].
The tasking system will only use threads\-user_threads many worker
threads, thus if the app wants to solely use its threads to commit
scenes, just set threads equal to user_threads.
This option only has effect with the Intel(R) Threading Building Blocks
(TBB) tasking system.
.IP \[bu] 2
\f[V]set_affinity=[0/1]\f[R]: When enabled, build threads are
\f[CR]set_affinity=[0/1]\f[R]: When enabled, build threads are
affinitized to hardware threads.
This option is disabled by default on standard CPUs, and enabled by
default on Xeon Phi Processors.
.IP \[bu] 2
\f[V]start_threads=[0/1]\f[R]: When enabled, the build threads are
\f[CR]start_threads=[0/1]\f[R]: When enabled, the build threads are
started upfront.
This can be useful for benchmarking to exclude thread creation time.
This option is disabled by default.
.IP \[bu] 2
\f[V]isa=[sse2,sse4.2,avx,avx2,avx512]\f[R]: Use specified ISA.
\f[CR]isa=[sse2,sse4.2,avx,avx2,avx512]\f[R]: Use specified ISA.
By default the ISA is selected automatically.
.IP \[bu] 2
\f[V]max_isa=[sse2,sse4.2,avx,avx2,avx512]\f[R]: Configures the
\f[CR]max_isa=[sse2,sse4.2,avx,avx2,avx512]\f[R]: Configures the
automated ISA selection to use maximally the specified ISA.
.IP \[bu] 2
\f[V]hugepages=[0/1]\f[R]: Enables or disables usage of huge pages.
\f[CR]hugepages=[0/1]\f[R]: Enables or disables usage of huge pages.
Under Linux huge pages are used by default but under Windows and macOS
they are disabled by default.
.IP \[bu] 2
\f[V]enable_selockmemoryprivilege=[0/1]\f[R]: When set to 1, this
enables the \f[V]SeLockMemoryPrivilege\f[R] privilege with is required
\f[CR]enable_selockmemoryprivilege=[0/1]\f[R]: When set to 1, this
enables the \f[CR]SeLockMemoryPrivilege\f[R] privilege with is required
to use huge pages on Windows.
This option has an effect only under Windows and is ignored on other
platforms.
See Section [Huge Page Support] for more details.
.IP \[bu] 2
\f[V]verbose=[0,1,2,3]\f[R]: Sets the verbosity of the output.
\f[CR]verbose=[0,1,2,3]\f[R]: Sets the verbosity of the output.
When set to 0, no output is printed by Embree, when set to a higher
level more output is printed.
By default Embree does not print anything on the console.
.IP \[bu] 2
\f[V]frequency_level=[simd128,simd256,simd512]\f[R]: Specifies the
\f[CR]frequency_level=[simd128,simd256,simd512]\f[R]: Specifies the
frequency level the application want to run on, which can be either:
.RS 2
.IP "a)" 3
simd128 to run at highest frequency
.IP "b)" 3
simd256 to run at AVX2-heavy frequency level
simd256 to run at AVX2\-heavy frequency level
.IP "c)" 3
simd512 to run at heavy AVX512 frequency level.
When some frequency level is specified, Embree will avoid doing
@@ -128,16 +108,12 @@ clocking.
.PP
Different configuration options should be separated by commas, e.g.:
.IP
.nf
\f[C]
.EX
rtcNewDevice(\[dq]threads=1,isa=avx\[dq]);
\f[R]
.fi
.EE
.SS EXIT STATUS
.PP
On success returns a handle of the created device.
On failure returns \f[V]NULL\f[R] as device and sets a per-thread error
code that can be queried using \f[V]rtcGetDeviceError(NULL)\f[R].
On failure returns \f[CR]NULL\f[R] as device and sets a per\-thread
error code that can be queried using \f[CR]rtcGetDeviceError(NULL)\f[R].
.SS SEE ALSO
.PP
[rtcRetainDevice], [rtcReleaseDevice], [rtcNewSYCLDevice]
+62 -83
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewGeometry - creates a new geometry object
\f[R]
.fi
.EX
rtcNewGeometry \- creates a new geometry object
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
enum RTCGeometryType
@@ -62,106 +44,103 @@ RTCGeometry rtcNewGeometry(
RTCDevice device,
enum RTCGeometryType type
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Geometries are objects that represent an array of primitives of the same
type.
The \f[V]rtcNewGeometry\f[R] function creates a new geometry of
specified type (\f[V]type\f[R] argument) bound to the specified device
(\f[V]device\f[R] argument) and returns a handle to this geometry.
The \f[CR]rtcNewGeometry\f[R] function creates a new geometry of
specified type (\f[CR]type\f[R] argument) bound to the specified device
(\f[CR]device\f[R] argument) and returns a handle to this geometry.
The geometry object is reference counted with an initial reference count
of 1.
The geometry handle can be released using the
\f[V]rtcReleaseGeometry\f[R] API call.
\f[CR]rtcReleaseGeometry\f[R] API call.
.PP
Supported geometry types are triangle meshes
(\f[V]RTC_GEOMETRY_TYPE_TRIANGLE\f[R] type), quad meshes (triangle
pairs) (\f[V]RTC_GEOMETRY_TYPE_QUAD\f[R] type), Catmull-Clark
subdivision surfaces (\f[V]RTC_GEOMETRY_TYPE_SUBDIVISION\f[R] type),
(\f[CR]RTC_GEOMETRY_TYPE_TRIANGLE\f[R] type), quad meshes (triangle
pairs) (\f[CR]RTC_GEOMETRY_TYPE_QUAD\f[R] type), Catmull\-Clark
subdivision surfaces (\f[CR]RTC_GEOMETRY_TYPE_SUBDIVISION\f[R] type),
curve geometries with different bases
(\f[V]RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE\f[R],
(\f[CR]RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE\f[R],
.PD 0
.P
.PD
\f[V]RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE\f[R],
.PD 0
.P
.PD
\f[V]RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_CATMULL_ROM_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE\f[R] types) grid meshes
(\f[V]RTC_GEOMETRY_TYPE_GRID\f[R]), point geometries
(\f[V]RTC_GEOMETRY_TYPE_SPHERE_POINT\f[R],
\f[V]RTC_GEOMETRY_TYPE_DISC_POINT\f[R],
\f[V]RTC_TYPE_ORIENTED_DISC_POINT\f[R]), user-defined geometries
(\f[V]RTC_GEOMETRY_TYPE_USER\f[R]), instances
(\f[V]RTC_GEOMETRY_TYPE_INSTANCE\f[R]), and instance arrays
(\f[V]RTC_GEOMETRY_TYPE_INSTANCE_ARRAY\f[R]).
\f[CR]RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BSPLINE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HERMITE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_CATMULL_ROM_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE\f[R] types) grid meshes
(\f[CR]RTC_GEOMETRY_TYPE_GRID\f[R]), point geometries
(\f[CR]RTC_GEOMETRY_TYPE_SPHERE_POINT\f[R],
\f[CR]RTC_GEOMETRY_TYPE_DISC_POINT\f[R],
\f[CR]RTC_TYPE_ORIENTED_DISC_POINT\f[R]), user\-defined geometries
(\f[CR]RTC_GEOMETRY_TYPE_USER\f[R]), instances
(\f[CR]RTC_GEOMETRY_TYPE_INSTANCE\f[R]), and instance arrays
(\f[CR]RTC_GEOMETRY_TYPE_INSTANCE_ARRAY\f[R]).
.PP
The types \f[V]RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE\f[R], and
\f[V]RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE\f[R] will treat the curve
as a sweep surface of a varying-radius circle swept tangentially along
the curve.
The types \f[V]RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE\f[R],
\f[V]RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE\f[R], and
\f[V]RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE\f[R] use ray-facing
ribbons as a faster-to-intersect approximation.
The types \f[CR]RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE\f[R], and
\f[CR]RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE\f[R] will treat the
curve as a sweep surface of a varying\-radius circle swept tangentially
along the curve.
The types \f[CR]RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE\f[R],
\f[CR]RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE\f[R], and
\f[CR]RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE\f[R] use ray\-facing
ribbons as a faster\-to\-intersect approximation.
.PP
After construction, geometries are enabled by default and not attached
to any scene.
Geometries can be disabled (\f[V]rtcDisableGeometry\f[R] call), and
enabled again (\f[V]rtcEnableGeometry\f[R] call).
Geometries can be disabled (\f[CR]rtcDisableGeometry\f[R] call), and
enabled again (\f[CR]rtcEnableGeometry\f[R] call).
A geometry can be attached to multiple scenes using the
\f[V]rtcAttachGeometry\f[R] call (or \f[V]rtcAttachGeometryByID\f[R]
call), and detached using the \f[V]rtcDetachGeometry\f[R] call.
\f[CR]rtcAttachGeometry\f[R] call (or \f[CR]rtcAttachGeometryByID\f[R]
call), and detached using the \f[CR]rtcDetachGeometry\f[R] call.
During attachment, a geometry ID is assigned to the geometry (or
assigned by the user when using the \f[V]rtcAttachGeometryByID\f[R]
assigned by the user when using the \f[CR]rtcAttachGeometryByID\f[R]
call), which uniquely identifies the geometry inside that scene.
This identifier is returned when primitives of the geometry are hit in
later ray queries for the scene.
.PP
Geometries can also be modified, including their vertex and index
buffers.
After modifying a buffer, \f[V]rtcUpdateGeometryBuffer\f[R] must be
After modifying a buffer, \f[CR]rtcUpdateGeometryBuffer\f[R] must be
called to notify that the buffer got modified.
.PP
The application can use the \f[V]rtcSetGeometryUserData\f[R] function to
set a user data pointer to its own geometry representation, and later
read out this pointer using the \f[V]rtcGetGeometryUserData\f[R]
The application can use the \f[CR]rtcSetGeometryUserData\f[R] function
to set a user data pointer to its own geometry representation, and later
read out this pointer using the \f[CR]rtcGetGeometryUserData\f[R]
function.
.PP
After setting up the geometry or modifying it,
\f[V]rtcCommitGeometry\f[R] must be called to finish the geometry setup.
\f[CR]rtcCommitGeometry\f[R] must be called to finish the geometry
setup.
After committing the geometry, vertex data interpolation can be
performed using the \f[V]rtcInterpolate\f[R] and
\f[V]rtcInterpolateN\f[R] functions.
performed using the \f[CR]rtcInterpolate\f[R] and
\f[CR]rtcInterpolateN\f[R] functions.
.PP
A build quality can be specified for a geometry using the
\f[V]rtcSetGeometryBuildQuality\f[R] function, to balance between
\f[CR]rtcSetGeometryBuildQuality\f[R] function, to balance between
acceleration structure build performance and ray query performance.
The build quality per geometry will be used if a two-level acceleration
The build quality per geometry will be used if a two\-level acceleration
structure is built internally, which is the case if the
\f[V]RTC_BUILD_QUALITY_LOW\f[R] is set as the scene build quality.
\f[CR]RTC_BUILD_QUALITY_LOW\f[R] is set as the scene build quality.
See Section [rtcSetSceneBuildQuality] for more details.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcEnableGeometry], [rtcDisableGeometry], [rtcAttachGeometry],
[rtcAttachGeometryByID], [rtcUpdateGeometryBuffer],
[rtcSetGeometryUserData], [rtcGetGeometryUserData], [rtcCommitGeometry],
+13 -35
View File
@@ -1,49 +1,29 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewSYCLDevice" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewSYCLDevice - creates a new device to be used with SYCL
\f[R]
.fi
.EX
rtcNewSYCLDevice \- creates a new device to be used with SYCL
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCDevice rtcNewSYCLDevice(sycl::context context, const char* config);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function creates a new device to be used with SYCL for GPU
rendering and returns a handle to this device.
The device object is reference counted with an initial reference count
of 1.
The handle can get released using the \f[V]rtcReleaseDevice\f[R] API
The handle can get released using the \f[CR]rtcReleaseDevice\f[R] API
call.
.PP
The passed SYCL context (\f[V]context\f[R] argument) is used to allocate
GPU data, thus only devices contained inside this context can be used
for rendering.
The passed SYCL context (\f[CR]context\f[R] argument) is used to
allocate GPU data, thus only devices contained inside this context can
be used for rendering.
By default the GPU data is allocated on the first GPU device of the
context, but this behavior can get changed with the
[rtcSetDeviceSYCLDevice] function.
@@ -57,13 +37,11 @@ Objects are only compatible if they belong to the same device, e.g it is
not allowed to create a geometry in one device and attach it to a scene
created with a different device.
.PP
For an overview of configurations that can get passed (\f[V]config\f[R]
For an overview of configurations that can get passed (\f[CR]config\f[R]
argument) please see the [rtcNewDevice] function description.
.SS EXIT STATUS
.PP
On success returns a handle of the created device.
On failure returns \f[V]NULL\f[R] as device and sets a per-thread error
code that can be queried using \f[V]rtcGetDeviceError(NULL)\f[R].
On failure returns \f[CR]NULL\f[R] as device and sets a per\-thread
error code that can be queried using \f[CR]rtcGetDeviceError(NULL)\f[R].
.SS SEE ALSO
.PP
[rtcRetainDevice], [rtcReleaseDevice], [rtcNewDevice]
+11 -33
View File
@@ -1,50 +1,28 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewScene - creates a new scene
\f[R]
.fi
.EX
rtcNewScene \- creates a new scene
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCScene rtcNewScene(RTCDevice device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function creates a new scene bound to the specified device
(\f[V]device\f[R] argument), and returns a handle to this scene.
(\f[CR]device\f[R] argument), and returns a handle to this scene.
The scene object is reference counted with an initial reference count of
1.
The scene handle can be released using the \f[V]rtcReleaseScene\f[R] API
call.
The scene handle can be released using the \f[CR]rtcReleaseScene\f[R]
API call.
.SS EXIT STATUS
.PP
On success a scene handle is returned.
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcRetainScene], [rtcReleaseScene]
+19 -42
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcNewSharedBuffer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcNewSharedBuffer - creates a new shared data buffer
\f[R]
.fi
.EX
rtcNewSharedBuffer \- creates a new shared data buffer
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
RTCBuffer rtcNewSharedBuffer(
@@ -34,37 +16,32 @@ RTCBuffer rtcNewSharedBuffer(
void* ptr,
size_t byteSize
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcNewSharedBuffer\f[R] function creates a new shared data
buffer object bound to the specified device (\f[V]device\f[R] argument).
The \f[CR]rtcNewSharedBuffer\f[R] function creates a new shared data
buffer object bound to the specified device (\f[CR]device\f[R]
argument).
The buffer object is reference counted with an initial reference count
of 1.
The buffer can be released using the \f[V]rtcReleaseBuffer\f[R]
The buffer can be released using the \f[CR]rtcReleaseBuffer\f[R]
function.
.PP
At construction time, the pointer to the user-managed buffer data
(\f[V]ptr\f[R] argument) including its size in bytes (\f[V]byteSize\f[R]
argument) is provided to create the buffer.
At construction time, the pointer to the user\-managed buffer data
(\f[CR]ptr\f[R] argument) including its size in bytes
(\f[CR]byteSize\f[R] argument) is provided to create the buffer.
At buffer construction time no buffer data is allocated, but the buffer
data provided by the application is used.
The buffer data must remain valid for as long as the buffer may be used,
and the user is responsible to free the buffer data when no longer
required.
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
The data pointer (\f[V]ptr\f[R] argument) must be aligned to 4 bytes;
otherwise the \f[V]rtcNewSharedBuffer\f[R] function will fail.
The data pointer (\f[CR]ptr\f[R] argument) must be aligned to 4 bytes;
otherwise the \f[CR]rtcNewSharedBuffer\f[R] function will fail.
.SS EXIT STATUS
.PP
On failure \f[V]NULL\f[R] is returned and an error code is set that can
be queried using \f[V]rtcGetDeviceError\f[R].
On failure \f[CR]NULL\f[R] is returned and an error code is set that can
be queried using \f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewSharedBufferHostDevice], [rtcRetainBuffer], [rtcReleaseBuffer]
+28 -51
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcOccluded1" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcOccluded1 - finds any hit for a single ray
\f[R]
.fi
.EX
rtcOccluded1 \- finds any hit for a single ray
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcOccluded1(
@@ -34,50 +16,45 @@ void rtcOccluded1(
struct RTCRay* ray,
struct RTCOccludedArguments* args = NULL
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcOccluded1\f[R] function checks for a single ray
(\f[V]ray\f[R] argument) whether there is any hit with the scene
(\f[V]scene\f[R] argument).
The passed optional arguments struct (\f[V]args\f[R] argument) can get
The \f[CR]rtcOccluded1\f[R] function checks for a single ray
(\f[CR]ray\f[R] argument) whether there is any hit with the scene
(\f[CR]scene\f[R] argument).
The passed optional arguments struct (\f[CR]args\f[R] argument) can get
used for advanced use cases, see section [rtcInitOccludedArguments] for
more details.
.PP
To trace a ray, the user must initialize the ray origin (\f[V]org\f[R]
ray member), ray direction (\f[V]dir\f[R] ray member), ray segment
(\f[V]tnear\f[R], \f[V]tfar\f[R] ray members), ray mask (\f[V]mask\f[R]
ray member), and must set the ray flags to \f[V]0\f[R] (\f[V]flags\f[R]
ray member).
The ray time (\f[V]time\f[R] ray member) must be initialized to a value
in the range [0,1].
The ray segment must be in the range [0,∞], thus ranges that start
To trace a ray, the user must initialize the ray origin (\f[CR]org\f[R]
ray member), ray direction (\f[CR]dir\f[R] ray member), ray segment
(\f[CR]tnear\f[R], \f[CR]tfar\f[R] ray members), ray mask
(\f[CR]mask\f[R] ray member), and must set the ray flags to \f[CR]0\f[R]
(\f[CR]flags\f[R] ray member).
The ray time (\f[CR]time\f[R] ray member) must be initialized to a value
in the range [0, 1].
The ray segment must be in the range [0, ∞], thus ranges that start
behind the ray origin are not valid, but ranges can reach to infinity.
See Section [RTCRay] for the ray layout description.
.PP
When no intersection is found, the ray data is not updated.
In case a hit was found, the \f[V]tfar\f[R] component of the ray is set
to \f[V]-inf\f[R].
In case a hit was found, the \f[CR]tfar\f[R] component of the ray is set
to \f[CR]\-inf\f[R].
.PP
The implementation makes no guarantees that primitives whose hit
distance is exactly at (or very close to) \f[V]tnear\f[R] or
\f[V]tfar\f[R] are hit or missed.
If you want to exclude intersections at \f[V]tnear\f[R] just pass a
slightly enlarged \f[V]tnear\f[R], and if you want to include
intersections at \f[V]tfar\f[R] pass a slightly enlarged \f[V]tfar\f[R].
distance is exactly at (or very close to) \f[CR]tnear\f[R] or
\f[CR]tfar\f[R] are hit or missed.
If you want to exclude intersections at \f[CR]tnear\f[R] just pass a
slightly enlarged \f[CR]tnear\f[R], and if you want to include
intersections at \f[CR]tfar\f[R] pass a slightly enlarged
\f[CR]tfar\f[R].
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
The ray must be aligned to 16 bytes.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcIntersect1], [rtcOccluded4/8/16], [RTCRay],
[rtcInitOccludedArguments]
+25 -49
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcOccluded4/8/16" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcOccluded4/8/16 - finds any hits for a ray packet
\f[R]
.fi
.EX
rtcOccluded4/8/16 \- finds any hits for a ray packet
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcOccluded4(
@@ -49,49 +31,43 @@ void rtcOccluded16(
struct RTCRay16* ray,
struct RTCOccludedArguments* args = NULL
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcOccluded4/8/16\f[R] functions checks for each active ray of
the ray packet of size 4, 8, or 16 (\f[V]ray\f[R] argument) whether
there is any hit with the scene (\f[V]scene\f[R] argument).
The passed optional arguments struct (\f[V]args\f[R] argument) can get
The \f[CR]rtcOccluded4/8/16\f[R] functions checks for each active ray of
the ray packet of size 4, 8, or 16 (\f[CR]ray\f[R] argument) whether
there is any hit with the scene (\f[CR]scene\f[R] argument).
The passed optional arguments struct (\f[CR]args\f[R] argument) can get
used for advanced use cases, see section [rtcInitOccludedArguments] for
more details.
See Section [rtcOccluded1] for more details and a description of how to
set up and trace occlusion rays.
.PP
A ray valid mask must be provided (\f[V]valid\f[R] argument) which
stores one 32-bit integer (\f[V]-1\f[R] means valid and \f[V]0\f[R]
A ray valid mask must be provided (\f[CR]valid\f[R] argument) which
stores one 32\-bit integer (\f[CR]\-1\f[R] means valid and \f[CR]0\f[R]
invalid) per ray in the packet.
Only active rays are processed, and hit data of inactive rays is not
changed.
.IP
.nf
\f[C]
\f[R]
.fi
.EX
.EE
.PP
For \f[V]rtcOccluded4\f[R] the ray packet must be aligned to 16 bytes,
for \f[V]rtcOccluded8\f[R] the alignment must be 32 bytes, and for
\f[V]rtcOccluded16\f[R] the alignment must be 64 bytes.
For \f[CR]rtcOccluded4\f[R] the ray packet must be aligned to 16 bytes,
for \f[CR]rtcOccluded8\f[R] the alignment must be 32 bytes, and for
\f[CR]rtcOccluded16\f[R] the alignment must be 64 bytes.
.PP
The \f[V]rtcOccluded4\f[R], \f[V]rtcOccluded8\f[R] and
\f[V]rtcOccluded16\f[R] functions may change the ray packet size and ray
order when calling back into intersect filter functions or user geometry
callbacks.
The \f[CR]rtcOccluded4\f[R], \f[CR]rtcOccluded8\f[R] and
\f[CR]rtcOccluded16\f[R] functions may change the ray packet size and
ray order when calling back into intersect filter functions or user
geometry callbacks.
Under some conditions the application can assume packets to stay intakt,
which can determined by querying the
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[R],
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[R],
\f[V]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[R] properties through
the \f[V]rtcGetDeviceProperty\f[R] function.
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[R],
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[R],
\f[CR]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[R] properties through
the \f[CR]rtcGetDeviceProperty\f[R] function.
See [rtcGetDeviceProperty] for more information.
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcOccluded1], [rtcIntersect4/8/16], [rtcInitOccludedArguments]
+25 -47
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcPointQuery" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcPointQuery - traverses the BVH with a point query object
\f[R]
.fi
.EX
rtcPointQuery \- traverses the BVH with a point query object
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTC_ALIGN(16) RTCPointQuery
@@ -48,46 +30,45 @@ void rtcPointQuery(
struct RTCPointQueryFunction* queryFunc,
void* userPtr
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcPointQuery\f[R] function traverses the BVH using a
\f[V]RTCPointQuery\f[R] object (\f[V]query\f[R] argument) and calls a
user defined callback function (e.g \f[V]queryFunc\f[R] argument) for
each primitive of the scene (\f[V]scene\f[R] argument) that intersects
The \f[CR]rtcPointQuery\f[R] function traverses the BVH using a
\f[CR]RTCPointQuery\f[R] object (\f[CR]query\f[R] argument) and calls a
user defined callback function (e.g \f[CR]queryFunc\f[R] argument) for
each primitive of the scene (\f[CR]scene\f[R] argument) that intersects
the query domain.
.PP
The user has to initialize the query location (\f[V]x\f[R], \f[V]y\f[R]
and \f[V]z\f[R] member) and query radius in the range [0,∞].
The user has to initialize the query location (\f[CR]x\f[R],
\f[CR]y\f[R] and \f[CR]z\f[R] member) and query radius in the range
[0, ∞].
If the scene contains motion blur geometries, also the query time
(\f[V]time\f[R] member) must be initialized to a value in the range
[0,1].
(\f[CR]time\f[R] member) must be initialized to a value in the range
[0, 1].
.PP
Further, a \f[V]RTCPointQueryContext\f[R] (\f[V]context\f[R] argument)
Further, a \f[CR]RTCPointQueryContext\f[R] (\f[CR]context\f[R] argument)
must be created and initialized.
It contains ID and transformation information of the instancing
hierarchy if (multilevel-)instancing is used.
hierarchy if (multilevel\-)instancing is used.
See [rtcInitPointQueryContext] for further information.
.PP
For every primitive that intersects the query domain, the callback
function (\f[V]queryFunc\f[R] argument) is called, in which distance
function (\f[CR]queryFunc\f[R] argument) is called, in which distance
computations to the primitive can be implemented.
The user will be provided with the primID and geomID of the according
primitive, however, the geometry information (e.g.
triangle index and vertex data) has to be determined manually.
The \f[V]userPtr\f[R] argument can be used to input geometry data of the
scene or output results of the point query (e.g.\ closest point
The \f[CR]userPtr\f[R] argument can be used to input geometry data of
the scene or output results of the point query (e.g.\ closest point
currently found on surface geometry (see tutorial [ClosestPoint])).
.PP
The parameter \f[V]queryFunc\f[R] is optional and can be NULL, in which
The parameter \f[CR]queryFunc\f[R] is optional and can be NULL, in which
case the callback function is not invoked.
However, a callback function can still get attached to a specific
\f[V]RTCGeometry\f[R] object using [rtcSetGeometryPointQueryFunction].
\f[CR]RTCGeometry\f[R] object using [rtcSetGeometryPointQueryFunction].
If a callback function is attached to a geometry and (a potentially
different) callback function is passed as an argument to
\f[V]rtcPointQuery\f[R], both functions are called for the primitives of
the according geometries.
\f[CR]rtcPointQuery\f[R], both functions are called for the primitives
of the according geometries.
.PP
The query radius can be decreased inside the callback function, which
allows to efficiently cull parts of the scene during BVH traversal.
@@ -98,7 +79,7 @@ The callback function will be called for all primitives in a leaf node
of the BVH even if the primitive is outside the query domain, since
Embree does not gather geometry information of primitives internally.
.PP
Point queries can be used with (multilevel)-instancing.
Point queries can be used with (multilevel)\-instancing.
However, care has to be taken when the instance transformation contains
anisotropic scaling or sheering.
In these cases distance computations have to be performed in world space
@@ -111,15 +92,12 @@ See [rtcSetGeometryPointQueryFunction] for details.
.PP
The point query structure must be aligned to 16 bytes.
.SS SUPPORTED PRIMITIVES
.PP
Currently, all primitive types are supported by the point query API
except of points (see [RTC_GEOMETRY_TYPE_POINT]), curves (see
[RTC_GEOMETRY_TYPE_CURVE]) and sudivision surfaces (see
[RTC_GEOMETRY_SUBDIVISION]).
.SS EXIT STATUS
.PP
For performance reasons this function does not do any error checks, thus
will not set any error flags on failure.
.SS SEE ALSO
.PP
[rtcSetGeometryPointQueryFunction], [rtcInitPointQueryContext]
+5 -24
View File
@@ -1,32 +1,13 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcPointQuery" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcPointQuery4/8/16 - traverses the BVH with a point query object for a ray packet
\f[R]
.fi
.EX
rtcPointQuery4/8/16 \- traverses the BVH with a point query object for a ray packet
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcPointQuery4/8/16\f[R] function unrolls the ray packet
The \f[CR]rtcPointQuery4/8/16\f[R] function unrolls the ray packet
internally and calls [rtcPointQuery].
.SS SEE ALSO
.PP
[rtcPointQuery]
+9 -31
View File
@@ -1,47 +1,25 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcReleaseBVH" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcReleaseBVH - decrements the BVH reference count
\f[R]
.fi
.EX
rtcReleaseBVH \- decrements the BVH reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcReleaseBVH(RTCBVH bvh);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
BVH objects are reference counted.
The \f[V]rtcReleaseBVH\f[R] function decrements the reference count of
the passed BVH object (\f[V]bvh\f[R] argument).
The \f[CR]rtcReleaseBVH\f[R] function decrements the reference count of
the passed BVH object (\f[CR]bvh\f[R] argument).
When the reference count falls to 0, the BVH gets destroyed.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewBVH], [rtcRetainBVH]
+9 -31
View File
@@ -1,47 +1,25 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcReleaseBuffer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcReleaseBuffer - decrements the buffer reference count
\f[R]
.fi
.EX
rtcReleaseBuffer \- decrements the buffer reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcReleaseBuffer(RTCBuffer buffer);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Buffer objects are reference counted.
The \f[V]rtcReleaseBuffer\f[R] function decrements the reference count
of the passed buffer object (\f[V]buffer\f[R] argument).
The \f[CR]rtcReleaseBuffer\f[R] function decrements the reference count
of the passed buffer object (\f[CR]buffer\f[R] argument).
When the reference count falls to 0, the buffer gets destroyed.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewBuffer], [rtcRetainBuffer]
+9 -31
View File
@@ -1,51 +1,29 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcReleaseDevice" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcReleaseDevice - decrements the device reference count
\f[R]
.fi
.EX
rtcReleaseDevice \- decrements the device reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcReleaseDevice(RTCDevice device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Device objects are reference counted.
The \f[V]rtcReleaseDevice\f[R] function decrements the reference count
of the passed device object (\f[V]device\f[R] argument).
The \f[CR]rtcReleaseDevice\f[R] function decrements the reference count
of the passed device object (\f[CR]device\f[R] argument).
When the reference count falls to 0, the device gets destroyed.
.PP
All objects created from the device (like scenes, geometries, etc.)
hold a reference to the device, thus the device will not get destroyed
unless these objects are destroyed first.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewDevice], [rtcRetainDevice]
+9 -31
View File
@@ -1,47 +1,25 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcReleaseGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcReleaseGeometry - decrements the geometry reference count
\f[R]
.fi
.EX
rtcReleaseGeometry \- decrements the geometry reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcReleaseGeometry(RTCGeometry geometry);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Geometry objects are reference counted.
The \f[V]rtcReleaseGeometry\f[R] function decrements the reference count
of the passed geometry object (\f[V]geometry\f[R] argument).
The \f[CR]rtcReleaseGeometry\f[R] function decrements the reference
count of the passed geometry object (\f[CR]geometry\f[R] argument).
When the reference count falls to 0, the geometry gets destroyed.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcRetainGeometry]
+9 -31
View File
@@ -1,51 +1,29 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcReleaseScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcReleaseScene - decrements the scene reference count
\f[R]
.fi
.EX
rtcReleaseScene \- decrements the scene reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcReleaseScene(RTCScene scene);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Scene objects are reference counted.
The \f[V]rtcReleaseScene\f[R] function decrements the reference count of
the passed scene object (\f[V]scene\f[R] argument).
The \f[CR]rtcReleaseScene\f[R] function decrements the reference count
of the passed scene object (\f[CR]scene\f[R] argument).
When the reference count falls to 0, the scene gets destroyed.
.PP
The scene holds a reference to all attached geometries, thus if the
scene gets destroyed, all geometries get detached and their reference
count decremented.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewScene], [rtcRetainScene]
+10 -32
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcRetainBVH" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcRetainBVH - increments the BVH reference count
\f[R]
.fi
.EX
rtcRetainBVH \- increments the BVH reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcRetainBVH(RTCBVH bvh);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
BVH objects are reference counted.
The \f[V]rtcRetainBVH\f[R] function increments the reference count of
the passed BVH object (\f[V]bvh\f[R] argument).
This function together with \f[V]rtcReleaseBVH\f[R] allows to use the
The \f[CR]rtcRetainBVH\f[R] function increments the reference count of
the passed BVH object (\f[CR]bvh\f[R] argument).
This function together with \f[CR]rtcReleaseBVH\f[R] allows to use the
internal reference counting in a C++ wrapper class to handle the
ownership of the object.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewBVH], [rtcReleaseBVH]
+11 -33
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcRetainBuffer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcRetainBuffer - increments the buffer reference count
\f[R]
.fi
.EX
rtcRetainBuffer \- increments the buffer reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcRetainBuffer(RTCBuffer buffer);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Buffer objects are reference counted.
The \f[V]rtcRetainBuffer\f[R] function increments the reference count of
the passed buffer object (\f[V]buffer\f[R] argument).
This function together with \f[V]rtcReleaseBuffer\f[R] allows to use the
internal reference counting in a C++ wrapper class to handle the
The \f[CR]rtcRetainBuffer\f[R] function increments the reference count
of the passed buffer object (\f[CR]buffer\f[R] argument).
This function together with \f[CR]rtcReleaseBuffer\f[R] allows to use
the internal reference counting in a C++ wrapper class to handle the
ownership of the object.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewBuffer], [rtcReleaseBuffer]
+11 -33
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcRetainDevice" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcRetainDevice - increments the device reference count
\f[R]
.fi
.EX
rtcRetainDevice \- increments the device reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcRetainDevice(RTCDevice device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Device objects are reference counted.
The \f[V]rtcRetainDevice\f[R] function increments the reference count of
the passed device object (\f[V]device\f[R] argument).
This function together with \f[V]rtcReleaseDevice\f[R] allows to use the
internal reference counting in a C++ wrapper class to manage the
The \f[CR]rtcRetainDevice\f[R] function increments the reference count
of the passed device object (\f[CR]device\f[R] argument).
This function together with \f[CR]rtcReleaseDevice\f[R] allows to use
the internal reference counting in a C++ wrapper class to manage the
ownership of the object.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewDevice], [rtcReleaseDevice]
+10 -32
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcRetainGeometry" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcRetainGeometry - increments the geometry reference count
\f[R]
.fi
.EX
rtcRetainGeometry \- increments the geometry reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcRetainGeometry(RTCGeometry geometry);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Geometry objects are reference counted.
The \f[V]rtcRetainGeometry\f[R] function increments the reference count
of the passed geometry object (\f[V]geometry\f[R] argument).
This function together with \f[V]rtcReleaseGeometry\f[R] allows to use
The \f[CR]rtcRetainGeometry\f[R] function increments the reference count
of the passed geometry object (\f[CR]geometry\f[R] argument).
This function together with \f[CR]rtcReleaseGeometry\f[R] allows to use
the internal reference counting in a C++ wrapper class to handle the
ownership of the object.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewGeometry], [rtcReleaseGeometry]
+10 -32
View File
@@ -1,49 +1,27 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcRetainScene" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcRetainScene - increments the scene reference count
\f[R]
.fi
.EX
rtcRetainScene \- increments the scene reference count
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcRetainScene(RTCScene scene);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Scene objects are reference counted.
The \f[V]rtcRetainScene\f[R] function increments the reference count of
the passed scene object (\f[V]scene\f[R] argument).
This function together with \f[V]rtcReleaseScene\f[R] allows to use the
The \f[CR]rtcRetainScene\f[R] function increments the reference count of
the passed scene object (\f[CR]scene\f[R] argument).
This function together with \f[CR]rtcReleaseScene\f[R] allows to use the
internal reference counting in a C++ wrapper class to handle the
ownership of the object.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewScene], [rtcReleaseScene]
+11 -35
View File
@@ -1,61 +1,37 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSYCLDeviceSelector" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSYCLDeviceSelector - SYCL device selector function to select
.EX
rtcSYCLDeviceSelector \- SYCL device selector function to select
devices supported by Embree
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
int rtcSYCLDeviceSelector(const sycl::device sycl_device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function checks if the passed SYCL device (\f[V]sycl_device\f[R]
This function checks if the passed SYCL device (\f[CR]sycl_device\f[R]
arguments) is supported by Embree or not.
This function can be used directly to select some supported SYCL device
by using it as SYCL device selector function.
For instance, the following code sequence selects an Embree supported
SYCL device and creates an Embree device from it:
.IP
.nf
\f[C]
.EX
sycl::device sycl_device(rtcSYCLDeviceSelector);
sycl::queue sycl_queue(sycl_device);
sycl::context(sycl_device);
RTCDevice device = rtcNewSYCLDevice(sycl_context,nullptr);
\f[R]
.fi
.EE
.SS EXIT STATUS
.PP
The function returns -1 if the SYCL device is supported by Embree and 1
The function returns \-1 if the SYCL device is supported by Embree and 1
otherwise.
On failure an error code is set that can get queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcIsSYCLDeviceSupported]
+15 -37
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetDeviceErrorFunction" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetDeviceErrorFunction - sets an error callback function for the device
\f[R]
.fi
.EX
rtcSetDeviceErrorFunction \- sets an error callback function for the device
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
typedef void (*RTCErrorFunction)(
@@ -40,31 +22,27 @@ void rtcSetDeviceErrorFunction(
RTCErrorFunction error,
void* userPtr
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Using the \f[V]rtcSetDeviceErrorFunction\f[R] call, it is possible to
set a callback function (\f[V]error\f[R] argument) with payload
(\f[V]userPtr\f[R] argument), which is called whenever an error occurs
for the specified device (\f[V]device\f[R] argument).
Using the \f[CR]rtcSetDeviceErrorFunction\f[R] call, it is possible to
set a callback function (\f[CR]error\f[R] argument) with payload
(\f[CR]userPtr\f[R] argument), which is called whenever an error occurs
for the specified device (\f[CR]device\f[R] argument).
.PP
Only a single callback function can be registered per device, and
further invocations overwrite the previously set callback function.
Passing \f[V]NULL\f[R] as function pointer disables the registered
Passing \f[CR]NULL\f[R] as function pointer disables the registered
callback function.
.PP
When the registered callback function is invoked, it gets passed the
user-defined payload (\f[V]userPtr\f[R] argument as specified at
registration time), the error code (\f[V]code\f[R] argument) of the
occurred error, as well as a string (\f[V]str\f[R] argument) that
user\-defined payload (\f[CR]userPtr\f[R] argument as specified at
registration time), the error code (\f[CR]code\f[R] argument) of the
occurred error, as well as a string (\f[CR]str\f[R] argument) that
further describes the error.
.PP
The error code is also set if an error callback function is registered.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcGetDeviceError]
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetDeviceMemoryMonitorFunction" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetDeviceMemoryMonitorFunction - registers a callback function
.EX
rtcSetDeviceMemoryMonitorFunction \- registers a callback function
to track memory consumption
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
typedef bool (*RTCMemoryMonitorFunction)(
@@ -41,59 +23,55 @@ void rtcSetDeviceMemoryMonitorFunction(
RTCMemoryMonitorFunction memoryMonitor,
void* userPtr
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
Using the \f[V]rtcSetDeviceMemoryMonitorFunction\f[R] call, it is
possible to register a callback function (\f[V]memoryMonitor\f[R]
argument) with payload (\f[V]userPtr\f[R] argument) for a device
(\f[V]device\f[R] argument), which is called whenever internal memory is
allocated or deallocated by objects of that device.
Using the \f[CR]rtcSetDeviceMemoryMonitorFunction\f[R] call, it is
possible to register a callback function (\f[CR]memoryMonitor\f[R]
argument) with payload (\f[CR]userPtr\f[R] argument) for a device
(\f[CR]device\f[R] argument), which is called whenever internal memory
is allocated or deallocated by objects of that device.
Using this memory monitor callback mechanism, the application can track
the memory consumption of an Embree device, and optionally terminate API
calls that consume too much memory.
.PP
Only a single callback function can be registered per device, and
further invocations overwrite the previously set callback function.
Passing \f[V]NULL\f[R] as function pointer disables the registered
Passing \f[CR]NULL\f[R] as function pointer disables the registered
callback function.
.PP
Once registered, the Embree device will invoke the memory monitor
callback function before or after it allocates or frees important memory
blocks.
The callback function gets passed the payload as specified at
registration time (\f[V]userPtr\f[R] argument), the number of bytes
allocated or deallocated (\f[V]bytes\f[R] argument), and whether the
registration time (\f[CR]userPtr\f[R] argument), the number of bytes
allocated or deallocated (\f[CR]bytes\f[R] argument), and whether the
callback is invoked after the allocation or deallocation took place
(\f[V]post\f[R] argument).
(\f[CR]post\f[R] argument).
The callback function might get called from multiple threads
concurrently.
.PP
The application can track the current memory usage of the Embree device
by atomically accumulating the \f[V]bytes\f[R] input parameter provided
by atomically accumulating the \f[CR]bytes\f[R] input parameter provided
to the callback function.
This parameter will be >0 for allocations and <0 for deallocations.
.PP
Embree will continue its operation normally when returning
\f[V]true\f[R] from the callback function.
If \f[V]false\f[R] is returned, Embree will cancel the current operation
with the \f[V]RTC_ERROR_OUT_OF_MEMORY\f[R] error code.
\f[CR]true\f[R] from the callback function.
If \f[CR]false\f[R] is returned, Embree will cancel the current
operation with the \f[CR]RTC_ERROR_OUT_OF_MEMORY\f[R] error code.
Issuing multiple cancel requests from different threads is allowed.
Canceling will only happen when the callback was called for allocations
(bytes > 0), otherwise the cancel request will be ignored.
.PP
If a callback to cancel was invoked before the allocation happens
(\f[V]post == false\f[R]), then the \f[V]bytes\f[R] parameter should not
be accumulated, as the allocation will never happen.
(\f[CR]post == false\f[R]), then the \f[CR]bytes\f[R] parameter should
not be accumulated, as the allocation will never happen.
If the callback to cancel was invoked after the allocation happened
(\f[V]post == true\f[R]), then the \f[V]bytes\f[R] parameter should be
(\f[CR]post == true\f[R]), then the \f[CR]bytes\f[R] parameter should be
accumulated, as the allocation properly happened and a deallocation will
later free that data block.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewDevice]
+9 -31
View File
@@ -1,48 +1,26 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetDeviceSYCLDevice" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetDeviceSYCLDevice - sets the SYCL device to be used for memory allocations
\f[R]
.fi
.EX
rtcSetDeviceSYCLDevice \- sets the SYCL device to be used for memory allocations
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcSetDeviceSYCLDevice(RTCDevice device, const sycl::device sycl_device);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
This function sets the SYCL device (\f[V]sycl_device\f[R] argument) to
This function sets the SYCL device (\f[CR]sycl_device\f[R] argument) to
be used to allocate GPU memory when using the specified Embree device
(\f[V]device\f[R] argument).
(\f[CR]device\f[R] argument).
This SYCL device must be one of the SYCL devices contained inside the
SYCL context used to create the Embree device.
.SS EXIT STATUS
.PP
On failure an error code is set that can get queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcNewSYCLDevice]
+25 -47
View File
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetGeometryBoundsFunction" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetGeometryBoundsFunction - sets a callback to query the
bounding box of user-defined primitives
\f[R]
.fi
.EX
rtcSetGeometryBoundsFunction \- sets a callback to query the
bounding box of user\-defined primitives
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCBoundsFunctionArguments
@@ -47,46 +29,42 @@ void rtcSetGeometryBoundsFunction(
RTCBoundsFunction bounds,
void* userPtr
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcSetGeometryBoundsFunction\f[R] function registers a bounding
box callback function (\f[V]bounds\f[R] argument) with payload
(\f[V]userPtr\f[R] argument) for the specified user geometry
(\f[V]geometry\f[R] argument).
The \f[CR]rtcSetGeometryBoundsFunction\f[R] function registers a
bounding box callback function (\f[CR]bounds\f[R] argument) with payload
(\f[CR]userPtr\f[R] argument) for the specified user geometry
(\f[CR]geometry\f[R] argument).
.PP
Only a single callback function can be registered per geometry, and
further invocations overwrite the previously set callback function.
Passing \f[V]NULL\f[R] as function pointer disables the registered
Passing \f[CR]NULL\f[R] as function pointer disables the registered
callback function.
.PP
In SYCL mode the BVH construction is done on the host and the passed
function pointer must be a host-side function pointer.
function pointer must be a host\-side function pointer.
.PP
The registered bounding box callback function is invoked to calculate
axis-aligned bounding boxes of the primitives of the user-defined
axis\-aligned bounding boxes of the primitives of the user\-defined
geometry during spatial acceleration structure construction.
The bounding box callback of \f[V]RTCBoundsFunction\f[R] type is invoked
with a pointer to a structure of type
\f[V]RTCBoundsFunctionArguments\f[R] which contains various arguments,
such as: the user data of the geometry (\f[V]geometryUserPtr\f[R]
The bounding box callback of \f[CR]RTCBoundsFunction\f[R] type is
invoked with a pointer to a structure of type
\f[CR]RTCBoundsFunctionArguments\f[R] which contains various arguments,
such as: the user data of the geometry (\f[CR]geometryUserPtr\f[R]
member), the ID of the primitive to calculate the bounds for
(\f[V]primID\f[R] member), the time step at which to calculate the
bounds (\f[V]timeStep\f[R] member), and a memory location to write the
calculated bound to (\f[V]bounds_o\f[R] member).
(\f[CR]primID\f[R] member), the time step at which to calculate the
bounds (\f[CR]timeStep\f[R] member), and a memory location to write the
calculated bound to (\f[CR]bounds_o\f[R] member).
.PP
In a typical usage scenario one would store a pointer to the internal
representation of the user geometry object using
\f[V]rtcSetGeometryUserData\f[R].
\f[CR]rtcSetGeometryUserData\f[R].
The callback function can then read that pointer from the
\f[V]geometryUserPtr\f[R] field and calculate the proper bounding box
\f[CR]geometryUserPtr\f[R] field and calculate the proper bounding box
for the requested primitive and time, and store that bounding box to the
destination structure (\f[V]bounds_o\f[R] member).
destination structure (\f[CR]bounds_o\f[R] member).
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[RTC_GEOMETRY_TYPE_USER]
+18 -40
View File
@@ -1,32 +1,14 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetGeometryBuffer" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetGeometryBuffer - assigns a view of a buffer to the geometry
\f[R]
.fi
.EX
rtcSetGeometryBuffer \- assigns a view of a buffer to the geometry
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcSetGeometryBuffer(
@@ -39,31 +21,27 @@ void rtcSetGeometryBuffer(
size_t byteStride,
size_t itemCount
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcSetGeometryBuffer\f[R] function binds a view of a buffer
object (\f[V]buffer\f[R] argument) to a geometry buffer type and slot
(\f[V]type\f[R] and \f[V]slot\f[R] argument) of the specified geometry
(\f[V]geometry\f[R] argument).
The \f[CR]rtcSetGeometryBuffer\f[R] function binds a view of a buffer
object (\f[CR]buffer\f[R] argument) to a geometry buffer type and slot
(\f[CR]type\f[R] and \f[CR]slot\f[R] argument) of the specified geometry
(\f[CR]geometry\f[R] argument).
.PP
One can specify the start of the first buffer element in bytes
(\f[V]byteOffset\f[R] argument), the byte stride between individual
buffer elements (\f[V]byteStride\f[R] argument), the format of the
buffer elements (\f[V]format\f[R] argument), and the number of elements
to bind (\f[V]itemCount\f[R]).
(\f[CR]byteOffset\f[R] argument), the byte stride between individual
buffer elements (\f[CR]byteStride\f[R] argument), the format of the
buffer elements (\f[CR]format\f[R] argument), and the number of elements
to bind (\f[CR]itemCount\f[R]).
.PP
The start address (\f[V]byteOffset\f[R] argument) and stride
(\f[V]byteStride\f[R] argument) must be both aligned to 4 bytes,
otherwise the \f[V]rtcSetGeometryBuffer\f[R] function will fail.
The start address (\f[CR]byteOffset\f[R] argument) and stride
(\f[CR]byteStride\f[R] argument) must be both aligned to 4 bytes,
otherwise the \f[CR]rtcSetGeometryBuffer\f[R] function will fail.
.PP
After successful completion of this function, the geometry will hold a
reference to the buffer object.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetSharedGeometryBuffer], [rtcSetNewGeometryBuffer]
+22 -44
View File
@@ -1,70 +1,48 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetGeometryBuildQuality" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetGeometryBuildQuality - sets the build quality for the geometry
\f[R]
.fi
.EX
rtcSetGeometryBuildQuality \- sets the build quality for the geometry
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
void rtcSetGeometryBuildQuality(
RTCGeometry geometry,
enum RTCBuildQuality quality
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcSetGeometryBuildQuality\f[R] function sets the build quality
(\f[V]quality\f[R] argument) for the specified geometry
(\f[V]geometry\f[R] argument).
The per-geometry build quality is only a hint and may be ignored.
Embree currently uses the per-geometry build quality when the scene
build quality is set to \f[V]RTC_BUILD_QUALITY_LOW\f[R].
In this mode a two-level acceleration structure is build, and geometries
build a separate acceleration structure using the geometry build
quality.
The per-geometry build quality can be one of:
The \f[CR]rtcSetGeometryBuildQuality\f[R] function sets the build
quality (\f[CR]quality\f[R] argument) for the specified geometry
(\f[CR]geometry\f[R] argument).
The per\-geometry build quality is only a hint and may be ignored.
Embree currently uses the per\-geometry build quality when the scene
build quality is set to \f[CR]RTC_BUILD_QUALITY_LOW\f[R].
In this mode a two\-level acceleration structure is build, and
geometries build a separate acceleration structure using the geometry
build quality.
The per\-geometry build quality can be one of:
.IP \[bu] 2
\f[V]RTC_BUILD_QUALITY_LOW\f[R]: Creates lower quality data structures,
\f[CR]RTC_BUILD_QUALITY_LOW\f[R]: Creates lower quality data structures,
e.g.\ for dynamic scenes.
.IP \[bu] 2
\f[V]RTC_BUILD_QUALITY_MEDIUM\f[R]: Default build quality for most
\f[CR]RTC_BUILD_QUALITY_MEDIUM\f[R]: Default build quality for most
usages.
Gives a good compromise between build and render performance.
.IP \[bu] 2
\f[V]RTC_BUILD_QUALITY_HIGH\f[R]: Creates higher quality data structures
for final-frame rendering.
\f[CR]RTC_BUILD_QUALITY_HIGH\f[R]: Creates higher quality data
structures for final\-frame rendering.
Enables a spatial split builder for certain primitive types.
.IP \[bu] 2
\f[V]RTC_BUILD_QUALITY_REFIT\f[R]: Uses a BVH refitting approach when
\f[CR]RTC_BUILD_QUALITY_REFIT\f[R]: Uses a BVH refitting approach when
changing only the vertex buffer.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[rtcSetSceneBuildQuality]
@@ -1,33 +1,15 @@
.\" Automatically generated by Pandoc 3.1.3
.\" Automatically generated by Pandoc 3.1.11.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "rtcSetGeometryDisplacementFunction" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcSetGeometryDisplacementFunction - sets the displacement function
.EX
rtcSetGeometryDisplacementFunction \- sets the displacement function
for a subdivision geometry
\f[R]
.fi
.EE
.SS SYNOPSIS
.IP
.nf
\f[C]
.EX
#include <embree4/rtcore.h>
struct RTCDisplacementFunctionNArguments
@@ -55,42 +37,42 @@ void rtcSetGeometryDisplacementFunction(
RTCGeometry geometry,
RTCDisplacementFunctionN displacement
);
\f[R]
.fi
.EE
.SS DESCRIPTION
.PP
The \f[V]rtcSetGeometryDisplacementFunction\f[R] function registers a
displacement callback function (\f[V]displacement\f[R] argument) for the
specified subdivision geometry (\f[V]geometry\f[R] argument).
The \f[CR]rtcSetGeometryDisplacementFunction\f[R] function registers a
displacement callback function (\f[CR]displacement\f[R] argument) for
the specified subdivision geometry (\f[CR]geometry\f[R] argument).
.PP
Only a single callback function can be registered per geometry, and
further invocations overwrite the previously set callback function.
Passing \f[V]NULL\f[R] as function pointer disables the registered
Passing \f[CR]NULL\f[R] as function pointer disables the registered
callback function.
.PP
The registered displacement callback function is invoked to displace
points on the subdivision geometry during spatial acceleration structure
construction, during the \f[V]rtcCommitScene\f[R] call.
construction, during the \f[CR]rtcCommitScene\f[R] call.
.PP
The callback function of type \f[V]RTCDisplacementFunctionN\f[R] is
The callback function of type \f[CR]RTCDisplacementFunctionN\f[R] is
invoked with a number of arguments stored inside the
\f[V]RTCDisplacementFunctionNArguments\f[R] structure.
\f[CR]RTCDisplacementFunctionNArguments\f[R] structure.
The provided user data pointer of the geometry
(\f[V]geometryUserPtr\f[R] member) can be used to point to the
(\f[CR]geometryUserPtr\f[R] member) can be used to point to the
application\[cq]s representation of the subdivision mesh.
A number \f[V]N\f[R] of points to displace are specified in a structure
A number \f[CR]N\f[R] of points to displace are specified in a structure
of array layout.
For each point to displace, the local patch UV coordinates (\f[V]u\f[R]
and \f[V]v\f[R] arrays), the normalized geometry normal (\f[V]Ng_x\f[R],
\f[V]Ng_y\f[R], and \f[V]Ng_z\f[R] arrays), and the position
(\f[V]P_x\f[R], \f[V]P_y\f[R], and \f[V]P_z\f[R] arrays) are provided.
For each point to displace, the local patch UV coordinates (\f[CR]u\f[R]
and \f[CR]v\f[R] arrays), the normalized geometry normal
(\f[CR]Ng_x\f[R], \f[CR]Ng_y\f[R], and \f[CR]Ng_z\f[R] arrays), and the
position (\f[CR]P_x\f[R], \f[CR]P_y\f[R], and \f[CR]P_z\f[R] arrays) are
provided.
The task of the displacement function is to use this information and
change the position data.
.PP
The geometry handle (\f[V]geometry\f[R] member) and primitive ID
(\f[V]primID\f[R] member) of the patch to displace are additionally
provided as well as the time step \f[V]timeStep\f[R], which can be
important if the displacement is time-dependent and motion blur is used.
The geometry handle (\f[CR]geometry\f[R] member) and primitive ID
(\f[CR]primID\f[R] member) of the patch to displace are additionally
provided as well as the time step \f[CR]timeStep\f[R], which can be
important if the displacement is time\-dependent and motion blur is
used.
.PP
All passed arrays must be aligned to 64 bytes and properly padded to
make wide vector processing inside the displacement function easily
@@ -99,9 +81,7 @@ possible.
Also see tutorial [Displacement Geometry] for an example of how to use
the displacement mapping functions.
.SS EXIT STATUS
.PP
On failure an error code is set that can be queried using
\f[V]rtcGetDeviceError\f[R].
\f[CR]rtcGetDeviceError\f[R].
.SS SEE ALSO
.PP
[RTC_GEOMETRY_TYPE_SUBDIVISION]

Some files were not shown because too many files have changed in this diff Show More