private void depthBlurToolStripMenuItem_Click(object sender, EventArgs e) { if (_raytracerResult == null) { MessageBox.Show("No raytracer result found"); } //DepthBlurRenderer depthBlurRenderer = new DepthBlurRenderer(result, 1.7, 1.9, 17); DepthBlurRenderer depthBlurRenderer = new DepthBlurRenderer(_raytracerResult, 1.4, 1.6, 9); _raytracerOutput = depthBlurRenderer.Render(); _raytracerOutput.Save(string.Format(@"..\..\Data\Results\{0}.bmp", Environment.TickCount)); Invalidate(); /* * Bitmap blurResult = result.ColorBuffer.Bitmap; * * _animation.ImageStack.Bitmaps.Add(blurResult); * * for (int i = 0; i < 200; i++) * { * BoxBlurRenderer boxBlurRenderer = new BoxBlurRenderer(blurResult, 5); * blurResult = boxBlurRenderer.Render(); * * _animation.ImageStack.Bitmaps.Add(blurResult); * } * * _animation.FrameUpdate += new Animation.FrameUpdateDelegate(AnimationFrameUpdate); * _animation.Start(10); */ }
private void RaytracerRenderComplete(RenderTarget result) { _raytracerResult = result; _raytracerOutput = result.ColorBuffer.Bitmap; //result.DepthBuffer.ToBitmap();// _raytracerOutput.Save(string.Format(@"..\..\Data\Results\{0}.bmp", Environment.TickCount)); //AntiAliasingRenderer antiAliasingRenderer = new AntiAliasingRenderer(_raytracerOutput); //_raytracerOutput = antiAliasingRenderer.Render(2); //_raytracerOutput.Save(string.Format(@".\{0}.bmp", Environment.TickCount)); RaytracerProgressUpdate(0.0f); if (InvokeRequired) { this.Invoke(new Action(Refresh)); } _animation.Bounce = true; //_animation.ImageStack.Bitmaps.Add(_raytracerOutput); double focalLengthMin = 1.0; double focalLengthMax = 2.0; for (int i = 0; i < 80; i++) { DepthBlurRenderer depthBlurRenderer = new DepthBlurRenderer(_raytracerResult, focalLengthMin, focalLengthMax, 21); _animation.ImageStack.Bitmaps.Add(depthBlurRenderer.Render()); focalLengthMin += 0.1; focalLengthMax += 0.1; } _animation.FrameUpdate += new Animation.FrameUpdateDelegate(AnimationFrameUpdate); _animation.Start(200); }