Loading...
Searching...
No Matches
Classes | Namespaces
bsdf_attribute.h File Reference

Default bsdf attribute types. More...

#include <limits>
#include "concepts/bsdf_attribute.h"
#include "bbm/bsdf_attr_flag.h"
#include "util/make_from.h"
#include "core/attribute.h"
#include "core/ior.h"

Go to the source code of this file.

Classes

struct  bsdf_properties< T, Flag, Default, UpperBound, LowerBound >
 bsdf_parameter property More...
 
struct  bsdf_fresnel_properties< ior::ior< T >, Flag >
 
struct  bsdf_fresnel_properties< ior::reflectance< T >, Flag >
 
struct  bsdf_fresnel_properties< ior::complex_ior< T >, Flag >
 

Namespaces

namespace  bbm
 

Typedefs

Predefined Default BSDF attributes <br>
template<typename T , bsdf_attr Flag, literal Default = 1.0, literal UpperBound = std::numeric_limits<scalar_t<T>>::max(), literal LowerBound = 0.0>
using bsdf_parameter = attribute< bsdf_properties< T, Flag, Default, UpperBound, LowerBound > >
 
template<typename T , bsdf_attr Flag>
using bsdf_scale = attribute< bsdf_properties< T, Flag, 0.5, 1.0 > >
 
template<typename T >
using diffuse_scale = bsdf_scale< T, bsdf_attr::DiffuseScale >
 
template<typename T >
using specular_scale = bsdf_scale< T, bsdf_attr::SpecularScale >
 
template<typename T , bsdf_attr Flag>
using bsdf_roughness = attribute< bsdf_properties< T, Flag, 0.1, 1.0, constants< scalar_t< T > >::Epsilon()> >
 
template<typename T >
using diffuse_roughness = bsdf_roughness< T, bsdf_attr::DiffuseParameter >
 
template<typename T >
using specular_roughness = bsdf_roughness< T, bsdf_attr::SpecularParameter >
 
template<typename T , bsdf_attr Flag>
using bsdf_sharpness = attribute< bsdf_properties< T, Flag, 32.0 > >
 
template<typename T >
using diffuse_sharpness = bsdf_sharpness< T, bsdf_attr::DiffuseParameter >
 
template<typename T >
using specular_sharpness = bsdf_sharpness< T, bsdf_attr::SpecularParameter >
 
template<typename T , bsdf_attr Flag = bsdf_attr::SpecularParameter>
using fresnel_parameter = attribute< bsdf_fresnel_properties< T, Flag > >
 

Functions

Helper Methods for extracting default value / bounds
template<typename T >
requires concepts::bsdf_attribute<T>
constexpr auto default_value (T)
 
template<typename T >
requires concepts::bsdf_attribute<T>
constexpr auto lower_bound (T)
 
template<typename T >
requires concepts::bsdf_attribute<T>
constexpr auto upper_bound (T)
 
template<typename T >
requires concepts::bsdf_attribute<T>
constexpr auto bsdf_attr_flag (T)
 

Detailed Description

Default bsdf attribute types.

List of types: