Clarisse 5.0 SP8 SDK  5.0.5.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | List of all members
PbrHairR Class Reference
Inheritance diagram for PbrHairR:
PbrSurface PbrBxdf CoreScratchpadObject

Public Member Functions

void configure (const GMathVec3d &shading_normal, const GMathVec3f &albedo, const float &longitudinal_shift, const float &longitudinal_width, const unsigned int type_lobe, PbrHairData *hair_data, bool backward_compatibility=false)
 
- Public Member Functions inherited from PbrSurface
void configure (const GMathVec3d &geom_normal, const GMathVec3d &shading_normal, const GMathVec3f &albedo, const float &roughness, BxDFTypeFlags type_flags, const PbrIntegrationDomain &integration_domain, const GMathVec3f &exit_color=GMathVec3f(0.0f))
 
const GMathVec3d & get_geometric_normal () const
 
virtual bool check_integration_domain () const
 check_integration_domain
 
- Public Member Functions inherited from PbrBxdf
void configure (const GMathVec3f &albedo, const GMathVec3d &normal, const float &roughness, BxDFTypeFlags type_flags, const PbrIntegrationDomain &integration_domain, const GMathVec3f &exit_color=GMathVec3f(0.0))
 configure Configure the bxdf
 
const GMathVec3f & get_albedo () const
 get_albedo
 
const GMathVec3d & get_normal () const
 get_normal
 
const float & get_roughness () const
 get_roughness
 
const BxDFTypeFlags & get_type_flags () const
 get_type_flags
 
const PbrIntegrationDomain & get_integration_domain () const
 get_integration_domain
 
virtual unsigned int get_scatter_sample_dimension () const
 Return the dimension of the variable needed to compute scattering samples.
 
virtual float get_sampling_weight (const GMathVec3d &wi) const
 get_sampling_weight
 
virtual float get_sampling_multiplier () const
 get_sampling_multiplier
 
virtual unsigned int get_sampling_dimension () const
 get_sampling_dimension
 
void sample (const GMathVec3d &wi, const PbrRandVar &var, const PbrScatter *scatter, PbrSample &sample) const
 Generate a sample (take in account fresnels and absorptions)
 
void evaluate (const GMathVec3d &wi, const PbrSample &sample, const PbrScatter *scatter, PbrEval &eval) const
 Compute the response of the object being hit by a sample (take in account fresnels and absorptions)
 
virtual bool scatter (const CtxEval &eval_ctx, CtxShader &shader_ctx, const PbrRandVar &var, PbrScatter &scatter) const
 Generate a scattering position.
 
virtual float scatter_pdf (const PbrScatter &scatter) const
 Compute the value of the PDF for a scattering position using the bxdf properties.
 
virtual float get_scatter_profile_scale () const
 Compute the global scale of the SSS profile.
 
virtual void sample_diff (const GMathVec3d &wi, const PbrSample &sample, const GMathVec3d &dwi, const GMathVec2d &duv, GMathVec3d &dwo) const
 Compute differentials for a given sample.
 
bool is_empty () const
 is_empty
 
bool has_any_flag (const BxDFTypeFlags &to_match) const
 has_any_flag
 
void set_fresnel (const PbrFresnel *fresnel)
 set_fresnel Set a fresnel to the bxdf
 
void set_bxdf_normalisation (const PbrBxdfNormalisation *normalisation)
 set_bxdf_normalisation Set a normalisation to the bxdf
 
void set_directional_absorption (const PbrDirectionalAbsorption *absorption)
 set_directional_absorption Set an abosrption to the bxdf
 
void set_empty ()
 set_empty Set the type of the bxdf has empty
 
const GMathVec3f & get_exit_color () const
 get_exit_color
 
const PbrFresnelget_fresnel () const
 
const PbrBxdfNormalisationget_bxdf_normalisation () const
 
const UniqueStringget_lpe_label () const
 return lpe label id associated to this bxdf
 
void set_lpe_label (const UniqueString &label)
 Set the lpe label id associated to the this bxdf.
 
- Public Member Functions inherited from CoreScratchpadObject
virtual ~CoreScratchpadObject ()
 Implement this virtual destructor in your data class, the memory scratchpad will call it on the reset call.
 

Protected Member Functions

virtual void raw_sample (const GMathVec3d &wi, const PbrRandVar &var, const PbrScatter *scatter, PbrSample &sample) const
 Generate a sample (doesn't take in account fresnels and absorptions)
 
virtual void raw_evaluate (const GMathVec3d &wi, const PbrSample &sample, const PbrScatter *scatter, PbrEval &eval) const
 Compute the response of the object being hit by a sample (doesn't take in account fresnels and absorptions)
 

Additional Inherited Members

- Static Public Attributes inherited from PbrBxdf
static const float s_min_roughness = 0.001f
 
static const float s_max_roughness = 0.999f
 

Detailed Description

HairR: Primary (and secondary, aka TRT lobe) highlight

Member Function Documentation

void PbrHairR::raw_evaluate ( const GMathVec3d &  wi,
const PbrSample sample,
const PbrScatter scatter,
PbrEval eval 
) const
protectedvirtual

Compute the response of the object being hit by a sample (doesn't take in account fresnels and absorptions)

Parameters
widirection of the eye
samplethe sample to evaluate
scatterscattering position corresponding to the sample
evalresult of the evaluation

Implements PbrBxdf.

void PbrHairR::raw_sample ( const GMathVec3d &  wi,
const PbrRandVar var,
const PbrScatter scatter,
PbrSample sample 
) const
protectedvirtual

Generate a sample (doesn't take in account fresnels and absorptions)

Parameters
widirection of the eye
varrandom variable to use to generate the sample
scatterscattering position to use
sampleresulting sample

Implements PbrBxdf.