The PbrSheen class This implementation of a microfacet model is based on the paper Production Friendly Microfacet Sheen BRDF.
More...
|
void | configure (REAL roughness) |
|
virtual REAL | get_roughness () const final |
|
virtual REAL | sample (const GMathVec3< REAL > &wi_local, REAL u, REAL v, GMathVec3< REAL > &h_local, REAL &weight) const final |
| sample Uses the provided samples in the domain [0,1] in order to generate a candidate outgoing direction. Once this vector is computed, the sample function also computes and returns the PDF of the distribution function for the candidate normal.
|
|
virtual REAL | evaluate (const GMathVec3< REAL > &wi_local, const GMathVec3< REAL > &h_local, REAL &weight) const final |
| evaluate Compute the ndf and return the pdf of the current sample
|
|
virtual REAL | lambda (const GMathVec3< REAL > &w_local, bool is_wo) const final |
| lambda function used to evaluate geometric shadowing and masking of the microfacet distribution
|
|
template<typename REAL = double>
class PbrSheen< REAL >
The PbrSheen class This implementation of a microfacet model is based on the paper Production Friendly Microfacet Sheen BRDF.
evaluate Compute the ndf and return the pdf of the current sample
- Parameters
-
wi_local | the incoming direction at the surface point, in local space |
h_local | the sampled normal computed by the function, in local space |
weight | the output ratio of the normal distribution function and the PDF |
- Returns
- the pdf
Implements PbrMicrofacetDistribution< REAL >.
template<typename REAL >
REAL PbrSheen< REAL >::lambda |
( |
const GMathVec3< REAL > & |
w_local, |
|
|
bool |
is_wo |
|
) |
| const |
|
finalvirtual |
lambda function used to evaluate geometric shadowing and masking of the microfacet distribution
- Parameters
-
w_local | the ray direction in local space (incoming or outgoing) |
h_local | the half angle vector in local space |
is_wo | If true it means that w_local is the incomming direction at the surface point else it is the outgoing direction |
- Returns
- a term used to compute the shadowing and masking function
Implements PbrMicrofacetDistribution< REAL >.
template<typename REAL >
REAL PbrSheen< REAL >::sample |
( |
const GMathVec3< REAL > & |
wi_local, |
|
|
REAL |
u, |
|
|
REAL |
v, |
|
|
GMathVec3< REAL > & |
h_local, |
|
|
REAL & |
weight |
|
) |
| const |
|
finalvirtual |
sample Uses the provided samples in the domain [0,1] in order to generate a candidate outgoing direction. Once this vector is computed, the sample function also computes and returns the PDF of the distribution function for the candidate normal.
- Parameters
-
wi_local | the incoming direction at the surface point, in local space |
u | the 2D sample |
v | the 2D sample |
h_local | the sampled normal computed by the function, in local space |
weight | the output ratio of the normal distribution function and the PDF |
- Returns
- the PDF of the distribution function for the candidate normal.
Implements PbrMicrofacetDistribution< REAL >.