14 #include <glm/vec2.hpp>
15 #include <glm/vec3.hpp>
19 float evaluate(
float NdotH,
float roughness);
20 glm::vec3 sample(
const glm::vec2& Xi,
const float roughness);
25 float evaluateFastWithoutNdotV(
float alphaSquared,
float NdotV,
float NdotL);
27 inline float evaluateFast(
float alphaSquared,
float NdotV,
float NdotL) {
28 return evaluateFastWithoutNdotV(alphaSquared, NdotV, NdotL) * NdotV;
31 inline float evaluate(
float roughness,
float NdotV,
float NdotL) {
32 return evaluateFast(roughness*roughness*roughness*roughness, NdotV, NdotL);