rtcOccluded4.3embree3 2.3 KB

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