コード例 #1
0
        public static Light MakeLight(string name, Transform lightToWorld, ParamSet parameters)
        {
            switch (name)
            {
            case "distant":
            {
                var l     = parameters.FindSpectrum("L", new Spectrum(1.0f));
                var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f));
                var from  = parameters.FindPoint("from", Point.Zero);
                var to    = parameters.FindPoint("to", new Point(0, 0, 1));
                var dir   = from - to;
                return(new DistantLight(lightToWorld, l * scale, dir));
            }

            case "point":
            {
                var i     = parameters.FindSpectrum("I", new Spectrum(1.0f));
                var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f));
                var from  = parameters.FindPoint("from", Point.Zero);
                var l2w   = Transform.Translate((Vector)from) * lightToWorld;
                return(new PointLight(l2w, i * scale));
            }

            default:
                throw new ArgumentException("Unknown light: " + name);
            }
        }
コード例 #2
0
ファイル: Factories.cs プロジェクト: modulexcite/aether
 public static Light MakeLight(string name, Transform lightToWorld, ParamSet parameters)
 {
     switch (name)
     {
         case "distant" :
         {
             var l = parameters.FindSpectrum("L", new Spectrum(1.0f));
             var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f));
             var from = parameters.FindPoint("from", Point.Zero);
             var to = parameters.FindPoint("to", new Point(0, 0, 1));
             var dir = from - to;
             return new DistantLight(lightToWorld, l * scale, dir);
         }
         case "point":
         {
             var i = parameters.FindSpectrum("I", new Spectrum(1.0f));
             var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f));
             var from = parameters.FindPoint("from", Point.Zero);
             var l2w = Transform.Translate((Vector) from) * lightToWorld;
             return new PointLight(l2w, i * scale);
             }
         default:
             throw new ArgumentException("Unknown light: " + name);
     }
 }
コード例 #3
0
ファイル: TextureParams.cs プロジェクト: MassVOiD/aether
 public Point FindPoint(string name, Point defaultValue)
 {
     return(_geomParams.FindPoint(name, defaultValue));
 }