RenderMan API  23.0
riley::Riley Class Referenceabstract

#include <Riley.h>

Public Types

typedef bool(* CreateGeometryMasterCB) (void *fnData, RtParamList &primvars)
 

Public Member Functions

virtual ~Riley ()
 
virtual void Begin ()=0
 Begins the Riley object. More...
 
virtual void End ()=0
 Ends the Riley object. Must be called before the Riley object is deleted. More...
 
virtual void Render (uint32_t numRenderViews, RenderView const *renderViews, RenderSettings settings)=0
 
virtual void RequestUpdate ()=0
 
virtual void Stop ()=0
 Request the renderer to stop, and Render() to return. More...
 
virtual void SetOptions (RtParamList const &options)=0
 
virtual RenderOutputId CreateRenderOutput (RtUString name, RenderOutputType type, RtUString source, RtUString accumulationRule, RtUString filter, float const *filterSize, float relativePixelVariance, RtParamList const &params)=0
 
virtual RenderOutputResult ModifyRenderOutput (RenderOutputId renderOutput, RtUString const *name, RenderOutputType const *type, RtUString const *source, RtUString const *accumulationRule, RtUString const *filter, float const *const *filterSize, float *relativePixelVariance, RtParamList const *params)=0
 
virtual RenderOutputResult DeleteRenderOutput (RenderOutputId renderOutput)=0
 
virtual RenderTargetId CreateRenderTarget (uint32_t numRenderOutputs, RenderOutputId const *renderOutputs, uint32_t const *extent, RtUString filterMode, float pixelVariance, RtParamList const &params)=0
 
virtual RenderTargetResult ModifyRenderTarget (RenderTargetId renderTarget, uint32_t const *numRenderOutputs, RenderOutputId const *const *renderOutputs, uint32_t const *const *extent, RtUString const *filterMode, float const *pixelVariance, RtParamList const *params)=0
 
virtual RenderTargetResult DeleteRenderTarget (RenderTargetId renderTargetId)=0
 
virtual DisplayId CreateDisplay (RenderTargetId renderTarget, RtUString name, RtUString driver, uint32_t numRenderOutputs, RenderOutputId const *renderOutputs, RtParamList const &driverParams)=0
 
virtual DisplayResult DeleteDisplay (DisplayId displayId)=0
 
virtual void CreateDisplayFilterChain (riley::ShadingNode const *nodes, int nNodes)=0
 Creates a display filter chain. More...
 
virtual void CreateSampleFilterChain (riley::ShadingNode const *nodes, int nNodes)=0
 Creates a sample filter chain. More...
 
virtual CameraId CreateCamera (RtUString name, ShadingNode const &projection, Transform const &xform, RtParamList const &properties)=0
 Create a named camera from a projection shader, transform and list of properties. More...
 
virtual CameraResult ModifyCamera (CameraId cameraId, ShadingNode const *projection, Transform const *xform, RtParamList const *properties)=0
 Sets a new projection shader, transform and list of camera properties for the given camera. More...
 
virtual void DeleteCamera (CameraId cameraId)=0
 Deletes the specified camera. More...
 
virtual void SetClippingPlanes (uint32_t numClippingPlanes, Transform const *xforms, float(*params)[6])=0
 Sets the clipping planes used during the render. More...
 
virtual void SetActiveCamera (CameraId cameraId)=0
 Sets the specified camera as active. More...
 
virtual IntegratorId CreateIntegrator (ShadingNode const &integratorNode)=0
 Creates an integrator from an integrator shading node. More...
 
virtual IntegratorResult ModifyIntegrator (IntegratorId integratorId, ShadingNode const *integratorNode)=0
 Modifies an integrator. More...
 
virtual IntegratorResult DeleteIntegrator (IntegratorId integratorId)=0
 Deletes the specified integrator. More...
 
virtual CoordinateSystemId CreateCoordinateSystem (Transform const &xform, RtParamList const &attributes)=0
 Create a coordinate system from a transform and a set of attributes. More...
 
virtual CoordinateSystemResult ModifyCoordinateSystem (CoordinateSystemId coordsysId, Transform const *xform, RtParamList const *attributes)=0
 Create a coordinate system from a transform and a set of attributes. More...
 
virtual void DeleteCoordinateSystem (CoordinateSystemId coordsysId)=0
 Deletes the specified coordinate system. More...
 
virtual DisplacementId CreateDisplacement (ShadingNode const *shadingNodes, int nShadingNodes)=0
 Create a displacement from a list of shading nodes. More...
 
virtual DisplacementResult ModifyDisplacement (DisplacementId displacementId, ShadingNode const *shadingNodes, int nShadingNodes)=0
 Modifies a displacement. More...
 
virtual void DeleteDisplacement (DisplacementId displacementId)=0
 Deletes the specified displacement. More...
 
virtual LightShaderId CreateLightShader (ShadingNode const *lightNodes, int nLightNodes, ShadingNode const *filterNodes, int nFilterNodes)=0
 Creates a light shader. More...
 
