.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "rtcInitOccludedArguments" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
rtcInitOccludedArguments - initializes the occluded arguments struct
\f[R]
.fi
.SS SYNOPSIS
.IP
.nf
\f[C]
#include <embree4/rtcore.h>

enum RTCRayQueryFlags
{
  RTC_RAY_QUERY_FLAG_NONE,
  RTC_RAY_QUERY_FLAG_INCOHERENT,
  RTC_RAY_QUERY_FLAG_COHERENT,
  RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER
};

struct RTCOccludedArguments
{
  enum RTCRayQueryFlags flags;
  enum RTCFeatureFlags feature_mask;
  struct RTCRayQueryContext* context;
  RTCFilterFunctionN filter;
  RTCOccludedFunctionN intersect;
#if RTC_MIN_WIDTH
  float minWidthDistanceFactor;
#endif
};

void rtcInitOccludedArguments(
  struct RTCOccludedArguments* args
);
\f[R]
.fi
.SS DESCRIPTION
.PP
The \f[C]rtcInitOccludedArguments\f[R] function initializes the optional
argument struct that can get passed to the \f[C]rtcOccluded1/4/8/16\f[R]
functions to default values.
The arguments struct needs to get used for more advanced Embree features
as described here.
.PP
The \f[C]flags\f[R] member can get used to enable special traversal
mode.
Using the \f[C]RTC_RAY_QUERY_FLAG_INCOHERENT\f[R] flag uses an optimized
traversal algorithm for incoherent rays (default), while
\f[C]RTC_RAY_QUERY_FLAG_COHERENT\f[R] uses an optimized traversal
algorithm for coherent rays (e.g.\ primary camera rays).
.PP
The \f[C]feature_mask\f[R] member should get used in SYCL to just enable
ray tracing features required to render a given scene.
Please see section [RTCFeatureFlags] for a more detailed description.
.PP
The \f[C]context\f[R] member can get used to pass an optional
intersection context.
It is guaranteed that the pointer to the context passed to a ray query
is directly passed to all callback functions.
This way it is possible to attach arbitrary data to the end of the
context, such as a per-ray payload.
Please note that the ray pointer is not guaranteed to be passed to the
callback functions, thus reading additional data from the ray pointer
passed to callbacks is not possible.
See section [rtcInitRayQueryContext] for more details.
.PP
The \f[C]filter\f[R] member specifies a filter function to invoked for
each encountered hit.
The support for the argument filter function must be enabled for a scene
by using the \f[C]RTC_SCENE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS\f[R] scene
flag.
In case of instancing this feature has to get enabled also for each
instantiated scene.
.PP
The argument filter function is invoked for each geometry for which it
got explicitely enabled using the
\f[C]rtcSetGeometryEnableFilterFunctionFromArguments\f[R] function.
The invokation of the argument filter function can also get enfored for
each geometry using the
\f[C]RTC_RAY_QUERY_FLAG_INVOKE_ARGUMENT_FILTER\f[R] ray query flag.
This argument filter function is invoked as a second filter stage after
the per-geometry filter function is invoked.
Only rays that passed the first filter stage are valid in this second
filter stage.
Having such a per ray-query filter function can be useful to implement
modifications of the behavior of the query, such as collecting all hits
or accumulating transparencies.
.PP
The \f[C]intersect\f[R] member specifies the user geometry callback to
get invoked for each user geometry encountered during traversal.
The user geometry callback specified this way has preference over the
one specified inside the geometry.
.PP
The \f[C]minWidthDistanceFactor\f[R] value controls the target size of
the curve radii when the min-width feature is enabled.
Please see the [rtcSetGeometryMaxRadiusScale] function for more details
on the min-width feature.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcOccluded1], [rtcOccluded4/8/16], [RTCFeatureFlags],
[rtcInitRayQueryContext], [RTC_GEOMETRY_TYPE_USER],
[rtcSetGeometryMaxRadiusScale]
