Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Once a RixBxdf object is obtained, the integrator may invoke the following methods:

  • RixBxdf::GetEvaluateDomain() to figure out the domain over which the Bxdf evaluate samples;
  • RixBxdf::GenerateSample() to generate samples of the bxdf function, one sample for each point of the shading context;
  • RixBxdf::EvaluateSample() to evaluate the bxdf function, one direction for each point of the shading context;
  • RixBxdf::EvaluateSamplesAtIndex() to evaluate the bxdf function, one-or-many directions for a given point of the shading context;
  • RixBxdf::EmitLocal() to retrieve the bxdf's local emission.

...

The EvaluateSamplesAtIndex() function is very similar to EvaluateSample(), but is used to evaluate multiple samples at the same surface position and normal, but with different illumination directions (Ln). The inputs are the same as for EvaluateSample(), except that it has two additional inputs: index and number of samples numSamples. index is used to index into built-in variables such as the normal Nn and viewing direction Vn, and numSamples is the number of directions (Ln) to evaluate the bxdf for. The functionality of EvaluateSamplesAtIndex() otherwise is similar to EvaluateSample()and exists in order to make sample evaluation more efficient in certain light transport settings.

Evaluation Domain

Bxdfs can help integrators converge more quickly by providing hints about the domain over which they need to be integrated (the full domain being the entire sphere). This is done by the bxdf implementing a RixBxdf::GetEvaluateDomain() function that returns the appropriate RixBXEvaluateDomain value. For more information, please see Bxdf Evaluation Domain.


RixOpacity

The renderer will invoke the following methods on RixOpacity:

...