rtcIntersect4.3embree3 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. .TH "rtcIntersect4/8/16" "3" "" "" "Embree Ray Tracing Kernels 3"
  2. .SS NAME
  3. .IP
  4. .nf
  5. \f[C]
  6. rtcIntersect4/8/16\ \-\ finds\ the\ closest\ hits\ for\ a\ ray\ packet
  7. \f[]
  8. .fi
  9. .SS SYNOPSIS
  10. .IP
  11. .nf
  12. \f[C]
  13. #include\ <embree3/rtcore.h>
  14. void\ rtcIntersect4(
  15. \ \ const\ int*\ valid,
  16. \ \ RTCScene\ scene,
  17. \ \ struct\ RTCIntersectContext*\ context,
  18. \ \ struct\ RTCRayHit4*\ rayhit
  19. );
  20. void\ rtcIntersect8(
  21. \ \ const\ int*\ valid,
  22. \ \ RTCScene\ scene,
  23. \ \ struct\ RTCIntersectContext*\ context,
  24. \ \ struct\ RTCRayHit8*\ rayhit
  25. );
  26. void\ rtcIntersect16(
  27. \ \ const\ int*\ valid,
  28. \ \ RTCScene\ scene,
  29. \ \ struct\ RTCIntersectContext*\ context,
  30. \ \ struct\ RTCRayHit16*\ rayhit
  31. );
  32. \f[]
  33. .fi
  34. .SS DESCRIPTION
  35. .PP
  36. The \f[C]rtcIntersect4/8/16\f[] functions finds the closest hits for a
  37. ray packet of size 4, 8, or 16 (\f[C]rayhit\f[] argument) with the scene
  38. (\f[C]scene\f[] argument).
  39. The ray/hit input contains a ray packet and hit packet.
  40. See Section [rtcIntersect1] for a description of how to set up and trace
  41. rays.
  42. .PP
  43. A ray valid mask must be provided (\f[C]valid\f[] argument) which stores
  44. one 32\-bit integer (\f[C]\-1\f[] means valid and \f[C]0\f[] invalid)
  45. per ray in the packet.
  46. Only active rays are processed, and hit data of inactive rays is not
  47. changed.
  48. .IP
  49. .nf
  50. \f[C]
  51. \f[]
  52. .fi
  53. .IP
  54. .nf
  55. \f[C]
  56. \f[]
  57. .fi
  58. .PP
  59. The implementation of these functions is guaranteed to invoke callback
  60. functions always with the same ray packet size and ordering of rays as
  61. specified initially.
  62. .PP
  63. For \f[C]rtcIntersect4\f[] the ray packet must be aligned to 16 bytes,
  64. for \f[C]rtcIntersect8\f[] the alignment must be 32 bytes, and for
  65. \f[C]rtcIntersect16\f[] the alignment must be 64 bytes.
  66. .PP
  67. The \f[C]rtcIntersect4\f[], \f[C]rtcIntersect8\f[] and
  68. \f[C]rtcIntersect16\f[] functions may change the ray packet size and ray
  69. order when calling back into intersect filter functions or user geometry
  70. callbacks.
  71. Under some conditions the application can assume packets to stay intakt,
  72. which can determined by querying the
  73. \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[],
  74. \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[],
  75. \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[] properties through
  76. the \f[C]rtcGetDeviceProperty\f[] function.
  77. See [rtcGetDeviceProperty] for more information.
  78. .SS EXIT STATUS
  79. .PP
  80. For performance reasons this function does not do any error checks, thus
  81. will not set any error flags on failure.
  82. .SS SEE ALSO
  83. .PP
  84. [rtcOccluded4/8/16]