Loading...
Searching...
No Matches
cooktorrancewalter.h
Go to the documentation of this file.
1#ifndef _BBM_COOKTORRANCEWALTER_H_
2#define _BBM_COOKTORRANCEWALTER_H_
3
6#include "ndf/beckmann.h"
8
9/************************************************************************/
10/*! \file cooktorrancewalter.h
11
12 \brief Implements a microfacet BSDF with a Beckmann NDF: "Microfacet Models
13 for 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 Beckmann-based NDF
21
22 \tparam CONF = bbm configuration
23 \tparam NAME = model name (default = CookTorranceWalter)
24
25 Note: the differences with the regular Cook-Torrance BSSF model are:
26 + the 1/4 normalization missing from the original Cook-Torrance BSDF
27 + using the Beckmann-derived monodirectional shadowing-masking G1
28 + using uncorrelated joint masking and shadowing.
29
30 Implements: concepts::bsdfmodel
31 ***********************************************************************/
32 template<typename CONF, string_literal NAME = "CookTorranceWalter"> requires concepts::config<CONF>
37 NAME>,
39
41
42} // end bbm namespace
43
44#endif /* _BBM_COOKTORRANCEWALTER_H_ */
45
#define BBM_EXPORT_BSDFMODEL(BsdfModel)
Definition: bbm_fromstring.h:49
Implements the Beckman Microfacet Normal Distribution:
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
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...