differt.em.DirectivePattern#
- class DirectivePattern(alpha_r=1.0)[source]#
Bases:
AbstractScatteringPatternA directive diffuse scattering pattern, with a lobe centered on the specular direction.
Following Degli-Esposti’s directive model [7] (as also used by Sionna RT’s
DirectivePattern), the scattered power is concentrated around the specular reflection direction \(\hat{k}_{sp}\) (the mirror image of \(\hat{k}_i\) about \(\hat{n}\)), withalpha_rcontrolling how narrow the lobe is:alpha_r\(= 1\) gives a broad lobe (similar in shape to, but distinct from,LambertianPattern, since it is centered on \(\hat{k}_{sp}\) rather than \(\hat{n}\)), while a largealpha_rconcentrates almost all power near the specular direction, approaching a purely specular reflection.See \(F_\alpha\) below for the lobe formula and its normalization caveat.
\[F_\alpha(\hat{k}_s, \hat{a}) = \frac{\alpha + 1}{4 \pi} \left(\frac{1 + \hat{a} \cdot \hat{k}_s}{2}\right)^\alpha,\]where \(\hat{a}\) is the lobe’s axis (here, the specular direction \(\hat{k}_{sp}\)). Unlike
LambertianPattern, \(F_\alpha\) has no closed-form normalization over just the hemisphere around an arbitrary surface normal (as opposed to around \(\hat{a}\) itself), so the constant \((\alpha + 1) / (4\pi)\) instead normalizes the integral of \(F_\alpha\) over the full sphere centered on \(\hat{a}\) to 1. Provided \(\hat{a}\) lies well inside the physical hemisphere and \(\alpha\) is not too small, only a small fraction of the lobe falls below the horizon, so the hemispherical integral remains close to (but, unlike the Lambertian pattern, not exactly) 1; expect visibly more energy than the Lambertian pattern for a small \(\alpha\) or a near-grazing \(\hat{a}\).Attributes
The lobe width parameter \(\alpha_R \geq 1\); larger values give a narrower lobe.
Methods
Detailed documentation
-
alpha_r:
Float[ArrayLike, ""]= 1.0# The lobe width parameter \(\alpha_R \geq 1\); larger values give a narrower lobe.
-
alpha_r: