Esempio n. 1
0
 public Scene(Camera camera, RayTracer rayTracer, Sampler sampler, Film film, string outPath)
 {
     _camera    = camera;
     _rayTracer = rayTracer;
     _sampler   = sampler;
     _film      = film;
     OutPath    = outPath;
 }
Esempio n. 2
0
        public Scene Build()
        {
            if (_rayTracer == null)
            {
                _rayTracer = new RayTracer();
            }

            return(new Scene(_camera, _rayTracer, _sampler, _film, _outPath));
        }
Esempio n. 3
0
        public SceneBuilder AddPrimitive(IPrimitive prim)
        {
            if (_rayTracer == null)
            {
                _rayTracer = new RayTracer();
            }

            _rayTracer.Primitives.Add(prim);

            return(this);
        }
Esempio n. 4
0
        public SceneBuilder SetMaxDepth(int max)
        {
            if (_rayTracer == null)
            {
                _rayTracer = new RayTracer();
            }

            _rayTracer.MaxDepth = 5;

            return(this);
        }
Esempio n. 5
0
        public SceneBuilder SetAttenuation(Attenuation att)
        {
            if (_rayTracer == null)
            {
                _rayTracer = new RayTracer();
            }

            _rayTracer.Attenuation = att;

            return(this);
        }
Esempio n. 6
0
        public SceneBuilder AddLight(ILight light)
        {
            if (_rayTracer == null)
            {
                _rayTracer = new RayTracer();
            }

            _rayTracer.Lights.Add(light);

            return(this);
        }
Esempio n. 7
0
        public SceneBuilder AddGeoPrimitive(IIntersect shape, Material mat)
        {
            if (_rayTracer == null)
            {
                _rayTracer = new RayTracer();
            }

            _rayTracer.Primitives.Add(new GeometricPrimitive(shape, mat));

            return(this);
        }
Esempio n. 8
0
        public SceneBuilder SetRayTracer(RayTracer raytracer)
        {
            _rayTracer = raytracer;

            return(this);
        }