Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
schlick< CONF, PARAM > Struct Template Reference

Implements the Fresnel reflectance equation as proposed by Schlick [Comp. Graph. Forum '94]: https://doi.org/10.1111%2F1467-8659.1330233. More...

#include <fresnel_schlick.h>

Public Types

using parameter_type = PARAM
 Fresnel Parameter Type.
 

Public Member Functions

 BBM_IMPORT_CONFIG (CONF)
 

Static Public Member Functions

static constexpr std::decay_t< parameter_type >::type eval (const parameter_type &param, const Value &cosTheta, Mask mask=true)
 Evaluate Fresnel reflectance.
 

Detailed Description

template<typename CONF, typename PARAM = ior::reflectance<Value_t<CONF>>>
requires concepts::config<CONF>
struct bbm::fresnel::schlick< CONF, PARAM >

Implements the Fresnel reflectance equation as proposed by Schlick [Comp. Graph. Forum '94]: https://doi.org/10.1111%2F1467-8659.1330233.

Template Parameters
CONF= bbm configuration

Implements: concepts::fresnel

Member Typedef Documentation

◆ parameter_type

using parameter_type = PARAM

Fresnel Parameter Type.

Member Function Documentation

◆ BBM_IMPORT_CONFIG()

BBM_IMPORT_CONFIG ( CONF  )

◆ eval()

static constexpr std::decay_t< parameter_type >::type eval ( const parameter_type param,
const Value &  cosTheta,
Mask  mask = true 
)
inlinestaticconstexpr

Evaluate Fresnel reflectance.

This method follows Schlick's approximation [Comp. Graph. Forum' 94] of the Fresnel reflectance (https://doi.org/10.1111%2F1467-8659.1330233). The method takes either ior or reflectance (relies on auto-conversion to reflectance), as well as the dot product between view and halfway vector (cosTheta) as input.

Parameters
param= reflectance at normal incidence
cosTheta= dot product between view and halfway.
mask= mask compute lines
Returns
Approximate Fresnel reflectance

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