Пример #1
0
        void render()
        {
            Bitmap rendering = new Bitmap(1920, 1080);

            Sphere[] spheres = new Sphere[]
            {
                new Sphere(new Vector3(0, -1, 3), 1, new Color(255, 0, 0), 500, 0.06f),
                new Sphere(new Vector3(-2, 1, 3), 1, new Color(0, 0, 255), 500, 0.1f),
                new Sphere(new Vector3(2, 1, 3), 1, new Color(0, 255, 0), 10, 0),
                new Sphere(new Vector3(0, -5001, 0), 5000, new Color(255, 255, 0), 10, 0f)
            };
            Light[] lights = new Light[]
            {
                new Light(LightType.ambient, 0.2f, new Vector3(0, 0, 0), new Vector3(0, 0, 0)),
                new Light(LightType.point, 0.6f, new Vector3(2, 1, 0), new Vector3(0, 0, 0)),
                new Light(LightType.directional, 0.2f, new Vector3(1, 4, 4), new Vector3(0, 0, 0))
            };

            Scene  scene = new Scene(spheres, lights);
            Camera cam   = new Camera(new Vector3(0, 0, -5));

            Raytracer tracer = new Raytracer(cam, new Viewport((float)rendering.Width / (float)rendering.Height, 1, 1), rendering, scene, new Color(255, 255, 255));

            tracer.Render();
            rendering.RotateFlip(RotateFlipType.Rotate180FlipNone);
            this.pictureBox1.Image = rendering;

            //for mac development
            rendering.Save("renderresult.png");
        }