public void StartRayTrace()
        {
            var rayTraceConfguration = new RayTraceConfigurationModel
            {
                Width      = rayTraceViewModel.BitmapWidth,
                Height     = rayTraceViewModel.BitmapHeight,
                Samples    = rayTraceViewModel.RenderSamples,
                UpdateRate = rayTraceViewModel.RenderUpdateRate,
            };
            var    sceneType = Int32.Parse(rayTraceViewModel.CurrentScene.Number);
            var    aspect    = (double)rayTraceConfguration.Width / (double)rayTraceConfguration.Height;
            IScene scene;

            switch (sceneType)
            {
            default:
            case 0: scene = new CoverSceneRT1(aspect); break;

            case 1: scene = new MaterialsScene(aspect); break;

            case 2: scene = new DefocusBlurScene(aspect); break;

            case 3: scene = new TestScene1(aspect); break;

            case 4: scene = new TestScene2(aspect); break;

            case 5: scene = new CoverSceneRT1Motion(aspect); break;

            case 6: scene = new CheckerTextureScene(aspect); break;

            case 7: scene = new NoiseTextureScene(aspect); break;

            case 8: scene = new GlobeScene(aspect); break;

            case 9: scene = new SimpleLightScene(aspect); break;

            case 10: scene = new RoomScene(aspect); break;

            case 11: scene = new VolumeScene(aspect); break;

            case 12: scene = new CoverSceneRT2(aspect); break;
            }
            var rayTracer      = new RayTracer(scene);
            var rayTraceTarget = new RayTraceTargetAdapter
                                 (
                progress => rayTraceViewModel.Progress = progress,
                (x, y, c) => rayTraceViewModel.SetBitmapPixel(x, y, ColorFactory.CreateSquare(c))
                                 );

            rayTraceProcess = new RayTraceProcessHandler(rayTraceConfguration, rayTracer, rayTraceTarget);
            rayTraceProcess.StartAsync();
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            Scene.setDefaultDesignResolution(Screen.monitorWidth, Screen.monitorHeight, Scene.SceneResolutionPolicy.NoBorder);

            StartScreenUIScene startSceneUI = new StartScreenUIScene();
            TestScene2         gameScene    = new TestScene2(Core.graphicsDevice);

            SettingsUI settings      = new SettingsUI();
            GameScene  testGameScene = new GameScene();

            MainSceneManager mainManager = new MainSceneManager(gameScene, startSceneUI, false);



            startSceneUI.attachManager(mainManager);

            this.sceneManager = mainManager;



            Screen.isFullscreen = true;
        }