RPR Data Types

The RPR API is a C based API, with bindings for Python available. RPR API data types are redefined from standard C types. All data types have the rpr_ prefix.

Basic Data Types

The following table lists RPR basic data types.

RPR Type

C Type

rpr_char

Char

rpr_uchar

Unsigned char

rpr_int

Int

rpr_uint

Unsigned int

rpr_long

Long int

rpr_ulong

Unsigned long int

rpr_short

Short int

rpr_ushort

Unsigned short int

rpr_float

Float

rpr_double

Double

rpr_longlong

Long long int

rpr_bool

Int

rpr_bitfield

Unsigned int

rpr_status

Int

Pointer Data Types

These data types point to RPR data classes. All pointer data types are of the C type “void *”.

Pointer Data Type

Description

rpr_buffer

Buffer (float list) for looking up in procedural texture nodes.

rpr_camera

Camera object for setting the render field of view and other camera type options.

rpr_composite

Arithmetic operation node for transforming frame buffers.

rpr_context

Context object. Set up for rendering context, set rendering options, device type to use for rendering, etc. Used for rendering and creating other objects.

rpr_context_properties

Struct of properties set on an rpr_context.

rpr_curve

Curve type object. Used for rendering hair, fur, grass, or other strand-like geometry.

rpr_framebuffer

Framebuffers hold rendering results for display or saving to files, or passing to post-processing.

rpr_grid

Grid is a layout of voxels. Each voxel references a key which lookups to the lookup array.

rpr_hetero_volume

Heterogenous volume object. Used for rendering clouds, or other objects with varying density in their interior.

rpr_image

Texture image object.

rpr_light

Light object (see various light types, such as spot, etc.). Area lights should use the rpr_shape with emissive shaders on them.

rpr_lut

LUT object. These objects are created from LUT files or data for applying color transforms in rpr_composite.

rpr_material_node

Node for materials. Material nodes can be attached to objects (normally the BRDF node) and take other nodes as inputs to create complex material node graphs.

rpr_material_system

Material system for creating material nodes and attaching materials to objects. Only one material system is needed per scene.

rpr_post_effect

Post processing operations to run on the resulting frame buffer.

rpr_scene

Scene object. All objects need to be attached to the scene to be rendered.

rpr_shape

Shape object. Each mesh/instance object in the scene uses a scene object.