-
-
Notifications
You must be signed in to change notification settings - Fork 36k
Description
Description of the problem
Now that we have a LightProbe class (#16191), the Spherical harmonic class (#16187) merged as well as some shader support(#16152), we should explore adding a Tetrahedral tesselation method for interpolating between light probes to the renderer so that it can set the 4 SH + weights per object.
The best reference is this presentation from Unity itself:
https://gdcvault.com/play/1015312/Light-Probe-Interpolation-Using-Tetrahedral
(Referenced from here: https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html)
It seems that given a set of light probes you just do a 3D delaunay tetrahedralization and use 3D barycentric coordinates for interpolation and you cache which tetrahedral each object is in to speed up lookups. Pretty simple, just need a standard delaunay algorithm implemented along with a searchable tetrahedral data structure.