|
virtual | ~RixVolumeAggregate () |
|
virtual RixVolumeAggregateIterator * | CreateIterator (int index)=0 |
| Creates a new iterator bound to the ray indicated by index. More...
|
|
virtual void | ComputeDensity (RixVolumeAggregateIterator **iterators, float *densities)=0 |
| Given a set of iterators, computes the volume aggregate densities at each iterator's current distance. More...
|
|
virtual void | ComputeEmission (RixVolumeAggregateIterator **iterators, RtColorRGB *emissions)=0 |
| Given a set of iterators, computes the volume aggregate emissions at each iterator's current distance. More...
|
|
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 scattering at each iterator's current distance. More...
|
|
virtual void | CreateScatterContexts (RixShadingContext const *parentContext, RixVolumeAggregateIterator **iterators, int *numShadingContexts, RixShadingContext **shadingContexts)=0 |
| Same as above, but allows for an explicit parent context to be specified. More...
|
|
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. More...
|
|
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 position of the iterator in the volume. More...
|
|
virtual void | ComputeDensity (RixVolumeAggregateIterator **iterators, RtColorRGB *densities)=0 |
| Given a set of iterators, computes the volume aggregate densities at each iterator's current distance. More...
|
|
virtual bool | SetProperty (VolumeAggregateProperty, void const *in)=0 |
| Sets various desired properties of the volume aggregate. More...
|
|
virtual RixVolumeIrradianceEstimateContext * | CreateIrradianceEstimateContext ()=0 |
| Create a query context for use by the add and service functions below. More...
|
|
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 context. More...
|
|
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. More...
|
|
virtual void RixVolumeAggregate::ReleaseScatterContexts |
( |
int |
numShadingContexts, |
|
|
RixShadingContext ** |
shadingContexts, |
|
|
RixBXLobeTraits const * |
exposeVol = NULL , |
|
|
int ** |
memberships = NULL , |
|
|
int * |
numNewShadingContexts = NULL , |
|
|
RixShadingContext const ** |
newShadingContexts = NULL |
|
) |
| |
|
pure virtual |
Releases shading contexts created by a call to CreateScatterContexts.
If the optional parameters exposeVol, memberships, numNewShadingContexts, and newShadingContexts are not set, the shading contexts are simply freed. Otherwise, a new set of shading contexts is created which can be retained past the lifetime of the RixVolumeAggregate object.