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; }