diff options
author | Andrii <pembem22> | 2021-11-11 10:57:35 +0300 |
---|---|---|
committer | William Leeson <william@blender.org> | 2021-11-11 11:39:25 +0300 |
commit | c63e735f6b601e662fbb1ed5d7a71293552d6720 (patch) | |
tree | 83e7eb2e002067fc7072a63fd3badca9a471f5d8 /intern/cycles/integrator/path_trace.cpp | |
parent | b8d53b703a4e20b4301e794bf58c9d1fdb65d61b (diff) |
Cycles: Add sample offset option
This patch exposes the sampling offset option to Blender. It is located in the "Sampling > Advanced" panel.
For example, this can be useful to parallelize rendering and distribute different chunks of samples for each computer to render.
---
I also had to add this option to `RenderWork` and `RenderScheduler` classes so that the sample count in the status string can be calculated correctly.
Reviewed By: leesonw
Differential Revision: https://developer.blender.org/D13086
Diffstat (limited to 'intern/cycles/integrator/path_trace.cpp')
-rw-r--r-- | intern/cycles/integrator/path_trace.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/intern/cycles/integrator/path_trace.cpp b/intern/cycles/integrator/path_trace.cpp index daf270d6686..dcbdf07ee67 100644 --- a/intern/cycles/integrator/path_trace.cpp +++ b/intern/cycles/integrator/path_trace.cpp @@ -380,7 +380,10 @@ void PathTrace::path_trace(RenderWork &render_work) PathTraceWork *path_trace_work = path_trace_works_[i].get(); PathTraceWork::RenderStatistics statistics; - path_trace_work->render_samples(statistics, render_work.path_trace.start_sample, num_samples); + path_trace_work->render_samples(statistics, + render_work.path_trace.start_sample, + num_samples, + render_work.path_trace.sample_offset); const double work_time = time_dt() - work_start_time; work_balance_infos_[i].time_spent += work_time; @@ -849,7 +852,8 @@ void PathTrace::progress_update_if_needed(const RenderWork &render_work) const int2 tile_size = get_render_tile_size(); const int num_samples_added = tile_size.x * tile_size.y * render_work.path_trace.num_samples; const int current_sample = render_work.path_trace.start_sample + - render_work.path_trace.num_samples; + render_work.path_trace.num_samples - + render_work.path_trace.sample_offset; progress_->add_samples(num_samples_added, current_sample); } |