1rtcIntersect4/8/16(3) Embree Ray Tracing Kernels 3 rtcIntersect4/8/16(3)
2
3
4
5 NAME
6 rtcIntersect4/8/16 - finds the closest hits for a ray packet
7
8 SYNOPSIS
9 #include <embree3/rtcore.h>
10
11 void rtcIntersect4(
12 const int* valid,
13 RTCScene scene,
14 struct RTCIntersectContext* context,
15 struct RTCRayHit4* rayhit
16 );
17
18 void rtcIntersect8(
19 const int* valid,
20 RTCScene scene,
21 struct RTCIntersectContext* context,
22 struct RTCRayHit8* rayhit
23 );
24
25 void rtcIntersect16(
26 const int* valid,
27 RTCScene scene,
28 struct RTCIntersectContext* context,
29 struct RTCRayHit16* rayhit
30 );
31
32 DESCRIPTION
33 The rtcIntersect4/8/16 functions finds the closest hits for a ray
34 packet of size 4, 8, or 16 (rayhit argument) with the scene (scene
35 argument). The ray/hit input contains a ray packet and hit packet.
36 See Section [rtcIntersect1] for a description of how to set up and
37 trace rays.
38
39 A ray valid mask must be provided (valid argument) which stores one
40 32-bit integer (-1 means valid and 0 invalid) per ray in the packet.
41 Only active rays are processed, and hit data of inactive rays is not
42 changed.
43
44 The implementation of these functions is guaranteed to invoke callback
45 functions always with the same ray packet size and ordering of rays as
46 specified initially.
47
48 For rtcIntersect4 the ray packet must be aligned to 16 bytes, for
49 rtcIntersect8 the alignment must be 32 bytes, and for rtcIntersect16
50 the alignment must be 64 bytes.
51
52 Further, rtcIntersect4 is only available when Embree was compiled with
53 EMBREE_RAY_PACKETS turned on in CMake (which is the default). Further,
54 the rtcIntersect8 function works only if Embree was compiled with AVX
55 or AVX2, and if the CPU it is running on supports the enabled ISA.
56 Similar, the rtcIntersect16 function works only if Embree was compiled
57 with AVX512SKX or AVX512KNL and the CPU it is running on supports the
58 enabled ISA. For this reason, use these functions only after checking
59 whether they are available by using an rtcGetDeviceParameter query.
60
61 EXIT STATUS
62 For performance reasons this function does not do any error checks,
63 thus will not set any error flags on failure.
64
65 SEE ALSO
66 [rtcOccluded4/8/16]
67
68
69
70 rtcIntersect4/8/16(3)