1rtcForwardOccluded4/8/16/EExm(b3r)ee Ray Tracing KernerltscF4orwardOccluded4/8/16/Ex(3)
2
3
4
5 NAME
6 rtcForwardOccluded4/8/16/Ex - forwards a ray packet to new scene
7 from user geometry callback
8
9 SYNOPSIS
10 #include <embree4/rtcore.h>
11
12 void rtcForwardOccluded4(
13 void int* valid,
14 const struct RTCOccludedFunctionNArguments* args,
15 RTCScene scene,
16 struct RTCRay4* ray,
17 unsigned int instID
18 );
19
20 void rtcForwardOccluded8(
21 void int* valid,
22 const struct RTCOccludedFunctionNArguments* args,
23 RTCScene scene,
24 struct RTCRay8* ray,
25 unsigned int instID
26 );
27
28 void rtcForwardOccluded16(
29 void int* valid,
30 const struct RTCOccludedFunctionNArguments* args,
31 RTCScene scene,
32 struct RTCRay16* ray,
33 unsigned int instID
34 );
35
36 void rtcForwardOccluded4Ex(
37 void int* valid,
38 const struct RTCOccludedFunctionNArguments* args,
39 RTCScene scene,
40 struct RTCRay4* ray,
41 unsigned int instID,
42 unsigned int instPrimID
43 );
44
45 void rtcForwardOccluded8Ex(
46 void int* valid,
47 const struct RTCOccludedFunctionNArguments* args,
48 RTCScene scene,
49 struct RTCRay8* ray,
50 unsigned int instID,
51 unsigned int instPrimID
52 );
53
54 void rtcForwardOccluded16Ex(
55 void int* valid,
56 const struct RTCOccludedFunctionNArguments* args,
57 RTCScene scene,
58 struct RTCRay16* ray,
59 unsigned int instID,
60 unsigned int instPrimID
61 );
62
63 DESCRIPTION
64 The rtcForwardOccluded4/8/16 and rtcForwardOccluded4/8/16Ex functions
65 forward the traversal of a transformed ray packet (ray argument) into a
66 scene (scene argument) from a user geometry callback. The function can
67 only get invoked from a user geometry callback for a ray traversal ini‐
68 tiated with the rtcOccluded4/8/16 function. The callback arguments
69 structure of the callback invokation has to get passed to the ray for‐
70 warding (args argument). The user geometry callback should instantly
71 terminate after invoking the rtcForwardOccluded4/8/16/Ex function.
72
73 Only the ray origin and ray direction members of the ray argument are
74 used for forwarding, all additional ray properties are inherited from
75 the initial ray traversal invokation of rtcOccluded4/8/16.
76
77 The implementation of the rtcForwardOccluded4/8/16 function recursively
78 continues the ray traversal into the specified scene and pushes the
79 provided instance ID (instID argument) to the instance ID stack. Hit
80 information is updated into the ray structure passed to the original
81 rtcOccluded4/8/16 invokation.
82
83 This function can get used to implement user defined instancing using
84 user geometries, e.g. by transforming the ray in a special way, and/or
85 selecting between different scenes to instantiate.
86
87 For user defined instance arrays, the rtcForwardIntersect4/8/16Ex vari‐
88 ant has an additional instPrimID argument which is pushed to the in‐
89 stance primitive ID stack. Instance primitive IDs identify which in‐
90 stance of an instance array was hit.
91
92 When using Embree on the CPU it is possible to recursively invoke rt‐
93 cOccluded4/8/16 directly from a user geometry callback. However, when
94 SYCL is used, recursively tracing rays is not directly supported, and
95 the rtcForwardOccluded4/8/16 function must be used.
96
97 For rtcForwardOccluded4 the ray packet must be aligned to 16 bytes, for
98 rtcForwardOccluded8 the alignment must be 32 bytes, and for rtcForwar‐
99 dOccluded16 the alignment must be 64 bytes.
100
101 EXIT STATUS
102 For performance reasons this function does not do any error checks,
103 thus will not set any error flags on failure.
104
105 SEE ALSO
106 [rtcOccluded4/8/16]
107
108
109
110 rtcForwardOccluded4/8/16/Ex(3)