Search across packages, versions, files, declarations, and comments.
Use multiple terms to narrow results (AND), and add @vertex,
@fragment, or @compute to filter by shader stage.
Visibility function (Specular G)
V(v,l,a) = G(v,l,α) / { 4 (n⋅v) (n⋅l) }
such that f_r becomes
f_r(v,l) = D(h,α) V(v,l,α) F(v,h,f0)
where
V(v,l,α) = 0.5 / { n⋅l sqrt((n⋅v)^2 (1−α2) + α2) + n⋅v sqrt((n⋅l)^2 (1−α2) + α2) }
Note the two sqrt’s, that may be slow on mobile, see https://google.github.io/filament/Filament.html#listing_approximatedspecularv
Cook-Torrance approximation of the microfacet model integration using Fresnel law F to model f_m
f_r(v,l) = { D(h,α) G(v,l,α) F(v,h,f0) } / { 4 (n⋅v) (n⋅l) }
light radius is a non-physical construct for efficiency purposes, because otherwise every light affects every fragment in the scene