RenderManAPI  24.0
Riley Class Referenceabstract

An interface to a renderer instance. More...

#include <Riley.h>

Public Member Functions

virtual ~Riley ()
 
virtual void Render (RenderViewList const &renderViews, RtParamList const &renderOptions)=0
 Rendering Process APIs. More...
 
virtual StopResult RequestUpdate ()=0
 Requests the renderer to stop. More...
 
virtual StopResult Stop ()=0
 Requests the renderer to stop. More...
 
virtual bool SetRenderSettings (RtParamList const &renderOptions)=0
 Sets the rendering process settings. More...
 
virtual bool SetRenderMetadata (CameraId id, RtParamList const &metadata)=0
 Sets metadata associated with a given riley entity. More...
 
virtual bool SetRenderMetadata (GeometryPrototypeId groupId, GeometryInstanceId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (GeometryPrototypeId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (MaterialId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (DisplacementId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (IntegratorId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (LightInstanceId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (LightShaderId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (CoordinateSystemId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (RenderOutputId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (RenderTargetId id, RtParamList const &metadata)=0
 
virtual bool SetRenderMetadata (DisplayId id, RtParamList const &metadata)=0
 
virtual void SetOptions (RtParamList const &sceneOptions)=0
 Scene Manipulation APIs. More...
 
virtual void InvalidateTexture (RtUString const filename)=0
 Indicates that a texture file has been modified, and should be flushed from the texture cache. More...
 
virtual RenderOutputId CreateRenderOutput (UserId userId, RtUString name, RenderOutputType type, RtUString source, RtUString accumulationRule, RtUString filter, FilterSize const &filterSize, float relativePixelVariance, RtParamList const &params)=0
 Creates a render output. More...
 
virtual RenderOutputResult ModifyRenderOutput (RenderOutputId renderOutput, RtUString const *name, RenderOutputType const *type, RtUString const *source, RtUString const *accumulationRule, RtUString const *filter, FilterSize const *filterSize, float *relativePixelVariance, RtParamList const *params)=0
 Modifies attributes of a render output. More...
 
virtual RenderOutputResult DeleteRenderOutput (RenderOutputId renderOutput)=0
 Deletes a render output. More...
 
virtual RenderTargetId CreateRenderTarget (UserId userId, RenderOutputList const &renderOutputs, Extent const &extent, RtUString filterMode, float pixelVariance, RtParamList const &params)=0
 Creates a render target containing storage for all of the given render outputs. More...
 
virtual RenderTargetResult ModifyRenderTarget (RenderTargetId renderTarget, RenderOutputList const *renderOutputs, Extent const *extent, RtUString const *filterMode, float const *pixelVariance, RtParamList const *params)=0
 Modifies attributes of a render target. More...
 
virtual RenderTargetResult DeleteRenderTarget (RenderTargetId renderTarget)=0
 Deletes a render target and frees its storage. More...
 
virtual DisplayId CreateDisplay (UserId userId, RenderTargetId renderTarget, RtUString name, RtUString driver, RenderOutputList const &renderOutputs, RtParamList const &driverParams)=0
 Creates a display and attach it to a render target. More...
 
virtual DisplayResult ModifyDisplay (DisplayId display, RenderTargetId const *renderTarget, RtUString const *name, RtUString const *driver, RenderOutputList const *renderOutputs, RtParamList const *driverParams)=0
 Modifies attributes of a display. More...
 
virtual DisplayResult DeleteDisplay (DisplayId display)=0
 Closes a display and detach it from its render target. More...
 
virtual RenderViewId CreateRenderView (UserId userId, RenderTargetId renderTargetId, CameraId cameraId, IntegratorId integratorId, DisplayFilterList const &displayFilters, SampleFilterList const &sampleFilters, RtParamList const &params)=0
 
virtual RenderViewResult ModifyRenderView (RenderViewId renderViewId, RenderTargetId const *renderTargetId, CameraId const *cameraId, IntegratorId const *integratorId, DisplayFilterList const *displayFilters, SampleFilterList const *sampleFilters, RtParamList const *params)=0
 
virtual RenderViewResult DeleteRenderView (RenderViewId renderViewId)=0
 
virtual DisplayFilterId CreateDisplayFilter (UserId userId, ShadingNetwork const &displayFilter, RtParamList const &attributes)=0
 Creates a display filter from a shading network. More...
 
virtual DisplayFilterResult ModifyDisplayFilter (DisplayFilterId displayFilterId, ShadingNetwork const *displayFilter, RtParamList const *attributes)=0
 Modifies a display filter. More...
 
virtual DisplayFilterResult DeleteDisplayFilter (DisplayFilterId displayFilterId)=0
 Deletes the specified display filter. More...
 
virtual SampleFilterId CreateSampleFilter (UserId userId, ShadingNetwork const &sampleFilter, RtParamList const &attributes)=0
 Creates a sample filter from a shading network. More...
 
virtual SampleFilterResult ModifySampleFilter (SampleFilterId sampleFilterId, ShadingNetwork const *sampleFilter, RtParamList const *attributes)=0
 Modifies a sample filter. More...
 
virtual SampleFilterResult DeleteSampleFilter (SampleFilterId sampleFilterId)=0
 Deletes the specified sample filter. More...
 
virtual CameraId CreateCamera (UserId userId, RtUString name, ShadingNode const &projection, Transform const &xform, RtParamList const &properties)=0
 Creates 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 ClippingPlaneId CreateClippingPlane (Transform const &xform, RtParamList const &params)=0
 
virtual ClippingPlaneResult ModifyClippingPlane (ClippingPlaneId clippingPlaneId, Transform const *xform, RtParamList const *params)=0
 
virtual ClippingPlaneResult DeleteClippingPlane (ClippingPlaneId clippingPlaneId)=0
 
virtual void SetDefaultDicingCamera (CameraId cameraId)=0
 Sets the specified camera as active. More...
 
virtual IntegratorId CreateIntegrator (UserId userId, 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 (UserId userId, Transform const &xform, RtParamList const &attributes)=0
 Creates a coordinate system from a transform and a set of attributes. More...
 
virtual CoordinateSystemResult ModifyCoordinateSystem (CoordinateSystemId coordsysId, Transform const *xform, RtParamList const *attributes)=0
 Creates 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 (UserId userId, ShadingNetwork const &displacement, RtParamList const &attributes)=0
 Creates a displacement from a shading network. More...
 
virtual DisplacementResult ModifyDisplacement (DisplacementId displacementId, ShadingNetwork const *displacement, RtParamList const *attributes)=0
 Modifies a displacement. More...
 
virtual void DeleteDisplacement (DisplacementId displacementId)=0
 Deletes the specified displacement. More...
 
virtual LightShaderId CreateLightShader (UserId userId, ShadingNetwork const &light, ShadingNetwork const &lightFilter)=0
 Creates a light shader. More...
 
virtual LightShaderResult ModifyLightShader (LightShaderId lightShaderId, ShadingNetwork const *light, ShadingNetwork const *lightFilter)=0
 Modifies a light shader. More...
 
virtual void DeleteLightShader (LightShaderId lightShaderId)=0
 Deletes the specified light shader. More...
 
virtual MaterialId CreateMaterial (UserId userId, ShadingNetwork const &bxdf, RtParamList const &attributes)=0
 Creates a material from a list of shading nodes. More...
 
virtual MaterialResult ModifyMaterial (MaterialId materialId, ShadingNetwork const *bxdf, RtParamList const *attributes)=0
 Modifies a material. More...
 
virtual void DeleteMaterial (MaterialId materialId)=0
 Deletes the specified material. More...
 
virtual GeometryPrototypeId CreateGeometryPrototype (UserId userId, RtUString type, DisplacementId displacementId, RtPrimVarList const &primvars)=0
 Creates a geometry prototype. More...
 
virtual GeometryPrototypeResult ModifyGeometryPrototype (RtUString type, GeometryPrototypeId geoPrototypeId, DisplacementId const *displacementId, RtPrimVarList const *primvars)=0
 Modifies a geometry prototype. More...
 
virtual void DeleteGeometryPrototype (GeometryPrototypeId geoPrototypeId)=0
 Deletes the specified geometry prototype. More...
 
virtual GeometryInstanceId CreateGeometryInstance (UserId userId, GeometryPrototypeId groupPrototypeId, GeometryPrototypeId geoPrototypeId, MaterialId materialId, CoordinateSystemList const &coordsysList, Transform const &xform, RtParamList const &attributes)=0
 Creates a new instance of a geometry prototype. More...
 
virtual GeometryInstanceResult ModifyGeometryInstance (GeometryPrototypeId groupPrototypeId, GeometryInstanceId instanceId, MaterialId const *materialId, CoordinateSystemList const *coordsysList, Transform const *xform, RtParamList const *attributes)=0
 Modifies properties on the provided geometry instance. More...
 
virtual void DeleteGeometryInstance (GeometryPrototypeId groupPrototypeId, GeometryInstanceId instanceId)=0
 Deletes the specified geometry instance. More...
 
virtual LightInstanceId CreateLightInstance (UserId userId, GeometryPrototypeId groupPrototypeId, GeometryPrototypeId geoPrototypeId, MaterialId materialId, LightShaderId lightShaderId, CoordinateSystemList const &coordsysList, Transform const &xform, RtParamList const &attributes)=0
 Creates a new instance of a geometric light. More...
 
virtual LightInstanceResult ModifyLightInstance (GeometryPrototypeId groupPrototypeId, LightInstanceId lightInstanceId, MaterialId const *materialId, LightShaderId const *lightShaderId, CoordinateSystemList const *coordsysList, Transform const *xform, RtParamList const *attributes)=0
 Modifies properties on the provided instance of a geometric light. More...
 
virtual void DeleteLightInstance (GeometryPrototypeId groupPrototypeId, LightInstanceId lightInstanceId)=0
 Deletes the specified instance of a geometric light. More...
 

Detailed Description

An interface to a renderer instance.

The APIs allow callers to configure a physically based renderer, and create / modify / delete rendering entities.

Constructor & Destructor Documentation

◆ ~Riley()

virtual Riley::~Riley ( )
inlinevirtual

Member Function Documentation

◆ CreateCamera()

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

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

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]nameThe name of the camera. Camera names currently have to be unique across all cameras. Attempting to create a camera name that is already in use is undefined behavior.
[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.

◆ CreateClippingPlane()

virtual ClippingPlaneId Riley::CreateClippingPlane ( Transform const &  xform,
RtParamList const &  params 
)
pure virtual

◆ CreateCoordinateSystem()

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

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

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[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::CreateDisplacement ( UserId  userId,
ShadingNetwork const &  displacement,
RtParamList const &  attributes 
)
pure virtual

Creates a displacement from a shading network.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]displacementA displacement shading network.
Returns
A displacement id which can be used to modify and delete the displacement.

◆ CreateDisplay()

virtual DisplayId Riley::CreateDisplay ( UserId  userId,
RenderTargetId  renderTarget,
RtUString  name,
RtUString  driver,
RenderOutputList const &  renderOutputs,
RtParamList const &  driverParams 
)
pure virtual

Creates a display and attach it to a render target.

Opens a connection to the display driver.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[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 render outputs.
[in]renderOutputsThe ids of the outputs of a render target the display will consume. The ids are not required to be in the same order as the outputs on the RenderTarget. If the id list is empty, all outputs will be consumed.
[in]driverParamsParameters passed to the display driver.

◆ CreateDisplayFilter()

virtual DisplayFilterId Riley::CreateDisplayFilter ( UserId  userId,
ShadingNetwork const &  displayFilter,
RtParamList const &  attributes 
)
pure virtual

Creates a display filter from a shading network.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]displayFilterA display filter shading network.
[in]attributesAttributes associated with the shading network.
Returns
A display filter id which can be used to modify and delete the filter.

◆ CreateGeometryInstance()

virtual GeometryInstanceId Riley::CreateGeometryInstance ( UserId  userId,
GeometryPrototypeId  groupPrototypeId,
GeometryPrototypeId  geoPrototypeId,
MaterialId  materialId,
CoordinateSystemList const &  coordsysList,
Transform const &  xform,
RtParamList const &  attributes 
)
pure virtual

Creates a new instance of a geometry prototype.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]groupPrototypeIdIdentifies the geometry prototype group to which the instance will be added. May be GeometryPrototypeId::k_InvalidId, signifying the instance will belong to no group.
[in]geoPrototypeIdThe geometry prototype that will be instantiated.
[in]materialIdThe material to be assigned to the geometry instance.
[in]coordsysList
[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.

◆ CreateGeometryPrototype()

virtual GeometryPrototypeId Riley::CreateGeometryPrototype ( UserId  userId,
RtUString  type,
DisplacementId  displacementId,
RtPrimVarList const &  primvars 
)
pure virtual

Creates a geometry prototype.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]typeThe type of geometry to create.
[in]displacementIdSpecifies a displacement to be assigned to the geometry prototype. May be DisplacementId::k_InvalidId, signifying no displacement.
[in]primvarsA complete description of the primitive variables for the geometry prototype.
Returns
A geometry prototype id which can be used to modify and delete the geometry prototype.

◆ CreateIntegrator()

virtual IntegratorId Riley::CreateIntegrator ( UserId  userId,
ShadingNode const &  integratorNode 
)
pure virtual

Creates an integrator from an integrator shading node.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]integratorNodeA shading node which must be of type k_Integrator.
Returns
An integrator id.

◆ CreateLightInstance()

virtual LightInstanceId Riley::CreateLightInstance ( UserId  userId,
GeometryPrototypeId  groupPrototypeId,
GeometryPrototypeId  geoPrototypeId,
MaterialId  materialId,
LightShaderId  lightShaderId,
CoordinateSystemList const &  coordsysList,
Transform const &  xform,
RtParamList const &  attributes 
)
pure virtual

Creates a new instance of a geometric light.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]groupPrototypeIdIdentifies the geometry prototype group to which the instance will be added. May be GeometryPrototypeId::k_InvalidId, signifying the instance will belong to no group.
[in]geoPrototypeIdThe geometry prototype that will be instantiated. This must be a handle returned from CreateGeometryPrototype().
[in]materialIdThe material to be assigned to the geometry instance.
[in]lightShaderIdThe light shader to be assigned to the geometry instance.
[in]coordsysList
[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::CreateLightShader ( UserId  userId,
ShadingNetwork const &  light,
ShadingNetwork const &  lightFilter 
)
pure virtual

Creates a light shader.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]lightA light shading network.
[in]lightFilterA light filter shading network.
Returns
A light shader id which can be used to modify and delete the light shader.

◆ CreateMaterial()

virtual MaterialId Riley::CreateMaterial ( UserId  userId,
ShadingNetwork const &  bxdf,
RtParamList const &  attributes 
)
pure virtual

Creates a material from a list of shading nodes.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]bxdfA bxdf shading network. Additionally, if the (network'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
Returns
A material id which can be used to modify and delete the material.

◆ CreateRenderOutput()

virtual RenderOutputId Riley::CreateRenderOutput ( UserId  userId,
RtUString  name,
RenderOutputType  type,
RtUString  source,
RtUString  accumulationRule,
RtUString  filter,
FilterSize 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]userIdExternal user-specified id to be passed through the renderer without use or modification.
[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.

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]paramsOptional parameters.
  • remap: float[3] (may be removed soon):
  • shadowthreshold: float (threshold passed to PxrShadowDisplayFilter)

◆ CreateRenderTarget()

virtual RenderTargetId Riley::CreateRenderTarget ( UserId  userId,
RenderOutputList const &  renderOutputs,
Extent const &  extent,
RtUString  filterMode,
float  pixelVariance,
RtParamList const &  params 
)
pure virtual

Creates a render target containing storage for all of the given render outputs.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]renderOutputsThe render outputs used by the render target.
[in]extentWidth, height, and depth of the outputs. 2D Images have 0 depth.
[in]filterMode{"importance", "weighted"}
[in]pixelVariancePixel variance.
[in]paramsOptional parameters.

◆ CreateRenderView()

virtual RenderViewId Riley::CreateRenderView ( UserId  userId,
RenderTargetId  renderTargetId,
CameraId  cameraId,
IntegratorId  integratorId,
DisplayFilterList const &  displayFilters,
SampleFilterList const &  sampleFilters,
RtParamList const &  params 
)
pure virtual

◆ CreateSampleFilter()

virtual SampleFilterId Riley::CreateSampleFilter ( UserId  userId,
ShadingNetwork const &  sampleFilter,
RtParamList const &  attributes 
)
pure virtual

Creates a sample filter from a shading network.

Parameters
[in]userIdExternal user-specified id to be passed through the renderer without use or modification.
[in]sampleFilterA sample filter shading network.
[in]attributesAttributes associated with the shading network.
Returns
A sample filter id which can be used to modify and delete the filter.

◆ DeleteCamera()

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

Deletes the specified camera.

Parameters
[in]cameraIdIdentifies the camera to delete.

◆ DeleteClippingPlane()

virtual ClippingPlaneResult Riley::DeleteClippingPlane ( ClippingPlaneId  clippingPlaneId)
pure virtual

◆ DeleteCoordinateSystem()

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

Deletes the specified coordinate system.

Parameters
[in]coordsysIdIdentifies the coordinate system to delete.

◆ DeleteDisplacement()

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

Deletes the specified displacement.

Parameters
[in]displacementIdIdentifies the displacement to delete.

◆ DeleteDisplay()

virtual DisplayResult Riley::DeleteDisplay ( DisplayId  display)
pure virtual

Closes a display and detach it from its render target.

Closes the connection to the display driver. The id is no longer valid.

Parameters
[in]displayThe display to close.

◆ DeleteDisplayFilter()

virtual DisplayFilterResult Riley::DeleteDisplayFilter ( DisplayFilterId  displayFilterId)
pure virtual

Deletes the specified display filter.

Parameters
[in]displayFilterIdIdentifies the display filter to delete.

◆ DeleteGeometryInstance()

virtual void Riley::DeleteGeometryInstance ( GeometryPrototypeId  groupPrototypeId,
GeometryInstanceId  instanceId 
)
pure virtual

Deletes the specified geometry instance.

Parameters
[in]groupPrototypeIdIdentifies the geometry prototype group to which the instance currently belongs. May be GeometryPrototypeId::k_InvalidId, signifying the instance belongs to no group.
[in]instanceIdIdentifies the geometry instance to delete.

◆ DeleteGeometryPrototype()

virtual void Riley::DeleteGeometryPrototype ( GeometryPrototypeId  geoPrototypeId)
pure virtual

Deletes the specified geometry prototype.

Parameters
[in]geoPrototypeIdIdentifies the geometry prototype to delete.

◆ DeleteIntegrator()

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

Deletes the specified integrator.

Parameters
[in]integratorIdIdentifies the integrator to delete.

◆ DeleteLightInstance()

virtual void Riley::DeleteLightInstance ( GeometryPrototypeId  groupPrototypeId,
LightInstanceId  lightInstanceId 
)
pure virtual

Deletes the specified instance of a geometric light.

Parameters
[in]groupPrototypeIdIdentifies the geometry prototype group to which the instance currently belongs. May be GeometryPrototypeId::k_InvalidId, signifying the instance belongs to no group.
[in]lightInstanceIdIdentifies the geometric light instance to delete.

◆ DeleteLightShader()

virtual void 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::DeleteMaterial ( MaterialId  materialId)
pure virtual

Deletes the specified material.

Parameters
[in]materialIdIdentifies the material to delete.

◆ DeleteRenderOutput()

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

Deletes a render output.

After this call, the id is no longer valid. A render output may not be deleted if there any render target still using it.

Parameters
[in]renderOutputRender output to delete.

◆ DeleteRenderTarget()

virtual RenderTargetResult Riley::DeleteRenderTarget ( RenderTargetId  renderTarget)
pure virtual

Deletes a render target and frees its storage.

After this call, the id is no longer valid. A render target may not be deleted if there are any displays attached to it.

Parameters
[in]renderTargetThe render target to delete.

◆ DeleteRenderView()

virtual RenderViewResult Riley::DeleteRenderView ( RenderViewId  renderViewId)
pure virtual

◆ DeleteSampleFilter()

virtual SampleFilterResult Riley::DeleteSampleFilter ( SampleFilterId  sampleFilterId)
pure virtual

Deletes the specified sample filter.

Parameters
[in]sampleFilterIdIdentifies the sample filter to delete.

◆ InvalidateTexture()

virtual void Riley::InvalidateTexture ( RtUString const  filename)
pure virtual

Indicates that a texture file has been modified, and should be flushed from the texture cache.

This is considered a scene edit and should not be called while Render() is running.

Parameters
[in]filenameThe texture file name. This should be an absolute path.

◆ ModifyCamera()

virtual CameraResult 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 nullptr 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.
[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.

◆ ModifyClippingPlane()

virtual ClippingPlaneResult Riley::ModifyClippingPlane ( ClippingPlaneId  clippingPlaneId,
Transform const *  xform,
RtParamList const *  params 
)
pure virtual

◆ ModifyCoordinateSystem()

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

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

Parameters
[in]coordsysIdIdentifies the coordinate system to modify.
[in]xform
[in]attributes
Returns
A CoordinateSystemResult value indicating success or failure.

◆ ModifyDisplacement()

virtual DisplacementResult Riley::ModifyDisplacement ( DisplacementId  displacementId,
ShadingNetwork const *  displacement,
RtParamList const *  attributes 
)
pure virtual

Modifies a displacement.

Parameters
[in]shadingNodesA displacement shading network.
[in]displacementIdIdentifies the displacement to be modified,.
[in]displacementAn optional displacement shading network.
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 ModifyGeometryPrototype() for all associated geometry prototypes.

◆ ModifyDisplay()

virtual DisplayResult Riley::ModifyDisplay ( DisplayId  display,
RenderTargetId const *  renderTarget,
RtUString const *  name,
RtUString const *  driver,
RenderOutputList const *  renderOutputs,
RtParamList const *  driverParams 
)
pure virtual

Modifies attributes of a display.

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

Parameters
[in]displayThe display to modify.

◆ ModifyDisplayFilter()

virtual DisplayFilterResult Riley::ModifyDisplayFilter ( DisplayFilterId  displayFilterId,
ShadingNetwork const *  displayFilter,
RtParamList const *  attributes 
)
pure virtual

Modifies a display filter.

Parameters
[in]displayFilterIdIdentifies the display filter to be modified.
[in]displayFilterAn optional display filter shading network.
[in]attributesOptional attributes associated with the shading network.
Returns
A DisplayFilterResult value. If k_Error is returned, the display filter was not successfully modified. If k_Success is returned, the display filter was successfully modified.

◆ ModifyGeometryInstance()

virtual GeometryInstanceResult Riley::ModifyGeometryInstance ( GeometryPrototypeId  groupPrototypeId,
GeometryInstanceId  instanceId,
MaterialId const *  materialId,
CoordinateSystemList const *  coordsysList,
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]groupPrototypeIdIdentifies the geometry prototype group in which the instance currently belongs. May be GeometryPrototypeId::k_InvalidId, signifying the instance belongs to no group.
[in]instanceIdThe geometry instance handle that will be modified.
[in]materialIdIf non-null, specifies a new material to be assigned to the geometry instance.
[in]coordsysList
[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 ModifyGeometryPrototype() for all associated geometry prototypes.

◆ ModifyGeometryPrototype()

virtual GeometryPrototypeResult Riley::ModifyGeometryPrototype ( RtUString  type,
GeometryPrototypeId  geoPrototypeId,
DisplacementId const *  displacementId,
RtPrimVarList const *  primvars 
)
pure virtual

Modifies a geometry prototype.

Parameters
[in]typeThe type of the geometry.
[in]geoPrototypeIdThe geometry prototype that will be modified.
[in]displacementIdIf non-null, changes the displacement shader assigned to the geometry prototype. May be DisplacementId::k_InvalidId, signifying no displacement.
[in]primvarsIf non-null, specifies a new set of primvars for the geometry prototype. It is expected that if provided, the primvars are a complete description, as it will completely overwrite the existing set of primvars.
Returns
A GeometryPrototypeResult value. If k_Error is returned, the geometry prototype was not successfully modified. If k_Success is returned, the geometry prototype was successfully modified. If k_ResendPrimVars is returned, the geometry prototype properties were successfully modified; in addition, the caller should immediately reissue the ModifyGeometryPrototype() call, and include the full primvars for the prototype.

◆ ModifyIntegrator()

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

Modifies an integrator.

Parameters
[in]integratorIdIdentifies the integrator to be modified.
[in]integratorNodeA shading node 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::ModifyLightInstance ( GeometryPrototypeId  groupPrototypeId,
LightInstanceId  lightInstanceId,
MaterialId const *  materialId,
LightShaderId const *  lightShaderId,
CoordinateSystemList const *  coordsysList,
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]groupPrototypeIdIdentifies the geometry prototype group in which the instance currently belongs. May be GeometryPrototypeId::k_InvalidId, signifying the instance belongs to no group.
[in]lightInstanceIdThe geometry light instance handle that will be modified. This must be a handle returned from CreateLightInstance().
[in]materialIdIf non-null, specifies a new material to be assigned to the geometry instance.
[in]lightShaderIdIf non-null, specifies a new light shader to be assigned to the geometry instance.
[in]coordsysList
[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 ModifyGeometryPrototype() for all associated geometry prototypes.

◆ ModifyLightShader()

virtual LightShaderResult Riley::ModifyLightShader ( LightShaderId  lightShaderId,
ShadingNetwork const *  light,
ShadingNetwork const *  lightFilter 
)
pure virtual

Modifies a light shader.

Parameters
[in]lightShaderIdIdentifies the light shader to be modified.
[in]lightAn optional light shading network.
[in]lightFilterAn optional light filter shading network.
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 ModifyGeometryPrototype() for all associated geometry prototypes.

◆ ModifyMaterial()

virtual MaterialResult Riley::ModifyMaterial ( MaterialId  materialId,
ShadingNetwork const *  bxdf,
RtParamList const *  attributes 
)
pure virtual

Modifies a material.

Parameters
[in]materialIdIdentifies the material to be modified.
[in]bxdfAn optional bxdf shading network.
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 ModifyGeometryPrototype() for all associated geometry prototypes.

◆ ModifyRenderOutput()

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

Modifies attributes of a render output.

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

◆ ModifyRenderTarget()

virtual RenderTargetResult Riley::ModifyRenderTarget ( RenderTargetId  renderTarget,
RenderOutputList const *  renderOutputs,
Extent const *  extent,
RtUString const *  filterMode,
float const *  pixelVariance,
RtParamList const *  params 
)
pure virtual

Modifies attributes of a render target.

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

Parameters
[in]renderTargetThe renderTarget to modify.

◆ ModifyRenderView()

virtual RenderViewResult Riley::ModifyRenderView ( RenderViewId  renderViewId,
RenderTargetId const *  renderTargetId,
CameraId const *  cameraId,
IntegratorId const *  integratorId,
DisplayFilterList const *  displayFilters,
SampleFilterList const *  sampleFilters,
RtParamList const *  params 
)
pure virtual

◆ ModifySampleFilter()

virtual SampleFilterResult Riley::ModifySampleFilter ( SampleFilterId  sampleFilterId,
ShadingNetwork const *  sampleFilter,
RtParamList const *  attributes 
)
pure virtual

Modifies a sample filter.

Parameters
[in]sampleFilterIdIdentifies the sample filter to be modified.
[in]sampleFilterAn optional sample filter shading network.
[in]attributesOptional attributes associated with the shading network.
Returns
A SampleFilterResult value. If k_Error is returned, the sample filter was not successfully modified. If k_Success is returned, the sample filter was successfully modified.

◆ Render()

virtual void Riley::Render ( RenderViewList const &  renderViews,
RtParamList const &  renderOptions 
)
pure virtual

Rendering Process APIs.

The following APIs are used to manipulate a rendering process started by calling Render():

  • stop the currently running render
  • modify properties of the currently running render
  • modify the metadata associated with existing riley entities.

Editing rendering process options and/or entity metadata does not affect the contents of the render outputs (i.e. framebuffer contents).Renders one or more views of a scene. Render() will run to completion unless:

  • it is stopped by an external signal
  • the application indicates it would like to edit the scene by calling Stop() (blocking) or RequestUpdate() (non-blocking)
  • the render call is configured to return after a fixed interval specified in either iterations or time (e.g. checkpointing)
Parameters
[in]renderOptionsRender options shared by all render views. These options may change for each Render() call. Currently supported:
  • "renderMode" (string):
    • "batch": The render will be optimized for best offline rendering performance.
    • "interactive" : The render is expected to be interrupted for edits and will be optimized for interactive responsiveness.

◆ RequestUpdate()

virtual StopResult Riley::RequestUpdate ( )
pure virtual

Requests the renderer to stop.

This call is non-blocking. The Render() call will return at some later time when the renderer is ready to synchronize scene edits.

Returns
riley::StopResult::k_Success if the renderer was rendering riley::StopResult::k_NotRendering otherwise

◆ SetDefaultDicingCamera()

virtual void Riley::SetDefaultDicingCamera ( CameraId  cameraId)
pure virtual

Sets the specified camera as active.

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

◆ SetOptions()

virtual void Riley::SetOptions ( RtParamList const &  sceneOptions)
pure virtual

Scene Manipulation APIs.

The following APIs are used to provide and/or modify the scene description. They can only be called during the editing phase (i.e. when Render() is not running).

Editing the scene description is expected to affect the render outputs.Sets the scene options. These are options that are part of the scene description, and may affect the render outputs.

Parameters
[in]sceneOptionsScene Options.

◆ SetRenderMetadata() [1/12]

virtual bool Riley::SetRenderMetadata ( CameraId  id,
RtParamList const &  metadata 
)
pure virtual

Sets metadata associated with a given riley entity.

This metadata shouldn't affect the render outputs, and can be modified during a render.

Returns
true If the render process edits are supported. false If the render process edits are not supported.

◆ SetRenderMetadata() [2/12]

virtual bool Riley::SetRenderMetadata ( GeometryPrototypeId  groupId,
GeometryInstanceId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [3/12]

virtual bool Riley::SetRenderMetadata ( GeometryPrototypeId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [4/12]

virtual bool Riley::SetRenderMetadata ( MaterialId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [5/12]

virtual bool Riley::SetRenderMetadata ( DisplacementId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [6/12]

virtual bool Riley::SetRenderMetadata ( IntegratorId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [7/12]

virtual bool Riley::SetRenderMetadata ( LightInstanceId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [8/12]

virtual bool Riley::SetRenderMetadata ( LightShaderId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [9/12]

virtual bool Riley::SetRenderMetadata ( CoordinateSystemId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [10/12]

virtual bool Riley::SetRenderMetadata ( RenderOutputId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [11/12]

virtual bool Riley::SetRenderMetadata ( RenderTargetId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderMetadata() [12/12]

virtual bool Riley::SetRenderMetadata ( DisplayId  id,
RtParamList const &  metadata 
)
pure virtual

◆ SetRenderSettings()

virtual bool Riley::SetRenderSettings ( RtParamList const &  renderOptions)
pure virtual

Sets the rendering process settings.

These are settings that only affects the current rendering process. They shouldn't affect the render outputs, and can be modified during a render.

Returns
true If the render process setting edits are supported. false If the render process setting edits are not supported.

◆ Stop()

virtual StopResult Riley::Stop ( )
pure virtual

Requests the renderer to stop.

This call is blocking, and returns after the Render() call has returned.

Returns
riley::StopResult::k_Success if the renderer was rendering riley::StopResult::k_NotRendering otherwise

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