コード例 #1
0
ファイル: Program.cs プロジェクト: cbshuman/SimpleRaytracer
        static void Main(string[] args)
        {
            float bias = (1 / 2000f);

            //Start a new scene
            Scene scene = new Scene(65f, 750, 1500, new Color(25, 25, 80));

            scene.AddLamp(new DirectionalLamp(new Vector3(30, -3, -25), new Color(155, 155, 155), .25f));
            scene.AddLamp(new DirectionalLamp(new Vector3(0, -1, 0), new Color(155, 155, 155), .05f));

            //Plane
            scene.AddObject(new Plane(new Vector3(0, -3, 0), new Vector3(0, -1, 0), new Material(32f, 0f, bias, new Color(155, 155, 155))));
            //Spheres
            scene.AddObject(new Sphere(new Vector3(5, 2.25f, -8), 4.5f, new Material(32f, .75f, bias, new Color(255, 10, 10))));  // Red

            scene.AddObject(new Sphere(new Vector3(-10f, 2.5f, -15), 6f, new Material(32f, .25f, bias, new Color(80, 200, 50)))); // blue

            scene.AddObject(new Sphere(new Vector3(0, 2, -15), 4.5f, new Material(32f, .1f, bias, new Color(100, 100, 200))));    // green

            scene.AddObject(new Sphere(new Vector3(-8, 2, -8), .5f, new Material(32f, 0, bias, new Color(10, 200, 200))));        // Cyan

            scene.AddObject(new Sphere(new Vector3(2, .15f, -2), .5f, new Material(32f, 1, bias, new Color(255, 255, 255))));     // clear

            scene.AddObject(new TriFace(new Vector3(5f, -3f, -5f), new Vector3(-5f, 0f, -5f), new Vector3(-0f, 10f, -30f), new Material(32f, .001f, bias, new Color(255, 255, 255))));

            //Draw the image
            scene.Render();

            //Write the image to file
            PPMWriter.WriteBitmapToPPM("./save.ppm", scene.GetScreenContents());
        }