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