Updated documentation to 4.4.1
This commit is contained in:
committed by
Stefan Werner
parent
068d90f6c8
commit
a0e08eba6e
+1
-1
@@ -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`).
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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]
|
||||
|
||||
@@ -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
@@ -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
@@ -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]
|
||||
|
||||
@@ -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
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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].
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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],
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user