Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Private Member Functions | List of all members
nganlafortune< CONF, NAME > Class Template Reference

Ngan's Lafortune: standard Lafortune times an additional normalization factor: More...

#include <ngan.h>

Inherits lafortune< CONF, symmetry_v::Isotropic >.

Public Member Functions

 BBM_IMPORT_CONFIG (CONF)
 
Spectrum eval (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const
 Evaluate the BSDF for a given in and out direction.
 
Spectrum reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const
 Return the (approximate) reflectance of the BSDF.
 
 BBM_DEFAULT_CONSTRUCTOR (nganlafortune)
 Default constructor.
 
- Public Member Functions inherited from lafortune< CONF, symmetry_v::Isotropic >
 BBM_IMPORT_CONFIG (CONF)
 
Spectrum eval (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const
 Evaluate the BSDF for a given in and out direction.
 
BsdfSample sample (const Vec3d &out, const Vec2d &xi, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const
 Sample the BSDF given a direction and two random variables.
 
Value pdf (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const
 Compute the pdf given an in and out direction.
 
Spectrum reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const
 Return the (approximate) hemispherical reflectance of the BSDF.
 
 BBM_DEFAULT_CONSTRUCTOR (lafortune)
 Default constructor.
 
 BBM_ATTRIBUTES (albedo, Cxy, Cz, sharpness)
 

Public Attributes

 BBM_BSDF_FORWARD
 
- Public Attributes inherited from lafortune< CONF, symmetry_v::Isotropic >
 BBM_BSDF_FORWARD
 
specular_scale< Spectrum > albedo
 Class Attributes.
 
bsdf_parameter< symmetry_t< Symmetry, Value >, bsdf_attr::SpecularParameter, -0.57735026919, std::numeric_limits< Scalar >::max(), std::numeric_limits< Scalar >::min()> Cxy
 
bsdf_parameter< Value, bsdf_attr::SpecularParameter, 0.57735026919, std::numeric_limits< Scalar >::max(), std::numeric_limits< Scalar >::min()> Cz
 
specular_sharpness< Value > sharpness
 

Static Public Attributes

static constexpr string_literal name = NAME
 
- Static Public Attributes inherited from lafortune< CONF, symmetry_v::Isotropic >
static constexpr string_literal name
 

Private Types

using base = lafortune< CONF, symmetry_v::Isotropic >
 

Private Member Functions

 BBM_BASETYPES (base)
 

Detailed Description

template<typename CONF, string_literal NAME = "NganLafortune">
requires concepts::config<CONF>
class bbm::nganlafortune< CONF, NAME >

Ngan's Lafortune: standard Lafortune times an additional normalization factor:

\( \frac{ (n+2) }{ \2pi * (\max(Cz, Cxy))^n } \)

This is achieved with a wrapper class.

Member Typedef Documentation

◆ base

using base = lafortune<CONF, symmetry_v::Isotropic>
private

Member Function Documentation

◆ BBM_BASETYPES()

BBM_BASETYPES ( base  )
private

◆ BBM_DEFAULT_CONSTRUCTOR()

BBM_DEFAULT_CONSTRUCTOR ( nganlafortune< CONF, NAME >  )
inline

Default constructor.

◆ BBM_IMPORT_CONFIG()

BBM_IMPORT_CONFIG ( CONF  )

◆ eval()

Spectrum eval ( const Vec3d &  in,
const Vec3d &  out,
BsdfFlag  component = bsdf_flag::All,
unit_t  unit = unit_t::Radiance,
Mask  mask = true 
) const
inline

Evaluate the BSDF for a given in and out direction.

Parameters
in= incident direction
out= outgoing direction
component= which reflectance component to eval
unit= unit of computation (ignored)
mask= masking of lanes (e.g., for Packet eval)
Returns
Evaluation of the BSDF per spectrum.

◆ reflectance()

Spectrum reflectance ( const Vec3d &  out,
BsdfFlag  component = bsdf_flag::All,
unit_t  unit = unit_t::Radiance,
Mask  mask = true 
) const
inline

Return the (approximate) reflectance of the BSDF.

Parameters
out= the outgoing direction
component= which reflectance component to eval
unit= unit of computation (ignored)
mask= masking of lanes
Returns
the approximate reflectance of the BSDF for a given direction

Member Data Documentation

◆ BBM_BSDF_FORWARD

BBM_BSDF_FORWARD

◆ name

constexpr string_literal name = NAME
staticconstexpr

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