RenderMan API  23.0
RixVolumeServices Class Referenceabstract

#include <RixVolume.h>

Inheritance diagram for RixVolumeServices:
RixInterface

Public Member Functions

 RixVolumeServices ()
 
virtual void Begin (RixShadingContext const *sCtx)=0
 
virtual void End ()=0
 
virtual int GetDensityRanges (const RtPoint3 &pt0, const RtPoint3 &pt1, float length, float maxDensity, float **dist, float **minDensities, float **maxDensities, float *minTrans, float *maxTrans) const =0
 
virtual RixSCDetail EvalTemporalParam (int paramId, int arrayIndex, float const **result, float const *dflt) const =0
 
virtual RixSCDetail EvalTemporalParam (int paramId, int arrayIndex, RtColorRGB const **result, RtColorRGB const *dflt) const =0
 
virtual RixSCDetail EvalTemporalParam (int paramId, int arrayIndex, RtFloat3 const **result, RtFloat3 const *dflt) const =0
 
virtual RixVolumeAggregateGetAggregate (RtUString const name, int numRays, RtRayGeometry const *rays, RtUString const subset=US_NULL, RtUString const excludeSubset=US_NULL) const =0
 
- Public Member Functions inherited from RixInterface
virtual int GetVersion () const
 

Protected Member Functions

virtual ~RixVolumeServices ()
 
- Protected Member Functions inherited from RixInterface
 RixInterface (int version)
 Interfaces should not be constructed by users. More...
 
virtual ~RixInterface ()
 Interfaces should not be deleted by users. More...
 

Protected Attributes

RixShadingContext const * shadingCtx
 
- Protected Attributes inherited from RixInterface
int m_version
 Version number of this interface. More...
 

Additional Inherited Members

- Public Types inherited from RixInterface
enum  Type {
  k_Float, k_Integer, k_StringV, k_Color,
  k_Normal, k_Vector, k_Point, k_HPoint,
  k_MPoint, k_Matrix
}
 

Detailed Description

The RixVolumeServices interface allow the renderer to provide services that are useful for volume integration. Currently, these include services that bound the minimum and maximum density of a RiVolume.

Definition at line 208 of file RixVolume.h.

Constructor & Destructor Documentation

◆ RixVolumeServices()

RixVolumeServices::RixVolumeServices ( )
inline

Definition at line 211 of file RixVolume.h.

◆ ~RixVolumeServices()

virtual RixVolumeServices::~RixVolumeServices ( )
inlineprotectedvirtual

Definition at line 256 of file RixVolume.h.

Member Function Documentation

◆ Begin()

virtual void RixVolumeServices::Begin ( RixShadingContext const *  sCtx)
pure virtual

◆ End()

virtual void RixVolumeServices::End ( )
pure virtual

◆ EvalTemporalParam() [1/3]

virtual RixSCDetail RixVolumeServices::EvalTemporalParam ( int  paramId,
int  arrayIndex,
float const **  result,
float const *  dflt 
) const
pure virtual

◆ EvalTemporalParam() [2/3]

virtual RixSCDetail RixVolumeServices::EvalTemporalParam ( int  paramId,
int  arrayIndex,
RtColorRGB const **  result,
RtColorRGB const *  dflt 
) const
pure virtual

◆ EvalTemporalParam() [3/3]

virtual RixSCDetail RixVolumeServices::EvalTemporalParam ( int  paramId,
int  arrayIndex,
RtFloat3 const **  result,
RtFloat3 const *  dflt 
) const
pure virtual

◆ GetAggregate()

virtual RixVolumeAggregate* RixVolumeServices::GetAggregate ( RtUString const  name,
int  numRays,
RtRayGeometry const *  rays,
RtUString const  subset = US_NULL,
RtUString const  excludeSubset = US_NULL 
) const
pure virtual

◆ GetDensityRanges()

virtual int RixVolumeServices::GetDensityRanges ( const RtPoint3 pt0,
const RtPoint3 pt1,
float  length,
float  maxDensity,
float **  dist,
float **  minDensities,
float **  maxDensities,
float *  minTrans,
float *  maxTrans 
) const
pure virtual

When invoked on a shading context bound to RiVolume geometry, GetDensityRanges returns information about the minimum and maximum densities encountered on a straight line between two points in the volume. pt0 and pt1 are points in the RiVolume that must be in UVW space. length is the distance between the two points; this can be measured in any convenient space. maxDensity is a value that overrides the actual maximum density reported by the volume (the minimum of both will be used).

The return value is the number of ranges that divide the interval, implicitly starting at the first point. The output arrays are allocated by the shading context, and are all sized to the number of return ranges. dist contains the endpoint of each interval, relative to the input length. minDensities and maxDensities contain the minimum and maximum densities of each interval. minTrans and maxTrans contain lower and upper bounds on the transmissivity over the entire interval.

Member Data Documentation

◆ shadingCtx

RixShadingContext const* RixVolumeServices::shadingCtx
protected

Definition at line 258 of file RixVolume.h.


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