Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
scaledmodel< BSDFMODEL, FLAG, NAME > Struct Template Reference

Scaled BSDF model. More...

#include <scaledmodel.h>

Inherits BSDFMODEL.

Public Member Functions

 BBM_BASETYPES (BSDFMODEL)
 
 BBM_IMPORT_CONFIG (BSDFMODEL)
 
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 albedo*BSDFMODELeval.
 
Spectrum reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const
 Return albedo*BSSFMODELreflectance.
 
 BBM_DEFAULT_CONSTRUCTOR (scaledmodel)
 Default constructor.
 

Public Attributes

 BBM_BSDF_FORWARD
 

Static Public Attributes

static constexpr string_literal name = NAME
 
bsdf_scale< Spectrum, FLAG > albedo
 Class Attributes.
 
 BBM_ATTRIBUTES (albedo)
 

Detailed Description

template<typename BSDFMODEL, bsdf_attr FLAG = bsdf_attr::Scale, string_literal NAME = BSDFMODEL::name>
requires concepts::bsdfmodel<BSDFMODEL> && concepts::reflection::attributes<BSDFMODEL> && std::constructible_from<BSDFMODEL>
struct bbm::scaledmodel< BSDFMODEL, FLAG, NAME >

Scaled BSDF model.

Template Parameters
BSDFMODEL= bsdf model to scale; must be default constructible.
FLAG= bsdf_attr flag of the albedo attribute
NAME= model name (default copy name from BSDFMODEL)

Implements: concepts::bsdfmodel

Member Function Documentation

◆ BBM_ATTRIBUTES()

BBM_ATTRIBUTES ( albedo  )

◆ BBM_BASETYPES()

BBM_BASETYPES ( BSDFMODEL  )

◆ BBM_DEFAULT_CONSTRUCTOR()

BBM_DEFAULT_CONSTRUCTOR ( scaledmodel< BSDFMODEL, FLAG, NAME >  )
inline

Default constructor.

◆ BBM_IMPORT_CONFIG()

BBM_IMPORT_CONFIG ( BSDFMODEL  )

◆ 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 albedo*BSDFMODELeval.

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 albedo*BSSFMODELreflectance.

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

Member Data Documentation

◆ albedo

bsdf_scale<Spectrum,FLAG> albedo

Class Attributes.

◆ BBM_BSDF_FORWARD

BBM_BSDF_FORWARD

◆ name

constexpr string_literal name = NAME
staticconstexpr

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