Last week I gave a talk at GDC on “Light probe interpolation using tetrahedral tessellations”. Here are the slides and this is the accompanying video:
The talk describes a technique for light probe interpolation, which I believe has some advantages over the typically used “a bunch of OBBs filled with regular grids +per probe visibility info”. To see how it works in practice, you can download Unity 3.5 and give it a go. The video was captured from Shadowgun, the first game to use this approach.
I’m thinking about making it possible to bake semi-planar triangular probe meshes for cases where all gameplay is happening roughly on a plane. A tetrahedral mesh in those cases is an overkill and confuses users when a bunch of skinny tetrahedra gets created for their almost planar probe set. There would be an initial PCA step to automatically determine if the probe set is flat and what is the shortest axis.
Another thing is that this interpolation method is not tied to SH. In fact, it’s not tied to light probes at all, so it can be used to interpolate and extrapolate any vector data sets with samples placed arbitrarily in 3D :)
Anyway, also at GDC, there was an excellent talk by Robin Green on “Frames, Sparsity and Global Illumination: New Math for Games“. Turns out SH has more deficiencies than just ringing that we all learned to know and hate. SH is also a redundant representation, i.e. it looks like it’s possible to represent the same signal on a sphere with fewer coefficients and as a bonus: in a way that’s both spatially and spectrally concentrated.