private void RunRendererTasks()
 {
     for (int i = 0; i < tasksCountToDo; i++)
     {
         PotatoRenderer r = new PotatoRenderer(scene, i);
         tasks[i] = Task.Run(() => r.RenderImage());
     }
 }
        private void RunRendererTasks()
        {
            for (int i = 0; i < tasksToDo; i++)
            {
                PotatoSceneData sd    = sceneData.DeepCopy();
                PotatoRenderer  pr    = new PotatoRenderer(sd);
                int             light = i;
                tasks[i] = Task.Run(() => pr.ParallelWork(tiles, light));
            }

            Task.WaitAll(tasks);
        }
예제 #3
0
 private void TraceSubPixel(Ray ray, int lightIndex, int pixelPositionX, int pixelPositionY, float divisionPixelX, float divisionPixelY)
 {
     PotatoRenderer.SetRayDirectionByPixelPosition(ref ray, sceneData, pixelPositionX + (divisionPixelX - halfResolution) / halfResolution, pixelPositionY + (divisionPixelY - halfResolution) / halfResolution);
     samplingColor = tracer.Trace(ray, lightIndex);
     AddSamplingColorToColorChannels();
 }