Loading...
Searching...
No Matches
cooktorranceheitz.h
Go to the documentation of this file.
1#ifndef _BBM_COOKTORRANCEHEITZ_H_
2#define _BBM_COOKTORRANCEHEITZ_H_
3
6#include "ndf/beckmann.h"
8
9/************************************************************************/
10/*! \file cooktorranceheitz.h
11
12 Anisotropic Cook-Torrance BSDF follows: "Understanding the Masking-Shadowing
13 Function in Microfacet-Based BRDFs" [Heitz 2014]:
14 https://jcgt.org/published/0003/02/03/
15
16*************************************************************************/
17namespace bbm {
18
19 /**********************************************************************/
20 /*! \brief Microfacet BSDF with Anisotropic Beckmann-based NDF
21
22 \tparam CONF = bbm configuration
23 \tparam NAME = model name (default = CookTorranceHeitz)
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 + height correlated joint shadowing-masking
29 + using the anisotropic Beckmann distribition
30
31 Implements: concepts::bsdfmodel
32 ***********************************************************************/
33 template<typename CONF, string_literal NAME = "CookTorranceHeitz"> requires concepts::config<CONF>
38 NAME>,
40
42
43} // end bbm namespace
44
45#endif /* _BBM_COOKTORRANCEHEITZ_H_ */
46
#define BBM_EXPORT_BSDFMODEL(BsdfModel)
Definition: bbm_fromstring.h:49
Implements the Beckman Microfacet Normal Distribution:
bsdfmodel concept
Definition: bsdfmodel.h:33
Height correlated joint masking and shadowing. Follows Eq. 99 from "Understanding the Masking-Shadowi...
#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
Height correlated joint masking and shadowing.
Definition: heightcorrelated.h:26
static constexpr literal Walter
Definition: microfacet.h:34
Scaled BSDF model.
Definition: scaledmodel.h:30