Radeon ProRender

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.