Celeritas 0.7.0-dev.170+develop.df22d2a88
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::optical::LambertianDistribution Class Reference

Sample a reflected vector from a diffuse Lambertian distribution. More...

#include <LambertianDistribution.hh>

Public Member Functions

CELER_FUNCTION LambertianDistribution (Real3 const &normal)
 Construct distribution about a normal.
 
template<class Engine >
CELER_FUNCTION Real3 operator() (Engine &) const
 Sample by Lambertian cosine law.
 

Detailed Description

Sample a reflected vector from a diffuse Lambertian distribution.

Lambertian reflectance is an approximation of a diffuse material where the apparent brightness is equal for observers at all angles. Reflected vectors follow Lambert's cosine law, which states the intensity of reflected light is proportional to the cosine of the reflection angle \( \alpha \):

\[ I = I_0 \cos \alpha \]

Treating the incident light as a collection of photons, they are reflected with probability \( p(\alpha) = \cos\alpha \) about the surface normal, and the azimuthal angle is uniformly randomly sampled.


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