Fermat
Public Methods | Public Members | List of all members
cugar::GGXVCavityMicrofacetDistribution Struct Reference

Detailed description

Implements the GGX microfacet distribution with the V-cavities shadow-masking model, using the importance sampling scheme described in Algorithm 3 of:

https://hal.inria.fr/hal-00996995v1/document

#include <ggx.h>

Public Methods

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE GGXVCavityMicrofacetDistribution (const float _roughness)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE float p (const DifferentialGeometry &geometry, const Vector3f V, const Vector3f H) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE void sample (const Vector3f u, const DifferentialGeometry &geometry, const Vector3f V, Vector3f &H, float &p) const
 

Public Members

float roughness
 
float inv_roughness
 

Member Function Documentation

◆ p()

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE float cugar::GGXVCavityMicrofacetDistribution::p ( const DifferentialGeometry geometry,
const Vector3f  V,
const Vector3f  H 
) const
inline

evaluate the pdf of sampling H given V, p(H|V) = p(V,H)

◆ sample()

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE void cugar::GGXVCavityMicrofacetDistribution::sample ( const Vector3f  u,
const DifferentialGeometry geometry,
const Vector3f  V,
Vector3f H,
float &  p 
) const
inline

sample H given V and return the pdf p


The documentation for this struct was generated from the following file: