67 virtual bool Advance(
float distance) = 0;
139 int* numShadingContexts,
148 int* numShadingContexts,
159 int** memberships = NULL,
160 int* numNewShadingContexts = NULL,
172 RtPoint3* positions,
bool* sampleFailed) = 0;
198 float* confidences) = 0;
217 virtual void End() = 0;
238 float maxDensity,
float** dist,
float** minDensities,
239 float** maxDensities,
float* minTrans,
float* maxTrans)
const = 0;
242 float const* dflt)
const = 0;
#define US_NULL
Definition: RiTypesHelper.h:683
virtual void AddToIrradianceQueries(RixVolumeAggregateIterator *iterator, int stepNum, RixVolumeIrradianceEstimateContext *queryContext)=0
Take the points in space referenced by the iterators' current states and add them to the query contex...
All-inlined interface for generating sample points for use by Monte Carlo integration and multiple-im...
Definition: RixRNG.h:59
virtual float GetMinDensity() const =0
RixShadingContext is analogous to a RenderMan grid - it is a group of 1 or more points that may be sh...
Definition: RixShading.h:663
virtual void ComputeDensity(RixVolumeAggregateIterator **iterators, float *densities)=0
Given a set of iterators, computes the volume aggregate densities at each iterator's current distance...
This class can be used by an aggregate to queue up a set of estimate queries for later evaluation via...
Definition: RixVolume.h:48
virtual bool Advance(float distance)=0
pxrcore::ColorRGB RtColorRGB
Definition: RiTypesHelper.h:520
Definition: RixVolume.h:102
virtual ~RixVolumeIrradianceEstimateContext()
Definition: RixVolume.h:54
virtual float GetMaxDensity() const =0
virtual RixSCDetail EvalTemporalParam(int paramId, int arrayIndex, float const **result, float const *dflt) const =0
Base class for all Rix interfaces.
Definition: RixInterfaces.h:133
virtual void ComputeEmission(RixVolumeAggregateIterator **iterators, RtColorRGB *emissions)=0
Given a set of iterators, computes the volume aggregate emissions at each iterator's current distance...
virtual void ReleaseScatterContexts(int numShadingContexts, RixShadingContext **shadingContexts, RixBXLobeTraits const *exposeVol=NULL, int **memberships=NULL, int *numNewShadingContexts=NULL, RixShadingContext const **newShadingContexts=NULL)=0
Releases shading contexts created by a call to CreateScatterContexts.
virtual ~RixVolumeAggregate()
Definition: RixVolume.h:105
The RixVolumeServices interface allow the renderer to provide services that are useful for volume int...
Definition: RixVolume.h:208
RtFloat3 RtPoint3
Definition: RiTypesHelper.h:70
virtual void GenerateLightSamples(RixVolumeAggregateIterator **iterators, RixRNG *rng, RixLightingServices *lightingServices, float *maxDistances, RtPoint3 *positions, bool *sampleFailed)=0
Asks the given lighting services to generate a set of light sampling locations given the current posi...
virtual float GetRaySpread() const =0
RixSCDetail
RixSCDetail enumerates the valid sizing qualifiers for SC parameters.
Definition: RixShading.h:432
virtual float GetOriginRadius() const =0
virtual RixVolumeAggregateIterator & operator=(const RixVolumeAggregateIterator &rhs)=0
virtual RtVector3 GetDirection() const =0
RixVolumeServices()
Definition: RixVolume.h:211
Definition: RixIntegrator.h:234
Definition: RixVolume.h:99
VolumeAggregateProperty
Definition: RixVolume.h:97
pxrcore::Float3 RtFloat3
Definition: RiTypesHelper.h:69
virtual float GetTotalDistance() const =0
~RixVolumeServices() override
Definition: RixVolume.h:258
virtual ~RixVolumeAggregateIterator()
Definition: RixVolume.h:61
virtual RixVolumeAggregate * GetAggregate(RtUString const name, int numRays, RtRayGeometry const *rays, RtUString const subset=US_NULL, RtUString const excludeSubset=US_NULL) const =0
bool finished
Definition: RixVolume.h:88
virtual float GetSegmentEnd() const =0
RixVolumeAggregateIterator()
Definition: RixVolume.h:93
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
When invoked on a shading context bound to RiVolume geometry, GetDensityRanges returns information ab...
float currentDistance
Definition: RixVolume.h:90
Definition: RixVolume.h:58
Usage
Definition: RixLighting.h:142
RixShadingContext const * shadingCtx
Definition: RixVolume.h:260
RixVolumeIrradianceEstimateContext()
Definition: RixVolume.h:51
virtual bool SetProperty(VolumeAggregateProperty, void const *in)=0
Sets various desired properties of the volume aggregate.
virtual RixVolumeAggregateIterator * CreateIterator(int index)=0
Creates a new iterator bound to the ray indicated by index.
virtual void CreateScatterContexts(RixVolumeAggregateIterator **iterators, int *numShadingContexts, RixShadingContext **shadingContexts)=0
Given a set of iterators, creates a set of shading contexts that can be used to compute volumetric sc...
virtual void Begin(RixShadingContext const *sCtx)=0
virtual RtPoint3 GetOrigin() const =0
virtual void ServiceIrradianceQueries(RixVolumeIrradianceEstimateContext *queryContext, RixLightingServices *lightingServices, float *estimates, float *confidences)=0
Return an estimate of the irridiance incident on the points accumulated in the query context...
This struct represents the characteristics of potentially several lobes of a bxdf in aggregate...
Definition: RixBxdfLobe.h:178
pxrcore::UString RtUString
Definition: RiTypesHelper.h:682
virtual RixVolumeIrradianceEstimateContext * CreateIrradianceEstimateContext()=0
Create a query context for use by the add and service functions below.
RtFloat3 RtVector3
Definition: RiTypesHelper.h:72
virtual bool HasAggregate(RtUString const name, bool &hasMatte) const =0