virtual LightShaderResult ModifyLightShader (LightShaderId lightShaderId, ShadingNode const *lightNodes, int nLightNodes, ShadingNode const *filterNodes, int nFilterNodes)=0
 Modifies a light shader. More...
 
virtual void DeleteLightShader (LightShaderId lightShaderId)=0
 Deletes the specified light shader. More...
 
virtual MaterialId CreateMaterial (ShadingNode const *shadingNodes, int nShadingNodes)=0
 Create a material from a list of shading nodes. More...
 
virtual MaterialResult ModifyMaterial (MaterialId materialId, ShadingNode const *shadingNodes, int nShadingNodes)=0
 Modifies a material. More...
 
virtual void DeleteMaterial (MaterialId materialId)=0
 Deletes the specified material. More...
 
virtual GeometryMasterId CreateGeometryMaster (RtUString type, DisplacementId displacementId, RtParamList const &primvars)=0
 Create a geometry master. More...
 
virtual GeometryMasterId CreateGeometryMasterDeferred (RtUString type, DisplacementId displacementId, RtParamList const &primvars, CreateGeometryMasterCB fn, void *fnData)=0
 Create a deferred geometry master. More...
 
virtual GeometryMasterResult ModifyGeometryMaster (RtUString type, GeometryMasterId geoMasterId, DisplacementId const *displacementId, RtParamList const *primvars)=0
 Modifies a geometry master. More...
 
virtual void DeleteGeometryMaster (GeometryMasterId geoMasterId)=0
 Deletes the specified geometry master. More...
 
virtual GeometryInstanceId CreateGeometryInstance (GeometryMasterId groupMasterId, GeometryMasterId geoMasterId, MaterialId materialId, ScopedCoordinateSystem const &coordsys, Transform const &xform, RtParamList const &attributes)=0
 Creates a new instance of a geometry master. More...
 
virtual GeometryInstanceResult ModifyGeometryInstance (GeometryMasterId groupMasterId, GeometryInstanceId instanceId, MaterialId const *materialId, ScopedCoordinateSystem const *coordsys, Transform const *xform, RtParamList const *attributes)=0
 Modifies properties on the provided geometry instance. More...
 
virtual void DeleteGeometryInstance (GeometryMasterId groupMasterId, GeometryInstanceId instanceId)=0
 Deletes the specified geometry instance. More...
 
virtual LightInstanceId CreateLightInstance (GeometryMasterId groupMasterId, GeometryMasterId geoMasterId, MaterialId materialId, LightShaderId lightShaderId, ScopedCoordinateSystem const &coordsys, Transform const &xform, RtParamList const &attributes)=0
 Creates a new instance of a geometric light. More...
 
virtual LightInstanceResult ModifyLightInstance (GeometryMasterId groupMasterId, LightInstanceId lightInstanceId, MaterialId const *materialId, LightShaderId const *lightShaderId, ScopedCoordinateSystem const *coordsys, Transform const *xform, RtParamList const *attributes)=0
 Modifies properties on the provided instance of a geometric light. More...
 
virtual void DeleteLightInstance (GeometryMasterId groupMasterId, LightInstanceId lightInstanceId)=0
 Deletes the specified instance of a geometric light. More...
 

Detailed Description

class Riley An interface to a renderer instance. The APIs allow callers to configure a physically based renderer, and create/modify/delete rendering entities.

Definition at line 284 of file Riley.h.

Member Typedef Documentation

◆ CreateGeometryMasterCB

typedef bool(* riley::Riley::CreateGeometryMasterCB) (void *fnData, RtParamList &primvars)

Definition at line 787 of file Riley.h.

Constructor & Destructor Documentation

◆ ~Riley()

virtual riley::Riley::~Riley ( )
inlinevirtual

Definition at line 287 of file Riley.h.

Member Function Documentation

◆ Begin()

virtual void riley::Riley::Begin ( )
pure virtual

Begins the Riley object.

Must be called before Render() can be called. May take an optional callback method. For each call to Begin() there must be a call to End(). These should not be nested.

◆ CreateCamera()

virtual CameraId riley::Riley::CreateCamera ( RtUString  name,
ShadingNode const &  projection,
Transform const &  xform,
RtParamList const &  properties 
)
pure virtual

Create a named camera from a projection shader, transform and list of properties.

