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)
Impressum