I have implemented IES lights, these are lights based off measured data that are stored in the IES file format. These files store the photometric-web which represents the 3D distribution of candelas of a particular luminaire.
Sites to download IES profiles
Unfortunely there is a bug I cannot seem to resolve, the problem is the light does not appear to cast any light down on the floor even though the shape appears correctly.
Another problem is for data that has sparse angle increments which causes banding. I probably need to implement a better interpolation algorithm to fix this.
Below are some bugged images:
Managed to find the bug and fix it. The problem had to do with not using the shading frame to calculate the cosine.
// Wrong float costheta = Dot(wi, LocalToWorld * intersection.GetNormal()); // Correct float costheta = OrthonormalBasis::CosTheta(WorldToLocal * wi);
A render that uses both IES lights and a dome light in conjunction: