1RTCFeatureFlags(3)       Embree Ray Tracing Kernels 4       RTCFeatureFlags(3)
2
3
4
5   NAME
6              RTCFeatureFlags - specifies features to enable
7                for ray queries
8
9   SYNOPSIS
10              #include <embree4/rtcore_ray.h>
11
12              enum RTCFeatureFlags
13              {
14                RTC_FEATURE_FLAG_NONE = 0,
15
16                RTC_FEATURE_FLAG_MOTION_BLUR = 1 << 0,
17
18                RTC_FEATURE_FLAG_TRIANGLE = 1 << 1,
19                RTC_FEATURE_FLAG_QUAD = 1 << 2,
20                RTC_FEATURE_FLAG_GRID = 1 << 3,
21                RTC_FEATURE_FLAG_SUBDIVISION = 1 << 4,
22                RTC_FEATURE_FLAG_POINT = ... ,
23                RTC_FEATURE_FLAG_CURVES = ... ,
24
25                RTC_FEATURE_FLAG_CONE_LINEAR_CURVE = 1 << 5,
26                RTC_FEATURE_FLAG_ROUND_LINEAR_CURVE  = 1 << 6,
27                RTC_FEATURE_FLAG_FLAT_LINEAR_CURVE = 1 << 7,
28
29                RTC_FEATURE_FLAG_ROUND_BEZIER_CURVE = 1 << 8,
30                RTC_FEATURE_FLAG_FLAT_BEZIER_CURVE = 1 << 9,
31                RTC_FEATURE_FLAG_NORMAL_ORIENTED_BEZIER_CURVE = 1 << 10,
32
33                RTC_FEATURE_FLAG_ROUND_BSPLINE_CURVE = 1 << 11,
34                RTC_FEATURE_FLAG_FLAT_BSPLINE_CURVE = 1 << 12,
35                RTC_FEATURE_FLAG_NORMAL_ORIENTED_BSPLINE_CURVE = 1 << 13,
36
37                RTC_FEATURE_FLAG_ROUND_HERMITE_CURVE = 1 << 14,
38                RTC_FEATURE_FLAG_FLAT_HERMITE_CURVE = 1 << 15,
39                RTC_FEATURE_FLAG_NORMAL_ORIENTED_HERMITE_CURVE = 1 << 16,
40
41                RTC_FEATURE_FLAG_ROUND_CATMULL_ROM_CURVE = 1 << 17,
42                RTC_FEATURE_FLAG_FLAT_CATMULL_ROM_CURVE = 1 << 18,
43                RTC_FEATURE_FLAG_NORMAL_ORIENTED_CATMULL_ROM_CURVE = 1 << 19,
44
45                RTC_FEATURE_FLAG_SPHERE_POINT = 1 << 20,
46                RTC_FEATURE_FLAG_DISC_POINT = 1 << 21,
47                RTC_FEATURE_FLAG_ORIENTED_DISC_POINT = 1 << 22,
48
49                RTC_FEATURE_FLAG_ROUND_CURVES = ... ,
50                RTC_FEATURE_FLAG_FLAT_CURVES = ... ,
51                RTC_FEATURE_FLAG_NORMAL_ORIENTED_CURVES = ... ,
52
53                RTC_FEATURE_FLAG_LINEAR_CURVES = ... ,
54                RTC_FEATURE_FLAG_BEZIER_CURVES = ... ,
55                RTC_FEATURE_FLAG_BSPLINE_CURVES = ... ,
56                RTC_FEATURE_FLAG_HERMITE_CURVES = ... ,
57
58                RTC_FEATURE_FLAG_INSTANCE = 1 << 23,
59
60                RTC_FEATURE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS = 1 << 24,
61                RTC_FEATURE_FLAG_FILTER_FUNCTION_IN_GEOMETRY = 1 << 25,
62                RTC_FEATURE_FLAG_FILTER_FUNCTION = ... ,
63
64                RTC_FEATURE_FLAG_USER_GEOMETRY_CALLBACK_IN_ARGUMENTS = 1 << 26,
65                RTC_FEATURE_FLAG_USER_GEOMETRY_CALLBACK_IN_GEOMETRY = 1 << 27,
66                RTC_FEATURE_FLAG_USER_GEOMETRY = ... ,
67
68                RTC_FEATURE_FLAG_32_BIT_RAY_MASK = 1 << 28,
69
70                RTC_FEATURE_FLAG_ALL = 0xffffffff
71              };
72
73   DESCRIPTION
74       The  RTCFeatureFlags  enum  specify  a  bit mask to enable specific ray
75       tracing features for ray  query  operations.   The  feature  flags  are
76       passed  to  the  rtcIntersect1/4/8/16 and rtcOccluded1/4/8/16 functions
77       through the RTCIntersectArguments and RTCOccludedArguments  structures.
78       Only a ray tracing feature whose bit is enabled in the feature mask can
79       get used.  If a feature bit is not set,  the  behaviour  is  undefined,
80       thus  the feature may work or not.  To enable multiple features the re‐
81       spective features have to get combined using a bitwise OR operation.
82
83       The purpose of feature flags is to reduce code size on the GPU  by  en‐
84       abling  just  the  features  required  to render the scene.  On the CPU
85       there is no need to use feature flags, and the default of all  features
86       enabled (RTC_FEATURE_FLAG_ALL) can just be kept.
87
88       The following features can get enabled using feature flags:
89
90       • RTC_FEATURE_FLAG_MOTION_BLUR:  Enables  motion  blur for all geometry
91         types.
92
93       • RTC_FEATURE_FLAG_TRIANGLE: Enables  triangle  geometries  (RTC_GEOME‐
94         TRY_TYPE_TRIANGLE).
95
96       • RTC_FEATURE_FLAG_QUAD:    Enables    quad    geometries   (RTC_GEOME‐
97         TRY_TYPE_QUAD).
98
99       • RTC_FEATURE_FLAG_GRID:   Enables    grid    geometries    (RTC_GEOME‐
100         TRY_TYPE_GRID).
101
102       • RTC_FEATURE_FLAG_SUBDIVISION: Enables subdivision geometries (RTC_GE‐
103         OMETRY_TYPE_SUBDIVISION).
104
105       • RTC_FEATURE_FLAG_POINT: Enables all point geometry types  (RTC_GEOME‐
106         TRY_TYPE_XXX_POINT)
107
108       • RTC_FEATURE_FLAG_CURVES: Enables all curve geometry types (RTC_GEOME‐
109         TRY_TYPE_XXX_YYY_CURVE)
110
111       • RTC_FEATURE_FLAG_ROUND_CURVES: Enables all round  curves  (RTC_GEOME‐
112         TRY_TYPE_ROUND_XXX_CURVE).
113
114       • RTC_FEATURE_FLAG_FLAT_CURVES:  Enables  all  flat  curves (RTC_GEOME‐
115         TRY_TYPE_FLAT_XXX_CURVE).
116
117       • RTC_FEATURE_FLAG_NORMAL_ORIENTED_CURVES: Enables all normal  oriented
118         curves (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_XXX_CURVE).
119
120       • RTC_FEATURE_FLAG_LINEAR_CURVES: Enables all linear curves (RTC_GEOME‐
121         TRY_TYPE_XXX_LINEAR_CURVE).
122
123       • RTC_FEATURE_FLAG_BEZIER_CURVES: Enables all Bézier curves (RTC_GEOME‐
124         TRY_TYPE_XXX_BEZIER_CURVE).
125
126       • RTC_FEATURE_FLAG_BSPLINE_CURVES: Enables all B-spline curves (RTC_GE‐
127         OMETRY_TYPE_XXX_BSPLINE_CURVE).
128
129       • RTC_FEATURE_FLAG_HERMITE_CURVES: Enables all Hermite curves  (RTC_GE‐
130         OMETRY_TYPE_XXX_HERMITE_CURVE).
131
132       • RTC_FEATURE_FLAG_CONE_LINEAR_CURVE:   Enables   cone   geometry  type
133         (RTC_GEOMETRY_TYPE_CONE_LINEAR_CURVE).
134
135       • RTC_FEATURE_FLAG_ROUND_LINEAR_CURVE:  Enables  round  linear   curves
136         (RTC_GEOMETRY_TYPE_ROUND_LINEAR_CURVE).
137
138       • RTC_FEATURE_FLAG_FLAT_LINEAR_CURVE:   Enables   flat   linear  curves
139         (RTC_GEOMETRY_TYPE_FLAT_LINEAR_CURVE).
140
141       • RTC_FEATURE_FLAG_ROUND_BEZIER_CURVE:  Enables  round  Bézier   curves
142         (RTC_GEOMETRY_TYPE_ROUND_BEZIER_CURVE).
143
144       • RTC_FEATURE_FLAG_FLAT_BEZIER_CURVE:   Enables   flat   Bézier  curves
145         (RTC_GEOMETRY_TYPE_FLAT_BEZIER_CURVE).
146
147       • RTC_FEATURE_FLAG_NORMAL_ORIENTED_BEZIER_CURVE: Enables normal orient‐
148         ed Bézier curves (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_BEZIER_CURVE).
149
150       • RTC_FEATURE_FLAG_ROUND_BSPLINE_CURVE:  Enables  round B-spline curves
151         (RTC_GEOMETRY_TYPE_ROUND_BSPLINE_CURVE).
152
153       • RTC_FEATURE_FLAG_FLAT_BSPLINE_CURVE:  Enables  flat  B-spline  curves
154         (RTC_GEOMETRY_TYPE_FLAT_BSPLINE_CURVE).
155
156       • RTC_FEATURE_FLAG_NORMAL_ORIENTED_BSPLINE_CURVE:  Enables  normal ori‐
157         ented     B-spline      curves      (RTC_GEOMETRY_TYPE_NORMAL_ORIENT‐
158         ED_BSPLINE_CURVE).
159
160       • RTC_FEATURE_FLAG_ROUND_HERMITE_CURVE:  Enables  round  Hermite curves
161         (RTC_GEOMETRY_TYPE_ROUND_HERMITE_CURVE).
162
163       • RTC_FEATURE_FLAG_FLAT_HERMITE_CURVE:  Enables  flat  Hermite   curves
164         (RTC_GEOMETRY_TYPE_FLAT_HERMITE_CURVE).
165
166       • RTC_FEATURE_FLAG_NORMAL_ORIENTED_HERMITE_CURVE:  Enables  normal ori‐
167         ented    Hermite    curves    (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_HER‐
168         MITE_CURVE).
169
170       • RTC_FEATURE_FLAG_ROUND_CATMULL_ROM_CURVE:  Enables  round Catmull Rom
171         curves (RTC_GEOMETRY_TYPE_ROUND_CATMULL_ROM_CURVE).
172
173       • RTC_FEATURE_FLAG_FLAT_CATMULL_ROM_CURVE:  Enables  flat  Catmull  Rom
174         curves (RTC_GEOMETRY_TYPE_FLAT_CATMULL_ROM_CURVE).
175
176       • RTC_FEATURE_FLAG_NORMAL_ORIENTED_CATMULL_ROM_CURVE:   Enables  normal
177         oriented Catmull Rom  curves  (RTC_GEOMETRY_TYPE_NORMAL_ORIENTED_CAT‐
178         MULL_ROM_CURVE).
179
180       • RTC_FEATURE_FLAG_SPHERE_POINT:  Enables sphere geometry type (RTC_GE‐
181         OMETRY_TYPE_SPHERE_POINT).
182
183       • RTC_FEATURE_FLAG_DISC_POINT: Enables disc geometry  type  (RTC_GEOME‐
184         TRY_TYPE_DISC_POINT).
185
186       • RTC_FEATURE_FLAG_ORIENTED_DISC_POINT:  Enables oriented disc geometry
187         types (RTC_GEOMETRY_TYPE_ORIENTED_DISC_POINT).
188
189       • RTC_FEATURE_FLAG_INSTANCE: Enables  instance  geometries  (RTC_GEOME‐
190         TRY_TYPE_INSTANCE).
191
192       • RTC_FEATURE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS:  Enables  filter func‐
193         tions passed through intersect arguments.
194
195       • RTC_FEATURE_FLAG_FILTER_FUNCTION_IN_GEOMETRY: Enable filter functions
196         passed through geometry.
197
198       • RTC_FEATURE_FLAG_FILTER_FUNCTION:  Enables filter functions (argument
199         and geometry version).
200
201       • RTC_FEATURE_FLAG_USER_GEOMETRY_CALLBACK_IN_ARGUMENTS: Enables RTC_GE‐
202         OMETRY_TYPE_USER with function pointer passed through intersect argu‐
203         ments.
204
205       • RTC_FEATURE_FLAG_USER_GEOMETRY_CALLBACK_IN_GEOMETRY: Enables  RTC_GE‐
206         OMETRY_TYPE_USER  with  function  pointer passed through geometry ob‐
207         ject.
208
209       • RTC_FEATURE_FLAG_USER_GEOMETRY: Enables RTC_GEOMETRY_TYPE_USER geome‐
210         tries (both argument and geometry callback versions).
211
212       • RTC_FEATURE_FLAG_32_BIT_RAY_MASK:  Enables full 32 bit ray masks.  If
213         not used, only the lower 7 bits in the ray mask are handled  correct‐
214         ly.
215
216       • RTC_FEATURE_FLAG_ALL: Enables all features (default).
217
218   EXIT STATUS
219   SEE ALSO
220       [rtcIntersect1],   [rtcIntersect4/8/16],   [rtcOccluded1],  [rtcOcclud‐
221       ed4/8/16],
222
223
224
225                                                            RTCFeatureFlags(3)
Impressum