Hann (raised-cosine) windowing factor for SH band l, parameterized by a
window width w (Sloan, "Stupid Spherical Harmonics Tricks"). Multiplying
each stored coefficient by shBandWindow(band, w) at bake time attenuates the
higher bands, suppressing the low-order "negative-lobe" ringing (dark halos) a
single very bright texel (the sun) produces in order-3 reconstruction.
w <= 0 disables windowing (returns 1 for every band) — the default, so the
stored coefficients are byte-for-byte the un-windowed projection. Smaller w
windows more aggressively; as w → ∞ every factor → 1. The GPU bake
(cs_sh_project) applies the identical factor, so the two stay in lockstep.
Hann (raised-cosine) windowing factor for SH band
l, parameterized by a window widthw(Sloan, "Stupid Spherical Harmonics Tricks"). Multiplying each stored coefficient byshBandWindow(band, w)at bake time attenuates the higher bands, suppressing the low-order "negative-lobe" ringing (dark halos) a single very bright texel (the sun) produces in order-3 reconstruction.w <= 0disables windowing (returns 1 for every band) — the default, so the stored coefficients are byte-for-byte the un-windowed projection. Smallerwwindows more aggressively; asw → ∞every factor → 1. The GPU bake (cs_sh_project) applies the identical factor, so the two stay in lockstep.