rtcOccludedNM(3)

πŸ“¦
version 3.13.5 Β· 2 versions
, in debian bookworm

hey bestie πŸ’– you're looking at rtcOccludedNM(3), from Embree Ray Tracing Kernels 3. Let's get into it.

✨ NAME ✨

rtcOccludedNM β€” finds any hits for a stream of M ray packets of size N. That's the whole mission, no cap.

🌈 SYNOPSIS 🌈

#include <embree3/rtcore.h>

void rtcOccludedNM(
  RTCScene scene,
  struct RTCIntersectContext* context,
  struct RTCRayN* ray,
  unsigned int N,
  unsigned int M,
  size_t byteStride
);

πŸ’… DESCRIPTION πŸ’…

Okay so rtcOccludedNM checks whether there are any hits for a stream of M ray packets β€” that's the ray argument β€” of size N, with the scene argument. It's giving "occlusion rays, but make it a whole packet stream" energy. πŸ”₯

The ray argument points to an array of ray packets, and there's a specified byte stride between the ray packets β€” that's the byteStride argument. So yes, byteStride is literally the stride in bytes between those packets. πŸ’…

If you need the full rundown on how to set up and trace occlusion rays, see Section [rtcOccluded1] β€” that's where the description lives. 🫢

A ray in a ray stream is considered inactive if its tnear value is larger than its tfar value. That's the vibe check for inactive rays.

The packet size N must be larger than 0, and the stream size M can be an arbitrary positive integer including 0. Each ray must be aligned to 16 bytes. Periodt. ✨

🚨 EXIT STATUS 🚨

For performance reasons, this function does not do any error checks, thus will not set any error flags on failure. So if something goes wrong, it's not going to raise a flag about it β€” it's just not that kind of function. πŸ’€

πŸ‘€ SEE ALSO πŸ‘€

  • [rtcIntersectNM] β€” go read that one too, bestie. πŸ’–

bye bestie 🫢 β€” this has been rtcOccludedNM(3) from Embree Ray Tracing Kernels 3, and the footer is just rtcOccludedNM(3). No date on this page, so no fake date energy from me. periodt πŸ’…

πŸ“¦ where this page comes from