Loading...
Searching...
No Matches
ggx.h
Go to the documentation of this file.
1#ifndef _BBM_GGX_H_
2#define _BBM_GGX_H_
3
6#include "ndf/ggx.h"
8
9/************************************************************************/
10/*! \file ggx.h
11
12 \brief Implements a microfacet BSDF with a GGX NDF: "Microfacet Models for
13 Refraction through Rough Surfaces" [Walter et al. 2007]:
14 http://dx.doi.org/10.2312/EGWR/EGSR07/195-206
15
16*************************************************************************/
17namespace bbm {
18
19 /**********************************************************************/
20 /*! \brief Microfacet BSDF with GGX-based NDF
21
22 \tparam CONF = bbm configuration
23 \tparam NAME = model name (default = GGX)
24
25 Implements: concepts::bsdfmodel
26 ***********************************************************************/
27 template<typename CONF, string_literal NAME = "GGX"> requires concepts::config<CONF>
32 NAME>,
34
36
37} // end bbm namespace
38
39#endif /* _BBM_GGX_H_ */
40
42
#define BBM_EXPORT_BSDFMODEL(BsdfModel)
Definition: bbm_fromstring.h:49
bsdfmodel concept
Definition: bsdfmodel.h:33
#define BBM_CHECK_CONCEPT(CONCEPTNAME, CLASSNAME,...)
Check a class for a concept with bbm::concepts::archetypes in the namespace.
Definition: macro.h:35
Microfacet BSDF model following "Microfacet Models for Refraction through Rough Surfaces" [Walter et ...
Definition: aggregatebsdf.h:29
Implements the GGX Microfacet Normal Distribution from: "Microfacet Models for Refraction through Rou...
Add an 'albedo' parameter to an existing bsdfmodel and scale the albedo and eval respectively.
Implements the Fresnel reflectance equation as proposed by Cook and Torrance [SIGGRAPH'82]: https://d...
Definition: fresnel_cook.h:21
Uncorrelated joint masking and shadowing.
Definition: uncorrelated.h:26
static constexpr literal Walter
Definition: microfacet.h:34
Scaled BSDF model.
Definition: scaledmodel.h:30
Uncorrelated joint masking and shadowing. Follows Eq. 98 from "Understanding the Masking-Shadowing Fu...