Ward

A shader implementing the anisotropic Ward (1992) reflectance model.

The BRDF is:

$f_r = k_d / π + k_s · exp(−E(h)) / (4π · α_u · α_v · √(cos θ_i · cos θ_o))$

where the exponent for the isotropic case is

$E(h) = tan²θ_h / α²$

and for the anisotropic case

$E(h) = ((h·T)² / α_u² + (h·B)² / α_v²) / (h·N)²$

with N the surface normal, T = dpdu, B = dpdv the surface tangents, α_u the roughness along T, and α_v the roughness along B if isotropic with α_v = α_u.

The model supports diffuse, specular, and (optionally) transparent transmission via the field. Transmission uses Fresnel-weighted straight-through (delta BTDF), CPU light model only.