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(); }
/// <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; }