Class surface_profile_t¶
Defined in File surface_profile.hpp
Inheritance Relationships¶
Base Type¶
public wt::scene::scene_element_t
(Class scene_element_t)
Derived Types¶
public wt::surface_profile::dirac_t
(Class dirac_t)public wt::surface_profile::fractal_t
(Class fractal_t)public wt::surface_profile::gaussian_t
(Class gaussian_t)
Class Documentation¶
-
class surface_profile_t : public wt::scene::scene_element_t¶
Quantifies the statistical profile of a surface. The primary quantity is the surface’s power spectral density (PSD), characterizing effective roughness. Surface profiles are wavelength dependent.
Subclassed by wt::surface_profile::dirac_t, wt::surface_profile::fractal_t, wt::surface_profile::gaussian_t
Public Types
Public Functions
-
inline surface_profile_t(std::string id)¶
-
surface_profile_t(surface_profile_t&&) = default¶
-
virtual ~surface_profile_t() noexcept = default¶
-
virtual bool is_delta_only(wavenumber_t k) const noexcept = 0¶
-
virtual bool needs_interaction_footprint() const noexcept = 0¶
Returns true for profiles that make use of the surface interaction footprint data.
-
virtual variance_t variance(const texture_query_t &query) const noexcept = 0¶
Variance of the surface profile.
-
virtual rms_t rms_roughness(const texture_query_t &query) const noexcept = 0¶
RMS roughness of the surface profile.
-
virtual f_t alpha(const dir3_t &wi, const dir3_t &wo, const texture_query_t &query) const noexcept = 0¶
Fraction of scatter contained in specular term.
- Parameters:
k – wavenumber
-
virtual f_t alpha(const dir3_t &wi, const texture_query_t &query) const noexcept = 0¶
Fraction of scatter contained in specular term.
- Parameters:
k – wavenumber
-
virtual f_t psd(const dir3_t &wi, const dir3_t &wo, const texture_query_t &query) const noexcept = 0¶
Evaluates the surface profile power spectral density (PSD).
-
virtual surface_profile_sample_ret_t sample(const dir3_t &wi, const texture_query_t &query, sampler::sampler_t &sampler) const noexcept = 0¶
Samples the surface profile.
Public Static Functions
-
static inline constexpr std::string scene_element_class() noexcept¶
-
static std::unique_ptr<surface_profile_t> load(std::string id, scene::loader::loader_t *loader, const scene::loader::node_t &node, const wt::wt_context_t &context)¶
-
inline surface_profile_t(std::string id)¶