232 int* fixedSampleCount =
nullptr,
234 int depth = 0,
int parentIndirectCount = 1) = 0;
328 int numLightSamples,
RixRNG* rixRNG,
335 float* distancesToSamples,
340 float* directLightingPdfs,
341 float* selectionProbs,
347 float* evaluatedMaterialFPdfs,
348 float* evaluatedMaterialRPdfs,
412 int numLightSamples,
RixRNG* rixRNG,
419 float* distancesToSamples,
424 float* directLightingPdfs,
425 float* selectionProbs,
427 float* emissionPositionPdfs,
428 float* emissionDirectionPdfs,
429 float* solidAngleToAreaFactors,
436 float* evaluatedMaterialFPdfs,
437 float* evaluatedMaterialRPdfs,
472 RixRNG* rixRNG,
float* maxDistances,
RtVector3* samplePositions,
float* selectionProbs,
473 float* segmentMinT,
float* segmentMaxT) = 0;
553 int numMaterialSamples,
RixRNG* rixRNG,
560 float const* materialPdfs,
570 float* directLightingPdfs,
571 float* selectionProbs,
630 int numMaterialSamples,
RixRNG* rixRNG,
637 float const* materialPdfs,
647 float* directLightingPdfs,
648 float* selectionProbs,
650 float* emissionPositionPdfs,
651 float* emissionDirectionPdfs,
652 float* solidAngleToAreaFactors,
807 int const* integratorContextIndices,
809 int numSamples,
RixRNG* rixRNG,
819 int* numShadingContexts,
825 float* directLightingPdfs,
826 float* selectionProbs,
827 float* emissionPositionsPdfs,
829 float* emissionCosines,
830 float* emissionDirectionPdfs,
831 float* solidAngleToAreaFactors,
840 virtual void End() = 0;
867 RtColorRGB const* trans,
float const* lPdfDirect,
868 float const* lightSelectionProbs,
float const* distances,
877 float* estimates,
float* confidences) = 0;
All-inlined interface for generating sample points for use by Monte Carlo integration and multiple-im...
Definition: RixRNG.h:59
RixShadingContext is analogous to a RenderMan grid - it is a group of 1 or more points that may be sh...
Definition: RixShading.h:663
Definition: RixPhotonGuiding.h:51
virtual void GenerateSamples(int numLightSamples, RixRNG *rixRNG, int *lightGroupIds, RixLPEToken *lightLpeTokens, RtVector3 *directionsToSamples, RtNormal3 *lightNormals, float *distancesToSamples, RixBXLobeWeights *lightContributions, RtColorRGB *transmissions, RtColorRGB *volumeEmissions, float *directLightingPdfs, float *selectionProbs, RixBXLobeTraits const *materialLobesWanted, RixBXLobeWeights *evaluatedMaterialWeights, float *evaluatedMaterialFPdfs, float *evaluatedMaterialRPdfs, RixBXLobeTraits *evaluatedMaterialLobes, RixLight **sampledLights, RtColorRGB const *pathThroughputs=nullptr, RixMWConnectionResult *mwConnectionResult=nullptr)=0
Generates light samples for the shading points encapsulated by the RixShadingContext given to Begin()...
virtual RtUString GetLightGroupName(int i)=0
virtual void EvaluateSamples(int numMaterialSamples, RixRNG *rixRNG, RtVector3 const *directions, float *distances, float const *materialPdfs, RixBXLobeWeights const *materialWeights, RixBXLobeSampled const *materialLobeSampled, int *lightGroupIds, RixLPEToken *lightLpeTokens, RixBXLobeWeights *lightContributions, RtColorRGB *transmissions, RtColorRGB *volumeEmissions, float *directLightingPdfs, float *selectionProbs, RtNormal3 *lightNormals, RixLight **evaluatedLights, RtColorRGB const *pathThroughputs=nullptr)=0
Evaluate light contributions for the provided directions, w.r.t.
virtual int GetNumLightGroups()=0
RixLight This base class defines the interface for light sources.
Definition: RixLight.h:117
RixBXEvaluateDomain
The RixBxdf interface is a shading plugin responsible for creating a RixBxdf from the the ShadingCont...
Definition: RixBxdf.h:121
pxrcore::ColorRGB RtColorRGB
Definition: RiTypesHelper.h:520
Definition: RixLighting.h:173
Base class for all Rix interfaces.
Definition: RixInterfaces.h:133
virtual int GetLightGroup(RtUString const name)=0
RtFloat3 RtPoint3
Definition: RiTypesHelper.h:70
RixShadingContext const * shadingCtx
Definition: RixLighting.h:884
int RixLPEToken
Definition: RixInterfaces.h:977
virtual int GetTotalFixedSamples()=0
Definition: RixLighting.h:188
virtual void EndEmission()=0
Must be call in pair with BeginEmission().
This struct represents the characteristics of just one lobe of a bxdf.
Definition: RixBxdfLobe.h:63
Deprecated, always use default-constructed object.
Definition: RixLighting.h:182
Definition: RixBxdfLobe.h:428
FixedSampleCountMode
Definition: RixLighting.h:171
Definition: RixLighting.h:153
Definition: RixManifoldWalkConnection.h:42
RixLightingServices()
Definition: RixLighting.h:145
virtual void Begin(RixShadingContext const *shadingContext, RixRNG *rixRNG, RixBXEvaluateDomain evaluationDomain, IntegratorIntent integratorIntent, FixedSampleCountMode fixedSampleCountMode, SampleMode sampleMode, int *fixedSampleCount=nullptr, int depth=0, int parentIndirectCount=1)=0
Initializes the lighting services for a given shading context.
virtual ~RixLightingServices()
Definition: RixLighting.h:882
Definition: RixLighting.h:151
IntegratorIntent
Definition: RixLighting.h:149
virtual void GenerateEmission(int numPts, int const *integratorContextIndices, int const *rayIds, int numSamples, RixRNG *rixRNG, int *lightGroupIds, RixLPEToken *lightLpeTokens, RixBXLobeWeights *lightContributions, RtColorRGB *transmissions, RtColorRGB *volumeEmissions, int *numShadingContexts, RixShadingContext const ***shadingContexts, RtPoint3 *emissionPositions, RtVector3 *emissionNormals, float *distances, float *directLightingPdfs, float *selectionProbs, float *emissionPositionsPdfs, RtVector3 *emissionDirections, float *emissionCosines, float *emissionDirectionPdfs, float *solidAngleToAreaFactors, RixPhotonGuiding const *photonGuide=nullptr)=0
Generates photons on the surface of the lights, then trace them through the scene.
RtFloat3 RtNormal3
Definition: RiTypesHelper.h:73
virtual int GetTotalNumLights()=0
Definition: RixBxdf.h:150
SampleMode()
Definition: RixLighting.h:193
RixBXEvaluateDomain domain
Definition: RixLighting.h:885
Usage
Definition: RixLighting.h:142
virtual int GetTotalNumLightsWithFixedSamples()=0
virtual void GenerateSamplesForRaySegments(int numLightSamples, RixRNG *rixRNG, float *maxDistances, RtVector3 *samplePositions, float *selectionProbs, float *segmentMinT, float *segmentMaxT)=0
Generates light samples for the line segments encapsulated by the RixShadingContext given to Begin() ...
virtual void UpdateWithResults(int nSamples, RixBXLobeWeights const *contribution, RtColorRGB const *trans, float const *lPdfDirect, float const *lightSelectionProbs, float const *distances, RixBXLobeWeights const *evaluatedMaterialWeights, const RixLight *const *lights)=0
Optional function to update the lighting services with results after the caller has independently com...
Mode
Definition: RixLighting.h:185
Definition: RixLighting.h:152
FixedSampleCountMode Mode
Definition: RixLighting.h:177
Mode mode
Definition: RixLighting.h:191
This struct represents the characteristics of potentially several lobes of a bxdf in aggregate...
Definition: RixBxdfLobe.h:178
virtual void End()=0
Must be call in pair with Begin().
pxrcore::UString RtUString
Definition: RiTypesHelper.h:682
virtual void BeginEmission(FixedSampleCountMode mode, int *fixedSampleCount=nullptr)=0
Initializes the lighting services for photon emission.
Definition: RixLighting.h:187
virtual void IrradianceEstimate(uint32_t lightSetId, RtPoint3 const *points, int numPts, float *estimates, float *confidences)=0
Return an estimates of the irridiance incident on a set of points in space This will be zero if no es...
RtFloat3 RtVector3
Definition: RiTypesHelper.h:72
Definition: RixLighting.h:174
Definition: RixLighting.h:175