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)