|
| | BBM_IMPORT_CONFIG (CONF) |
| |
template<typename... BSDFS>
requires concepts::matching_config<Config, BSDFS...> && (concepts::bsdf_ptr<BSDFS> && ...) |
| | aggregatebsdf (const BSDFS &... src) |
| | Construct an aggregate bsdf from a list of bsdf_ptrs.
|
| |
template<typename ITR >
requires std::input_or_output_iterator<ITR> && concepts::bsdf< std::iter_reference_t<ITR> > && concepts::matching_config< std::iter_reference_t<ITR> > && concepts::bsdf_ptr< std::iter_value_t<ITR> > |
| | aggregatebsdf (const ITR &begin, const ITR &end) |
| | Construct an aggregate bsdf from iterators to list of 'bsdf_ptrs'.
|
| |
| | aggregatebsdf (const aggregatebsdf< Config > &src) |
| | Copy Constructor.
|
| |
| aggregatebsdf< Config > & | operator= (const aggregatebsdf< Config > &src) |
| | Assignment Operator.
|
| |
| virtual Spectrum | eval (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const override final |
| | Sum the BSDF evaluations for a given in out direction.
|
| |
| virtual BsdfSample | sample (const Vec3d &out, const Vec2d &xi, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const override final |
| | Sample the aggregate BSDF given a direction and two random variables.
|
| |
| virtual Value | pdf (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const override final |
| | Compute the pdf given an in and out direction.
|
| |
| virtual Spectrum | reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const override final |
| | Return the (approximate) hemispherical reflectance of the BSDF.
|
| |
| virtual std::string | toString (void) const override final |
| | Convert the aggregatebsdf to string.
|
| |
|
| virtual bbm::vector< Value & > | parameter_values (bsdf_attr flags=bsdf_attr::All) override final |
| |
| virtual bbm::vector< const Value & > | parameter_values (bsdf_attr flags=bsdf_attr::All) const override final |
| |
| virtual bbm::vector< Value > | parameter_default_values (bsdf_attr flags=bsdf_attr::All) const override final |
| |
| virtual bbm::vector< Value > | parameter_lower_bound (bsdf_attr flags=bsdf_attr::All) const override final |
| |
| virtual bbm::vector< Value > | parameter_upper_bound (bsdf_attr flags=bsdf_attr::All) const override final |
| |
| | BBM_IMPORT_CONFIG (CONF) |
| |
| virtual | ~bsdf_base (void) |
| | empty virtual destructor
|
| |
| virtual Spectrum | eval (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0 |
| | Evaluate the BSDF given an in and out direction.
|
| |
| virtual BsdfSample | sample (const Vec3d &out, const Vec2d &xi, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0 |
| | Samples the BSDF given an out direction and 2 random variables.
|
| |
| virtual Value | pdf (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0 |
| | The pdf of the in-out direction combination.
|
| |
| virtual Spectrum | reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0 |
| | the (approximate) hemispherical reflectance of the BSDF
|
| |
| virtual std::string | toString (void) const =0 |
| | Fancy print the BSDF to a string.
|
| |
template<typename CONF,
string_literal NAME = "Aggregate">
requires concepts::config<CONF>
class bbm::aggregatebsdf< CONF, NAME >
A BSDF that is the aggregate of different BSDFs.
Note: the aggregatebsdf does not own the BSDFs, instead it takes bsdf_ptrs as input.