public List <Vector3> ProjectLight(ILightProbeReader lreader, Sampler sampler)
        {
            float          weight  = 4 * (float)Math.PI;
            int            T       = sampler.samples;
            float          n       = sampler.bands;
            List <Vector3> vResult = new List <Vector3>();

            for (int i = 0; i < n * n; i++)
            {
                vResult.Add(new Vector3());
            }
            for (int j = 0; j < T; j++)
            {
                for (int i = 0; i < n * n; i++)
                {
                    Sample sample = sampler.vSamples[i];
                    vResult[i] += lreader.LightAccess(new Vector3(sample.Dx, sample.Dy, sample.Dz)).ToVector3() * sample.vSHEval[i];
                }
            }
            for (int i = 0; i < n * n; i++)
            {
                vResult[i] *= weight / T;
            }
            return(vResult);
        }
 public List<Vector3> ProjectLight(ILightProbeReader lreader, Sampler sampler)
 {
     float weight = 4 * (float)Math.PI;
     int T = sampler.samples;
     float n = sampler.bands;
     List<Vector3> vResult = new List<Vector3>();
     for (int i = 0; i < n * n; i++)
     {
         vResult.Add( new Vector3());
     }
     for (int j = 0; j < T; j++)
     {
         for (int i = 0; i < n * n; i++)
         {
             Sample sample = sampler.vSamples[i];
             vResult[i] += lreader.LightAccess(new Vector3(sample.Dx,sample.Dy,sample.Dz)).ToVector3() * sample.vSHEval[i];
         }
     }
     for (int i = 0; i < n * n; i++)
     {
         vResult[i] *= weight / T;
     }
     return vResult;
 }