public void Le(ref Vector dir, ref ISpectrum le) { var sampleN = TriangleNormal; if (Normal.Dot(ref sampleN, ref dir) <= 0f) { le.Mul(0f); return; } var s = GlobalConfiguration.Instance.SpectralRendering ? (ISpectrum)spectra : Gain; le.Mul(ref s); }
public void Le(ref Vector dir, ref ISpectrum le) { ISpectrum ls = (Power / (Position - dir).Length2()); le.Mul(ref ls); }
public void Le(ref Vector dir, ref ISpectrum le) { var spectrum = Le(ref dir); le.Mul(ref spectrum); }
public void Le(ref Vector dir, ref ISpectrum le) { var sampleN = triangleSampleData[SampleTriangleIndex()].Item2; //NormalModifier * SampleTriangle().ComputeNormal(scene.Vertices); if (Normal.Dot(ref sampleN, ref dir) <= 0f) { le.Mul(0f); } var s = GlobalConfiguration.Instance.SpectralRendering ? (ISpectrum)spectra : infoGain; le.Mul(ref s); }
public void Le(ref Vector dir, ref ISpectrum le) { var s = this.Le(ref dir); le.Mul(ref s); }