예제 #1
0
파일: Program.cs 프로젝트: zeta945/spectrum
        static void Main(string[] args)
        {
            Scene scene = new Scene();

            scene.Root.AddChild(scene.CreateSphere(10));

            Camera    cam      = Camera.CreatePerspective(90, 1, 1, 1000);
            Transform camTrans = Transform.Identity;

            camTrans.Translation = new Vector3(0, -20, 0);
            RenderView view = new RenderView(scene, cam, camTrans);

            RenderOutput output = new RenderOutput(50, 50);
            Renderer     r      = new Renderer();

            r.Render(view, output);
        }
예제 #2
0
        public void Render(RenderView view, RenderOutput output)
        {
            for (int i = 0; i < output.Height; i++)
            {
                float y = ((float)i / output.Height - 0.5f) * 2;
                for (int j = 0; j < output.Width; j++)
                {
                    float x   = ((float)j / output.Width - 0.5f) * 2;
                    Ray   ray = view.GenerateRay(x, y);

                    float dist = view.Trace(ray);
                    if (dist >= 0)
                    {
                        Console.Write(".");
                    }
                    else
                    {
                        Console.Write("=");
                    }
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }