コード例 #1
0
        public void Render(ICameraParameters camParams, RenderParameters renderParameters, World world)
        {
            Image = new Canvas(camParams.Width, camParams.Height);
            var camera = camParams.BuildCamera();

            stopRequested    = false;
            RenderStatistics = new RenderStatistics {
                Start = DateTime.Now, TotalPixels = camParams.Width * camParams.Height
            };
            Render(camera, world, renderParameters.NbThreads, shuffle: renderParameters.Shuffle);
        }
コード例 #2
0
        public void Run(string sceneName, ICameraParameters cameraParameters, RenderParameters renderParameters)
        {
            timer.Start();
            Scene = CreateScene(sceneName);
            if (Scene == null)
            {
                return;
            }

            Scene.InitWorld();

            bitmap = new Bitmap(cameraParameters.Width, cameraParameters.Height);
            for (int i = 0; i < bitmap.Height; i++)
            {
                for (int j = 0; j < bitmap.Width; j++)
                {
                    bitmap.SetPixel(j, i, Color.Black);
                }
            }

            pixels = Enumerable.Range(0, cameraParameters.Height).Select(i => new bool[cameraParameters.Width]).ToArray();
            RenderManager.Render(cameraParameters, renderParameters, Scene.World);
        }