Parameters
[in]nameThe name of the camera.
[in]projectionThe projection shader for the camera. The projection shader will be called to modify camera rays when they are created for path tracing.
[in]xformThe camera to world transform.
[in]propertiesThe camera model description.
  • Mandatory:
  • Optional:
    • 'nearClip' (float): near clipping distance
    • 'farClip' (float): near clipping distance
    • Rix::k_focusregion (float):
    • Rix::k_dofaspect (float): dof aspect ratio
    • 'apertureNSides' (int):
    • 'apertureAngle' (float):
    • 'apertureRoundness' (float):
    • 'apertureDensity' (float):
    • 'shutterOpenTime' (float): beginning of normalized shutter interval
    • 'shutterCloseTime' (float): end of normalized shutter interval
    • Rix::k_shutteropening (float[8] [c1 c2 d1 d2 e1 e2 f1 f2): additional control points
Returns
A camera ID which can be used to modify and delete the camera.

◆ CreateCoordinateSystem()

virtual CoordinateSystemId riley::Riley::CreateCoordinateSystem ( Transform const &  xform,
RtParamList const &  attributes 
)
pure virtual

Create a coordinate system from a transform and a set of attributes.

Parameters
[in]xformThe transform associated with the coordinate system.
[in]attributes
Returns
A coordinate system ID which can be used to modify and delete the coordinate system.

◆ CreateDisplacement()

virtual DisplacementId riley::Riley::CreateDisplacement ( ShadingNode const *  shadingNodes,
int  nShadingNodes 
)
pure virtual

Create a displacement from a list of shading nodes.

Parameters
[in]shadingNodesA list of ShadingNode with the following properties:
  • the list must contain at least one displacement node, and end with a displacement node (this will be the bound displacement)
  • the list may contain multiple patterns, ordered so that there are no forward references.
[in]nShadingNodesThe number of shading nodes in the shadingNodes list.
Returns
A displacement ID which can be used to modify and delete the displacement.

◆ CreateDisplay()

virtual DisplayId riley::Riley::CreateDisplay ( RenderTargetId  renderTarget,
RtUString  name,
RtUString  driver,
uint32_t  numRenderOutputs,
RenderOutputId const *  renderOutputs,
RtParamList const &  driverParams 
)
pure virtual

Create a display and attach it to a RenderTarget. Opens a connection to the display driver.

Parameters
[in]renderTargetThe render target to which the display will be attached.
[in]nameThe name of the display.
[in]driverThe name of the display driver that will consume the RenderOutputs.
[in]numRenderOutputsThe number of outputs of the RenderTarget the display will consume. If 0, the display will consume all outputs.
[in]renderOutputsThe ids of the outputs of a RenderTarget the display will consume. The ids are not required to be in the same order as the outputs on the RenderTarget.
[in]driverParamsParameters passed to the display driver.

◆ CreateDisplayFilterChain()

virtual void riley::Riley::CreateDisplayFilterChain ( riley::ShadingNode const *  nodes,
int  nNodes 
)
pure virtual

Creates a display filter chain.

Parameters
[in]nodes
[in]nNodesThe number of nodes in nodes

◆ CreateGeometryInstance()

virtual GeometryInstanceId riley::Riley::CreateGeometryInstance ( GeometryMasterId  groupMasterId,
GeometryMasterId  geoMasterId,
MaterialId  materialId,
ScopedCoordinateSystem const &  coordsys,
Transform const &  xform,
RtParamList const &  attributes 
)
pure virtual

Creates a new instance of a geometry master.

Parameters
[in]groupMasterIdIdentifies the geometry master group to which the instance will be added. May be GeometryMasterId::k_InvalidId, signifying the instance will belong to no group. Otherwise, providing an id that has not been returned from CreateGeometryMaster(), or a geometry master that has already been deleted, results in undefined behavior.
[in]geoMasterIdThe geometry master that will be instantiated. This must be a handle returned from CreateGeometryMaster(). Passing a handle value that was not returned from CreateGeometryMaster(), or one that has been deleted with a call to DeleteGeometryMaster() results in undefined behavior.
[in]materialIdThe material to be assigned to the geometry instance. The materialId specified must be one that was returned from CreateMaterial().
[in]coordsys
[in]xformThe object to world transform for the instance.
[in]attributesThe attribute set for the geometry instance.
Returns
A geometry instance ID which can be used to modify and delete the geometry instance.

◆ CreateGeometryMaster()

virtual GeometryMasterId riley::Riley::CreateGeometryMaster ( RtUString  type,
DisplacementId  displacementId,
RtParamList const &  primvars 
)
pure virtual

Create a geometry master.

Parameters
[in]typeThe type of geometry to create.
[in]displacementIdSpecifies a displacement to be assigned to the geometry master. The displacementId specified must either be one that was returned from CreateDisplacement(), or DisplacementId::k_InvalidId signifying no displacement.
[in]primvarsA complete description of the primitive variables for the geometry master.
Returns
A geometry master ID which can be used to modify and delete the geometry master.

◆ CreateGeometryMasterDeferred()

virtual GeometryMasterId riley::Riley::CreateGeometryMasterDeferred ( RtUString  type,
DisplacementId  displacementId,
RtParamList const &  primvars,
CreateGeometryMasterCB  fn,
void *  fnData 
)
pure virtual

Create a deferred geometry master.

A deferred geometry master is initially a minimal placeholder specification which includes only the bounds of the geometry and a user-defined callback function. After the creation of the placeholder, the renderer may invoke the callback function on demand in order to fully populate the definition of the geometry.

Parameters
[in]typeThe type of geometry to create.
[in]displacementIdSpecifies a displacement to be assigned to the geometry master. The displacementId specified must either be one that was returned from CreateDisplacement(), or DisplacementId::k_InvalidId signifying no displacement.
[in]primvarsA minimal set of primvars, enough to define where this master is in space; in particular, Rix::k_Ri_Bound along with other displacement bounds properties. All other regular primvars should be returned by the callback function.
  • Mandatory:
[in]fnA callback function to be invoked on demand by the renderer in order to create the deferred geometry definition. The implementation of such a function should populate the passed in RtParamList primvars with the primvar entries that would normally have been given to the regular CreateGeometryMaster() method.
[in]fnDataThe data to pass to the callback function fn in order to create the deferred geometry definition.
Returns
A geometry master ID which can be used to modify and delete the geometry master.

◆ CreateIntegrator()

virtual IntegratorId riley::Riley::CreateIntegrator ( ShadingNode const &  integratorNode)
pure virtual

Creates an integrator from an integrator shading node.

Parameters
[in]integratorNodeA shading node which must be of type k_Integrator.
Returns
An integrator ID.

◆ CreateLightInstance()

virtual LightInstanceId riley::Riley::CreateLightInstance ( GeometryMasterId  groupMasterId,
GeometryMasterId  geoMasterId,
MaterialId  materialId,
LightShaderId  lightShaderId,
ScopedCoordinateSystem const &  coordsys,
Transform const &  xform,
RtParamList const &  attributes 
)
pure virtual

Creates a new instance of a geometric light.

Parameters
[in]groupMasterIdIdentifies the geometry master group to which the instance will be added. May be GeometryMasterId::k_InvalidId, signifying the instance will belong to no group. Otherwise, providing an id that has not been returned from CreateGeometryMaster(), or a geometry master that has already been deleted, results in undefined behavior,
[in]geoMasterIdThe geometry master that will be instantiated. This must be a handle returned from CreateGeometryMaster(). Passing a handle value that was not returned from CreateGeometryMaster(), or one that has been deleted with a call to DeleteGeometryMaster() results in undefined behavior.
[in]materialIdThe material to be assigned to the geometry instance. The materialId specified must be one that was returned from CreateMaterial().
[in]lightShaderIdThe light shader to be assigned to the geometry instance. The lightShaderId specified must be one that was returned from CreateMaterial().
[in]coordsys
[in]xformThe object to world transform for the instance.
[in]attributesThe attribute set for the geometry instance.
Returns
A light instance ID which can be used to modify and delete the light instance.

◆ CreateLightShader()

virtual LightShaderId riley::Riley::CreateLightShader ( ShadingNode const *  lightNodes,
int  nLightNodes,
ShadingNode const *  filterNodes,
int  nFilterNodes 
)
pure virtual

Creates a light shader.

Parameters
[in]lightNodes
[in]nLightNodesThe number of nodes in the lightNodes list.
[in]filterNodes
[in]nFilterNodesThe number of nodes in the filterNodes list.
Returns
A light shader ID which can be used to modify and delete the light shader.

◆ CreateMaterial()

virtual MaterialId riley::Riley::CreateMaterial ( ShadingNode const *  shadingNodes,
int  nShadingNodes 
)
pure virtual

Create a material from a list of shading nodes.

Parameters
[in]shadingNodesA list of ShadingNode with the following properties:
  • the list must contain at least one bxdf node, and end with a bxdf node (this will be the bound bxdf)
  • the list may contain multiple patterns, ordered so that there are no forward references. Additionally, if the (material's) last bxdf node's paramlist contains the parameter k_materialid, the following will happen:
    • the first time such a case is encountered, the returned riley::MaterialId will be stored in a global map, associated with the materialId string parameter
    • any other time, the entire material description will be ignored, and CreateMaterial will return the corresponding riley::MaterialId stored in the map
[in]nShadingNodesThe number of shading nodes in the shadingNodes list.
Returns
A material ID which can be used to modify and delete the material.

◆ CreateRenderOutput()

virtual RenderOutputId riley::Riley::CreateRenderOutput ( RtUString  name,
RenderOutputType  type,
RtUString  source,
RtUString  accumulationRule,
RtUString  filter,
float const *  filterSize,
float  relativePixelVariance,
RtParamList const &  params 
)
pure virtual

Creates a render output. Describes the data format for an output of a render.

Parameters
[in]nameThe name of the output.
[in]typeThe data type of the output.
[in]sourceThe source of the output.
[in]accumulationRule
supported rules: {"filter", "average", "min", "max", "zmin", "zmax",
                  "sum", "variance", "mse", "even", "odd"}

If set to "filter" the pixel filter function defined by "filter" is used.
[in]filter
supported filters: {Rix::k_gaussian, Rix::k_box, Rix::k_triangle,
                    Rix::k_catmullrom, Rix::k_separablecatmullrom,
                    Rix::k_blackmanharris, Rix::k_mitchell,
                    Rix::k_sinc, Rix::k_bessel, Rix::k_disk, Rix::k_lanczos}
[in]filterSizeFilter size in pixels. float array of size 2, cannot be nullptr.

If the "filterMode" of the render target is set to "importance", all outputs of the render target with a "filter" accumulation rule will use the filter of the first render output provided to the render target.

Parameters
[in]relativePixelVariance
[in]paramsadditional optional parameters.
  • remap: float[3] (may be removed soon):

◆ CreateRenderTarget()

virtual RenderTargetId riley::Riley::CreateRenderTarget ( uint32_t  numRenderOutputs,
RenderOutputId const *  renderOutputs,
uint32_t const *  extent,
RtUString  filterMode,
float  pixelVariance,
RtParamList const &  params 
)
pure virtual

Creates a RenderTarget containing storage for all of the RenderOutputs. All RenderOutputs use the same extent.

Parameters
[in]extentWidth, height, and depth of the outputs. 2D Images have 0 depth. Integer array of size 3, cannot be nullptr.
[in]filterMode{"importance", "weighted"}
[in]pixelVariance
[in]paramsadditional optional parameters.

◆ CreateSampleFilterChain()

virtual void riley::Riley::CreateSampleFilterChain ( riley::ShadingNode const *  nodes,
int  nNodes 
)
pure virtual

Creates a sample filter chain.

Parameters
[in]nodes
[in]nNodesThe number of nodes in nodes

◆ DeleteCamera()

virtual void riley::Riley::DeleteCamera ( CameraId  cameraId)
pure virtual

Deletes the specified camera.

Parameters
[in]cameraIdIdentifies the camera to delete. Providing an id that has not been returned from CreateCamera(), or deleting a camera that has already been deleted, results in undefined behavior.

◆ DeleteCoordinateSystem()

virtual void riley::Riley::DeleteCoordinateSystem ( CoordinateSystemId  coordsysId)
pure virtual

Deletes the specified coordinate system.

Parameters
[in]coordsysIdIdentifies the coordinate system to delete. Providing an id that has not been returned from CreateCoordinateSystem(), or deleting a coordinate system that has already been deleted, results in undefined behavior.

◆ DeleteDisplacement()

virtual void riley::Riley::DeleteDisplacement ( DisplacementId  displacementId)
pure virtual

Deletes the specified displacement.

Parameters
[in]displacementIdIdentifies the displacement to delete. Providing an id that has not been returned from CreateDisplacement(), or deleting a displacement that has already been deleted, results in undefined behavior.

◆ DeleteDisplay()

virtual DisplayResult riley::Riley::DeleteDisplay ( DisplayId  displayId)
pure virtual

Close a display and detach it from its RenderTarget. Closes the connection to the display driver. The displayId is no longer valid.

◆ DeleteGeometryInstance()

virtual void riley::Riley::DeleteGeometryInstance ( GeometryMasterId  groupMasterId,
GeometryInstanceId  instanceId 
)
pure virtual

Deletes the specified geometry instance.

Parameters
[in]groupMasterIdIdentifies the geometry master group to which the instance currently belongs. May be GeometryMasterId::k_InvalidId, signifying the instance belongs to no group. Otherwise, providing an id that has not been returned from CreateGeometryMaster(), or a geometry master that has already been deleted, results in undefined behavior.
[in]instanceIdIdentifies the geometry instance to delete. Providing an id that has not been returned from CreateGeometryInstance(), or deleting a geometry instance that has already been deleted, results in undefined behavior.

◆ DeleteGeometryMaster()

virtual void riley::Riley::DeleteGeometryMaster ( GeometryMasterId  geoMasterId)
pure virtual

Deletes the specified geometry master.

Parameters
[in]geoMasterIdIdentifies the geometry master to delete. Providing an id that has not been returned from CreateGeometryMaster(), or deleting a geometry master that has already been deleted, results in undefined behavior.

◆ DeleteIntegrator()

virtual IntegratorResult riley::Riley::DeleteIntegrator ( IntegratorId  integratorId)
pure virtual

Deletes the specified integrator.

Parameters
[in]integratorIdIdentifies the integrator to delete. Providing an id that has not been returned from CreateIntegrator(), or deleting an integrator that has already been deleted, results in undefined behavior.

◆ DeleteLightInstance()

virtual void riley::Riley::DeleteLightInstance ( GeometryMasterId  groupMasterId,
LightInstanceId  lightInstanceId 
)
pure virtual

Deletes the specified instance of a geometric light.

Parameters
[in]groupMasterIdIdentifies the geometry master group to which the instance currently belongs. May be GeometryMasterId::k_InvalidId, signifying the instance belongs to no group. Otherwise, providing an id that has not been returned from CreateGeometryMaster(), or a geometry master that has already been deleted, results in undefined behavior.
[in]lightInstanceIdIdentifies the geometric light instance to delete. Providing an id that has not been returned from CreateLightInstance(), or deleting an instance that has already been deleted, results in undefined behavior.

◆ DeleteLightShader()

virtual void riley::Riley::DeleteLightShader ( LightShaderId  lightShaderId)
pure virtual

Deletes the specified light shader.

Parameters
[in]lightShaderIdIdentifies the light shader to delete. Providing an id that has not been returned from CreateLightShader(), or deleting a light shader that has already been deleted, results in undefined behavior.

◆ DeleteMaterial()

virtual void riley::Riley::DeleteMaterial ( MaterialId  materialId)
pure virtual

Deletes the specified material.

Parameters
[in]materialIdIdentifies the material to delete. Providing an id that has not been returned from CreateMaterial(), or deleting a material that has already been deleted, results in undefined behavior.

◆ DeleteRenderOutput()

virtual RenderOutputResult riley::Riley::DeleteRenderOutput ( RenderOutputId  renderOutput)
pure virtual

Delete a RenderOutput. The RenderOutputId is no longer valid. A RenderOutput may not be deleted if there any RenderTarget still using it.

◆ DeleteRenderTarget()

virtual RenderTargetResult riley::Riley::DeleteRenderTarget ( RenderTargetId  renderTargetId)
pure virtual

Deletes a RenderTarget and frees its storage. The renderTargetId is no longer valid. A RenderTarget may not be deleted if there are any displays attached to it.

◆ End()

virtual void riley::Riley::End ( )
pure virtual

Ends the Riley object. Must be called before the Riley object is deleted.

◆ ModifyCamera()

virtual CameraResult riley::Riley::ModifyCamera ( CameraId  cameraId,
ShadingNode const *  projection,
Transform const *  xform,
RtParamList const *  properties 
)
pure virtual

Sets a new projection shader, transform and list of camera properties for the given camera.

It is possible to pass null for any of the parameter sets and this will apply no modification to the parameter set. That is, ModifyCamera(id, nullptr, nullptr, nullptr) has no side effects.

Parameters
[in]cameraIdIdentifies the camera for which properties will be changed, and must be an id returned from CreateCamera(). Providing an id that has not been returned from CreateCamera(), or one that has been deleted with a call to DeleteCamera(), results in undefined behavior.
[in]projectionAn optional new projection shader for the camera. This parameter is optional but, if provided, will replace the current projection shader bound to the camera.
[in]xformAn optional camera to world transform that replaces the current camera to world transform.
[in]propertiesAn optional argument which if non-null, provides a new camera model description for the camera.
Returns
A CameraResult value indicating success or failure.

◆ ModifyCoordinateSystem()

virtual CoordinateSystemResult riley::Riley::ModifyCoordinateSystem ( CoordinateSystemId  coordsysId,
Transform const *  xform,
RtParamList const *  attributes 
)
pure virtual

Create a coordinate system from a transform and a set of attributes.

Parameters
[in]coordsysIdIdentifies the coordinate system to modify. Providing an id that has not been returned from CreateCoordinateSystem(), or deleting a coordinate system that has already been deleted, results in undefined behavior.
[in]xform
[in]attributes
Returns
A CoordinateSystemResult value indicating success or failure.

◆ ModifyDisplacement()

virtual DisplacementResult riley::Riley::ModifyDisplacement ( DisplacementId  displacementId,
ShadingNode const *  shadingNodes,
int  nShadingNodes 
)
pure virtual

Modifies a displacement.

Parameters
[in]shadingNodesA list of ShadingNode with the same properties as the shadingNodes parameter to CreateDisplacement().
[in]nShadingNodesThe number of shading nodes in the shadingNodes list.
[in]displacementIdIdentifies the displacement to be modified, and must be an id returned from CreateDisplacement(). Providing an id that has not been returned from CreateDisplacement(), or one that has been deleted with a call to DeleteDisplacement(), results in undefined behavior.
Returns
A DisplacementResult value. If k_Error is returned, the displacement was not successfully modified. If k_Success is returned, the displacement was successfully modified. If k_ResendPrimVars is returned, the displacement was successfully modified; in addition, the caller should immediately issue a ModifyGeometryMaster() for all associated geometry masters.

◆ ModifyGeometryInstance()

virtual GeometryInstanceResult riley::Riley::ModifyGeometryInstance ( GeometryMasterId  groupMasterId,
GeometryInstanceId  instanceId,
MaterialId const *  materialId,
ScopedCoordinateSystem const *  coordsys,
Transform const *  xform,
RtParamList const *  attributes 
)
pure virtual

Modifies properties on the provided geometry instance.

If a null pointer is passed for materialId, coordsys, xform or attributes then that specific property set will remain unmodified. Thus, ModifyGeometryInstance()(groupId, instanceId, nullptr, nullptr, nullptr, nullptr) has no side-effects.

Parameters
[in]groupMasterIdIdentifies the geometry master group in which the instance currently belongs. May be GeometryMasterId::k_InvalidId, signifying the instance belongs to no group. Otherwise, providing an id that has not been returned from CreateGeometryMaster(), or a geometry master that has already been deleted, results in undefined behavior.
[in]instanceIdThe geometry instance handle that will be modified. This must be a handle returned from CreateGeometryInstance(). Passing a handle value that was not returned from CreateGeometryInstance() or one that has been deleted with a call to DeleteGeometryInstance() results in undefined behavior.
[in]materialIdIf non-null, specifies a new material to be assigned to the geometry instance. The materialId specified must be one that was returned from CreateMaterial().
[in]coordsys
[in]xformIf non-null, assigns a new object to world transform for the instance.
[in]attributesIf non-null, specifies a new attribute set for the geometry instance. It is expected that if provided, the attributes are a complete description, as it will completely overwrite the existing set of attributes.
Returns
A GeometryInstanceResult value. If k_Error is returned, the instance was not successfully modified. If k_Success is returned, the instance was successfully modified. If k_ResendPrimVars is returned, the instance was successfully modified; in addition, the caller should immediately issue a ModifyGeometryMaster() for all associated geometry masters.

◆ ModifyGeometryMaster()

virtual GeometryMasterResult riley::Riley::ModifyGeometryMaster ( RtUString  type,
GeometryMasterId  geoMasterId,
DisplacementId const *  displacementId,
RtParamList const *  primvars 
)
pure virtual

Modifies a geometry master.

Parameters
[in]typeThe type of the geometry.
[in]geoMasterIdThe geometry master that will be modified. This must be a handle returned from CreateGeometryMaster(). Passing a handle value that was not returned from CreateGeometryMaster(), or one that has been deleted with a call to DeleteGeometryMaster() results in undefined behavior.
[in]displacementIdIf non-null, changes the displacement shader assigned to the geometry master. The displacementId specified must either be one that was returned from CreateDisplacement(), or DisplacementId::k_InvalidId signifying that any existing displacement shader should be removed.
[in]primvarsIf non-null, specifies a new set of primvars for the geometry master. It is expected that if provided, the primvars are a complete description, as it will completely overwrite the existing set of primvars.
Returns
A GeometryMasterResult value. If k_Error is returned, the geometry master was not successfully modified. If k_Success is returned, the geometry master was successfully modified. If k_ResendPrimVars is returned, the geometry master properties were successfully modified; in addition, the caller should immediately reissue the ModifyGeometryMaster() call, and include the full primvars for the master.

◆ ModifyIntegrator()

virtual IntegratorResult riley::Riley::ModifyIntegrator ( IntegratorId  integratorId,
ShadingNode const *  integratorNode 
)
pure virtual

Modifies an integrator.

Parameters
[in]integratorIdIdentifies the integrator to be modified, and must be an id returned from CreateIntegrator(). Providing an id that has not been returned from CreateIntegrator(), or one that has been deleted with a call to DeleteIntegrator(), results in undefined behavior.
[in]integratorNodeA ShadingNode with the same properties as the integratorNode parameter to CreateIntegrator().
Returns
A IntegratorResult value. If k_Error is returned, the integrator was not successfully modified. If k_Success is returned, the integrator was successfully modified.

◆ ModifyLightInstance()

virtual LightInstanceResult riley::Riley::ModifyLightInstance ( GeometryMasterId  groupMasterId,
LightInstanceId  lightInstanceId,
MaterialId const *  materialId,
LightShaderId const *  lightShaderId,
ScopedCoordinateSystem const *  coordsys,
Transform const *  xform,
RtParamList const *  attributes 
)
pure virtual

Modifies properties on the provided instance of a geometric light.

If a null pointer is passed for materialId, lightShaderId, coordsys, xform or attributes then that specific property set will remain unmodified. Thus, ModifyLightInstance()(groupId, lightId, nullptr, nullptr, nullptr, nullptr, nullptr) has no side-effects.

Parameters
[in]groupMasterIdIdentifies the geometry master group in which the instance currently belongs. May be GeometryMasterId::k_InvalidId, signifying the instance belongs to no group. Otherwise, providing an id that has not been returned from CreateGeometryMaster(), or a geometry master that has already been deleted, results in undefined behavior.
[in]lightInstanceIdThe geometry light instance handle that will be modified. This must be a handle returned from CreateLightInstance(). Passing a handle value that was not returned from CreateLightInstance() or one that has been deleted with a call to DeleteLightInstance() results in undefined behavior.
[in]materialIdIf non-null, specifies a new material to be assigned to the geometry instance. The materialId specified must be one that was returned from CreateMaterial().
[in]lightShaderIdIf non-null, specifies a new light shader to be assigned to the geometry instance. The lightShaderId specified must be one that was returned from CreateLightShader().
[in]coordsys
[in]xformIf non-null, assigns a new object to world transform for the instance.
[in]attributesIf non-null, specifies a new attribute set for the geometry instance. It is expected that if provided, the attributes are a complete description, as it will completely overwrite the existing set of attributes.
Returns
A LightInstanceResult value. If k_Error is returned, the light instance was not successfully modified. If k_Success is returned, the light instance was successfully modified. If k_ResendPrimVars is returned, the light instance was successfully modified; in addition, the caller should immediately issue a ModifyGeometryMaster() for all associated geometry masters.

◆ ModifyLightShader()

virtual LightShaderResult riley::Riley::ModifyLightShader ( LightShaderId  lightShaderId,
ShadingNode const *  lightNodes,
int  nLightNodes,
ShadingNode const *  filterNodes,
int  nFilterNodes 
)
pure virtual

Modifies a light shader.

Parameters
[in]lightShaderIdIdentifies the light shader to be modified, and must be an id returned from CreateLightShader(). Providing an id that has not been returned from CreateLightShader(), or one that has been deleted with a call to DeleteLightShader(), results in undefined behavior.
[in]lightNodes
[in]nLightNodesThe number of nodes in the lightNodes list.
[in]filterNodes
[in]nFilterNodesThe number of nodes in the filterNodes list.
Returns
A LightShaderResult value. If k_Error is returned, the light shader was not successfully modified. If k_Success is returned, the light shader was successfully modified. If k_ResendPrimVars is returned, the light shader was successfully modified; in addition, the caller should immediately issue a ModifyGeometryMaster() for all associated geometry masters.

◆ ModifyMaterial()

virtual MaterialResult riley::Riley::ModifyMaterial ( MaterialId  materialId,
ShadingNode const *  shadingNodes,
int  nShadingNodes 
)
pure virtual

Modifies a material.

Parameters
[in]materialIdIdentifies the material to be modified, and must be an id returned from CreateMaterial(). Providing an id that has not been returned from CreateMaterial(), or one that has been deleted with a call to DeleteMaterial(), results in undefined behavior.
[in]shadingNodesA list of ShadingNode with the same properties as the shadingNodes parameter to CreateMaterial().
[in]nShadingNodesThe number of shading nodes in the shadingNodes list.
Returns
A MaterialResult value. If k_Error is returned, the material was not successfully modified. If k_Success is returned, the material was successfully modified. If k_ResendPrimVars is returned, the material was successfully modified; in addition, the caller should immediately issue a ModifyGeometryMaster() for all associated geometry masters.

◆ ModifyRenderOutput()

virtual RenderOutputResult riley::Riley::ModifyRenderOutput ( RenderOutputId  renderOutput,
RtUString const *  name,
RenderOutputType const *  type,
RtUString const *  source,
RtUString const *  accumulationRule,
RtUString const *  filter,
float const *const *  filterSize,
float *  relativePixelVariance,
RtParamList const *  params 
)
pure virtual

Modify attributes of a RenderOutput

Uses the same parameterization as CreateRenderOutput(). If a parameter is nullptr, it is not modified.

◆ ModifyRenderTarget()

virtual RenderTargetResult riley::Riley::ModifyRenderTarget ( RenderTargetId  renderTarget,
uint32_t const *  numRenderOutputs,
RenderOutputId const *const *  renderOutputs,
uint32_t const *const *  extent,
RtUString const *  filterMode,
float const *  pixelVariance,
RtParamList const *  params 
)
pure virtual

Modify attributes of a RenderTarget

Uses the same parameterization as CreateRenderTarget(). If a parameter is nullptr, it is not modified.

◆ Render()

virtual void riley::Riley::Render ( uint32_t  numRenderViews,
RenderView const *  renderViews,
RenderSettings  settings 
)
pure virtual

Render one or more views of a scene. Render will run to completion unless: it is stopped by and external signal; the application indicates it would like to edit the scene by calling 'RequestUpdate()'; or the render call is configured to return after a fixed interval specified in either iterations or time.

Parameters
[in]numRenderViewsThe number of views to render.
[in]renderViewsThe views to render. Each view must have a unique RenderTarget, while Integrator and Camera can be shared across views.

◆ RequestUpdate()

virtual void riley::Riley::RequestUpdate ( )
pure virtual

◆ SetActiveCamera()

virtual void riley::Riley::SetActiveCamera ( CameraId  cameraId)
pure virtual

Sets the specified camera as active.

Parameters
[in]cameraIdIdentifies the camera to made active. Providing an id that has not been returned from CreateCamera(), or deleting a camera that has already been deleted, results in undefined behavior.

◆ SetClippingPlanes()

virtual void riley::Riley::SetClippingPlanes ( uint32_t  numClippingPlanes,
Transform const *  xforms,
float(*)  params[6] 
)
pure virtual

Sets the clipping planes used during the render.

Must be called after SetOptions(), before SetActiveCamera()

Parameters
[in]numClippingPlanesThe number of clipping planes.
[in]xformsA list of transforms associated with each clipping plane.
[in]paramsThe definition of each clipping plane. Each plane is defined by six floats: the first three floats describe the normal of the plane, and the next three floats describe a point on the plane.

◆ SetOptions()

virtual void riley::Riley::SetOptions ( RtParamList const &  options)
pure virtual

◆ Stop()

virtual void riley::Riley::Stop ( )
pure virtual

Request the renderer to stop, and Render() to return.


The documentation for this class was generated from the following file: