Beispiel #1
0
 public MyFilm(Screen screen, uint nsamples)
     : base(screen)
 {
     Flag   = new Bitmap((int)screen.Width, (int)screen.Height);
     Colors = new SampledColor[screen.Height, screen.Width];
     for (var i = 0; i < screen.Height; ++i)
     {
         for (var j = 0; j < screen.Width; ++j)
         {
             Colors[i, j] = new SampledColor(nsamples);
         }
     }
     Screen = screen;
 }
        private void InitNewScene()
        {
            _scene = new Scene();
            var screen = new raytracer.core.Screen(1024, 768);

            _film = new MyFilm(screen, NSamples);
            Camera camera = new SimpleCamera(screen,
                                             Transformation.Translation((float)PositionX.Value, (float)PositionY.Value, (float)PositionZ.Value) *
                                             Transformation.RotateX((float)(RotationX.Value % 360)) *
                                             Transformation.RotateY((float)(RotationY.Value % 360)) *
                                             Transformation.RotateZ((float)(RotationZ.Value % 360)));

            _renderer = new Renderer(_scene,
                                     new GridSampler(screen), camera, _film,
                                     new WhittedIntegrator());
            _scene.Lights.Add(new PointLight(Transformation.Translation(100, 650, -500), SampledSpectrum.White() * 2000000));
            _scene.Lights.Add(new PointLight(Transformation.Translation(0, 0, -1000), SampledSpectrum.Random() * 200000));
            SimpleObjParser(_scene, _file);
        }
Beispiel #3
0
 public Form1()
 {
     InitializeComponent();
     FileName.ForeColor = System.Drawing.Color.FromArgb((int)0xFF, (int)0x61, (int)0x61);
     FileName.Text      = "No file selected.";
     _screen            = new Screen((uint)RenderPicture.Width, (uint)RenderPicture.Height);
     _camera            = new SimpleCamera(_screen,
                                           Transformation.Compose(
                                               Transformation.Translation(0, 0, -1000),
                                               Transformation.RotateX(0),
                                               Transformation.RotateY(0),
                                               Transformation.RotateZ(0)
                                               ));
     InitNewScene();
     _pointLightReg = new Regex(@"^(PL( (-?|\+?)(\d)* (-?|\+?)(\d)* (-?|\+?)(\d)* (1|0)\.(\d)*$))",
                                RegexOptions.Compiled);
     _diskLightReg = new Regex(@"^(DL( (-?|\+?)(\d)* (-?|\+?)(\d)* (-?|\+?)(\d)* (1|0)\.(\d)* (\d*\.)?(\d)*$))",
                               RegexOptions.Compiled);
     _objReg = new Regex(@"^(O( [A-Z]:(\\([a-zA-Z]*[^*/\\.\[\]:;|=,])*)*\.obj$))",
                         RegexOptions.Compiled);
     _cameraReg = new Regex(@"^(C( (-?|\+?)(\d)* (-?|\+?)(\d)* (-?|\+?)(\d)* (-?|\+?)(\d)* (-?|\+?)(\d)* (-?|\+?)(\d)*$))",
                            RegexOptions.Compiled);
 }