5 #ifndef _SPICA_MICROFACET_H_
6 #define _SPICA_MICROFACET_H_
8 #include "core/common.h"
9 #include "core/core.hpp"
20 virtual double D(
const Vector3d& wh)
const = 0;
21 virtual double lambda(
const Vector3d& w)
const = 0;
29 inline double alphax()
const {
return alphax_; }
30 inline double alphay()
const {
return alphay_; }
33 const bool sampleVisibleArea_;
34 const double alphax_, alphay_;
43 bool samplevis =
true);
45 double D(
const Vector3d& wh)
const override;
48 static double roughnessToAlpha(
double rough);
52 double lambda(
const Vector3d& w)
const override;
62 double D(
const Vector3d &wh)
const override;
65 static double roughnessToAlpha(
double rough);
69 double lambda(
const Vector3d &w)
const override;
74 #endif // _SPICA_MICROFACET_H_
The base class for microfacet distributions.
Definition: microfacet.h:16
Beckmann microfacet distribution.
Definition: microfacet.h:58
Trowbridge and Reitz's microfacet distribution (GGX)
Definition: microfacet.h:40