.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "RTCBufferType" "3" "" "" "Embree Ray Tracing Kernels 4"
.hy
.SS NAME
.IP
.nf
\f[C]
RTCFormat - specifies format of data in buffers
\f[R]
.fi
.SS SYNOPSIS
.IP
.nf
\f[C]
#include <embree4/rtcore_ray.h>

enum RTCBufferType
{
  RTC_BUFFER_TYPE_INDEX            = 0,
  RTC_BUFFER_TYPE_VERTEX           = 1,
  RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE = 2,
  RTC_BUFFER_TYPE_NORMAL           = 3,
  RTC_BUFFER_TYPE_TANGENT          = 4,
  RTC_BUFFER_TYPE_NORMAL_DERIVATIVE = 5,

  RTC_BUFFER_TYPE_GRID                 = 8,

  RTC_BUFFER_TYPE_FACE                 = 16,
  RTC_BUFFER_TYPE_LEVEL                = 17,
  RTC_BUFFER_TYPE_EDGE_CREASE_INDEX    = 18,
  RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT   = 19,
  RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX  = 20,
  RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT = 21,
  RTC_BUFFER_TYPE_HOLE                 = 22,
  
  RTC_BUFFER_TYPE_TRANSFORM            = 23,

  RTC_BUFFER_TYPE_FLAGS = 32
};
\f[R]
.fi
.SS DESCRIPTION
.PP
The \f[C]RTBufferType\f[R] structure defines slots to assign data
buffers to using the [rtcSetGeometryBuffer],
[rtcSetSharedGeometryBuffer], and [rtcSetNewGeometryBuffer] API calls.
.PP
For most geometry types the \f[C]RTC_BUFFER_TYPE_INDEX\f[R] slot is used
to assign an index buffer, while the \f[C]RTC_BUFFER_TYPE_VERTEX\f[R] is
used to assign the corresponding vertex buffer.
.PP
The \f[C]RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE\f[R] slot can get used to
assign arbitrary additional vertex data which can get interpolated using
the [rtcInterpolate] API call.
.PP
The \f[C]RTC_BUFFER_TYPE_NORMAL\f[R], \f[C]RTC_BUFFER_TYPE_TANGENT\f[R],
and \f[C]RTC_BUFFER_TYPE_NORMAL_DERIVATIVE\f[R] are special buffers
required to assign per vertex normals, tangents, and normal derivatives
for some curve types.
.PP
The \f[C]RTC_BUFFER_TYPE_GRID\f[R] buffer is used to assign the grid
primitive buffer for grid geometries (see [RTC_GEOMETRY_TYPE_GRID]).
.PP
The \f[C]RTC_BUFFER_TYPE_FACE\f[R], \f[C]RTC_BUFFER_TYPE_LEVEL\f[R],
\f[C]RTC_BUFFER_TYPE_EDGE_CREASE_INDEX\f[R],
\f[C]RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT\f[R],
\f[C]RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX\f[R],
\f[C]RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT\f[R], and
\f[C]RTC_BUFFER_TYPE_HOLE\f[R] are special buffers required to create
subdivision meshes (see [RTC_GEOMETRY_TYPE_SUBDIVISION]).
.PP
The \f[C]RTC_BUFFER_TYPE_TRANSFORM\f[R] buffer is used to provide
instance transformation information for instance array geometries (see
[RTC_GEOMETRY_TYPE_INSTANCE_ARRAY]).
.PP
The \f[C]RTC_BUFFER_TYPE_FLAGS\f[R] can get used to add additional flag
per primitive of a geometry, and is currently only used for linear
curves.
.SS EXIT STATUS
.SS SEE ALSO
.PP
[rtcSetGeometryBuffer], [rtcSetSharedGeometryBuffer],
[rtcSetNewGeometryBuffer]
