27 const std::array<real, 2>& alphas)
const override;
37 const std::array<real, 2>& sample,
49 return {m_alphaU, m_alphaV};
Definition AnisoTrowbridgeReitz.h:13
std::array< real, 2 > getAlphas(const SurfaceHit &X) const override
Definition AnisoTrowbridgeReitz.h:47
real distribution(const SurfaceHit &X, const math::Vector3R &N, const math::Vector3R &H) const override
Distribution of the microfacet normal. The term. Also commonly knwon as the NDF (normal distribution...
Definition AnisoTrowbridgeReitz.cpp:44
real lambda(const SurfaceHit &X, const math::Vector3R &N, const math::Vector3R &H, const math::Vector3R &unitDir, const std::array< real, 2 > &alphas) const override
The function that appears in the masking-shadowing term. For isotropic distributions,...
Definition AnisoTrowbridgeReitz.cpp:25
void sampleH(const SurfaceHit &X, const math::Vector3R &N, const std::array< real, 2 > &sample, math::Vector3R *out_H) const override
Generate a microfacet normal H for the distribution. This samples all possible H vectors for the dist...
Definition AnisoTrowbridgeReitz.cpp:65
AnisoTrowbridgeReitz(real alphaU, real alphaV, EMaskingShadowing maskingShadowingType)
Definition AnisoTrowbridgeReitz.cpp:12
General information about a ray-surface intersection event.
Definition SurfaceHit.h:59
Trowbridge-Reitz distribution (GGX). See the original paper by Trowbridge et al. Trowbridge:1975:Aver...
Definition TrowbridgeReitz.h:14
The root for all renderer implementations.
Definition EEngineProject.h:6
EMaskingShadowing
Different types of masking and shadowing terms for microfacet distributions. Eric Heitz has published...
Definition enums.h:11