# BRDF

Common Cook-Torrance microfacet specular BRDF (0)

$$f(l, v) = \frac{D(h) F(v, h) G(l, v, h)}{4(n\cdot l)(n\cdot v)}$$

• l – light direction
• v – view direction
• f (l,v)– brdf
• D(h) – normal distribution function
• F(v,h) – fresnel function
• G(l,v,h) – geometric shadowing term

For D I like Trowbridge-Reitz GGX

$$D_{GGX}(v) = \frac{\alpha^2}{\pi((n \cdot m)^2 (\alpha^2 – 1) + 1)^2}$$

$$\alpha = roughness^2$$ Unreal alpha, matches Burley’s remapping(1) $$\alpha = (1 – smoothness * 0.7)^6$$ Ryse alpha, matches (2) $$(1-smoothness)^4$$

For G best Smith-Schlick

$$G(l, v, h) = G_{1}(l) G_{1}(v)$$

$$G_{Schlick}(v) = \frac{n\cdot v}{(n\cdot v)(1 – k) + k }$$

$$G_{Schlick}(l) = \frac{n\cdot l}{(n\cdot l)(1 – k) + k }$$

$$k = \frac{(0.8 + 0.5*\alpha)^2}{2}$$

Crytek Ryse – avoid highlights getting too hot on smooth surfaces and reduce gain on rough materials at grazing angles

$$k = 0.5*\alpha \text{ – fit for me}$$

Fresnel function Schlick (3)

$$F_{Schlick}(\mathbf{v}, \mathbf{h}) = F_0 + (1 – F_0) ( 1 – (v \cdot h) )^5$$