Beispiel #1
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="s"></param>
 /// <param name="f"></param>
 /// <returns></returns>
 public static Spectrum operator /(Spectrum s, double f)
 {
     var result = new Spectrum ();
     for (var i = 0; i < s.nSamples; ++i)
         result.c[i] = s.c[i] / f;
     return s;
 }
Beispiel #2
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="s1"></param>
 /// <param name="s2"></param>
 /// <returns></returns>
 public static Spectrum operator +(Spectrum s1, Spectrum s2)
 {
     var ret = new Spectrum ();
     for (var i = 0; i < s1.nSamples; ++i)
         ret.c[i] = s1.c[i] + s2.c[i];
     return ret;
 }
Beispiel #3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="p"></param>
        /// <param name="pEpsilon"></param>
        /// <param name="lmax"></param>
        /// <param name="scene"></param>
        /// <param name="computeLightVisibility"></param>
        /// <param name="time"></param>
        /// <param name="coeffs"></param>
        public virtual void SHProject(Point p, double pEpsilon, int lmax, Scene scene, bool computeLightVisibility, double time, Spectrum[] coeffs)
        {
            for (var i = 0; i < Sh.SHTerms (lmax); ++i)
                coeffs[i] = new Spectrum ();
            var ns = Util.RoundUpPow2 (this.NumberOfSamples);
            var scramble1D = Api.Random.Next ();
            var scramble2D = new int[] { Api.Random.Next (), Api.Random.Next () };
            var Ylm = new double[Sh.SHTerms (lmax)];

            for (var i = 0; i < ns; ++i)
            {
                var u = new double[2];
                var pdf = 0.0;
                var lightSample = new LightSample (u[0], u[1], MonteCarlo.VanDerCorput (i, scramble1D));
            }
        }
Beispiel #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="sa"></param>
 /// <param name="sps"></param>
 /// <param name="et"></param>
 public BSSRDF(Spectrum sa, Spectrum sps, double et)
 {
     this.e = et;
     this.sigA = sa;
     this.sigpS = sps;
 }