RenderMan API  23.0
RixPattern Class Referenceabstract

#include <RixPattern.h>

Inheritance diagram for RixPattern:
RixShadingPlugin

Classes

struct  Bake2dSpec
 Output specification for 2d baking. More...
 
struct  Bake3dSpec
 Output specification for 3d baking. More...
 
struct  OutputSpec
 

Public Member Functions

virtual int GetInterface () const override
 
virtual int ComputeOutputParams (RixShadingContext const *sCtx, int *numOutputs, OutputSpec **outputs, RtPointer instanceData, RixSCParamInfo const *instanceTable)=0
 
virtual bool Bake2dOutput (RixBakeContext const *bCtx, Bake2dSpec &output, RtPointer instanceData)=0
 
virtual bool Bake3dOutput (RixBakeContext const *bCtx, Bake3dSpec &output, RtPointer instanceData)=0
 
- Public Member Functions inherited from RixShadingPlugin
virtual int GetVersion () const
 
virtual int Init (RixContext &ctx, RtUString const pluginPath)=0
 
virtual void Finalize (RixContext &ctx)=0
 
virtual RixSCParamInfo const * GetParamTable ()=0
 
virtual void Synchronize (RixContext &ctx, RixSCSyncMsg syncMsg, RixParameterList const *syncParams)=0
 
virtual void CreateInstanceData (RixContext &rixCtx, RtUString const handle, RixParameterList const *parameterList, InstanceData *instanceData)
 
virtual void SynchronizeInstanceData (RixContext &rixCtx, RtUString const handle, RixParameterList const *instanceParams, uint32_t const editHints, InstanceData *instanceData)
 

Protected Member Functions

 RixPattern ()
 
virtual ~RixPattern ()
 
- Protected Member Functions inherited from RixShadingPlugin
 RixShadingPlugin (int version)
 
virtual ~RixShadingPlugin ()
 

Additional Inherited Members

- Public Types inherited from RixShadingPlugin
enum  SynchronizeHints { k_None = 0x00000000, k_All = 0xFFFFFFFF }
 
- Protected Attributes inherited from RixShadingPlugin
int m_version
 

Detailed Description

The RixPattern interface characterizes pattern generation for the purposes of RixBxdf parameterization. Non-constant patterns can themselves be parameterized by some aspect of the RixShadingContext. Typically, RixPatterns operate atop a filter width associated with the shading context. Internally RixPatterns, in order to respond to the ComputeOuputParams request, must request the RixShadingContext to evaulate input parameters associated with the named outputs.

Definition at line 58 of file RixPattern.h.

Constructor & Destructor Documentation

◆ RixPattern()

RixPattern::RixPattern ( )
inlineprotected

Definition at line 150 of file RixPattern.h.

◆ ~RixPattern()

virtual RixPattern::~RixPattern ( )
inlineprotectedvirtual

Definition at line 151 of file RixPattern.h.

Member Function Documentation

◆ Bake2dOutput()

virtual bool RixPattern::Bake2dOutput ( RixBakeContext const *  bCtx,
Bake2dSpec output,
RtPointer  instanceData 
)
pure virtual

This method is called when baking for every pattern parameter. Valid outputs must specify Bake2dOutput::filename, Bake2dOutput::display and Bake2dOutput::primVar. Space for Bake2dOutput member strings can be allocated via RixBakeContext::Allocate. Initially, Bake2dOutput is called for the (0, 0) UV-tile. If Bake2dOutput::atlas is set to RI_TRUE, additional call to this method will be made for each uv-tile. Returns true for valid bake 2d outputs. A trivial implementation simply returns false, signifying no valid outputs. Note: this method is called before SynchronizeInstanceData(), meaning the plugins needs to initialize the appropriate parts of its instance data in CreateInstanceData().

◆ Bake3dOutput()

virtual bool RixPattern::Bake3dOutput ( RixBakeContext const *  bCtx,
Bake3dSpec output,
RtPointer  instanceData 
)
pure virtual

This method is called when baking for every pattern parameter. Valid outputs must specify Bake3dOutput::filename and Bake3dOutput::display. Space for Bake3dOutput member strings can be allocated via RixBakeContext::Allocate. Returns true for valid bake 3d outputs. A trivial implementation simply returns false, signifying no valid outputs. Note: this method is called before SynchronizeInstanceData(), meaning the plugins needs to initialize the appropriate parts of its instance data in CreateInstanceData().

◆ ComputeOutputParams()

virtual int RixPattern::ComputeOutputParams ( RixShadingContext const *  sCtx,
int *  numOutputs,
OutputSpec **  outputs,
RtPointer  instanceData,
RixSCParamInfo const *  instanceTable 
)
pure virtual

Patterns are expected to allocate space for OutputSpec array and buffers for all output values via RixShadingContext::Allocate. The optional instanceTable returned by plugin's CreateInstanceData is managed by the renderer and delivered with the associated instance. Plugins that don't support the optional override capability can ignore the instanceTable parameter. returns 0 for success, non-zero for error

◆ GetInterface()

virtual int RixPattern::GetInterface ( ) const
inlineoverridevirtual

Reimplemented from RixShadingPlugin.

Definition at line 61 of file RixPattern.h.


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