16 virtual std::string name()
const = 0;
17 virtual void reset() = 0;
18 virtual void render(
Image& img) = 0;
24 static constexpr
size_t default_tile_width = 32;
25 static constexpr
size_t default_tile_height = 32;
28 void process_tiles(
size_t x,
size_t y,
size_t w,
size_t h,
size_t tile_w,
size_t tile_h, F f) {
29 #pragma omp parallel for collapse(2) schedule(dynamic) 30 for (
size_t tile_x = x; tile_x < w; tile_x += tile_w) {
31 for (
size_t tile_y = y; tile_y < h; tile_y += tile_h) {
32 f(tile_x, tile_y, std::min(tile_x + tile_w, w), std::min(tile_y + tile_h, h));
37 std::unique_ptr<Renderer> create_debug_renderer(
const Scene& scene);
38 std::unique_ptr<Renderer> create_pt_renderer(
const Scene& scene,
size_t max_path_len = 64);
39 std::unique_ptr<Renderer> create_bpt_renderer(
const Scene& scene,
bool connect =
true,
bool light_tracing =
true,
size_t max_path_len = 64);
40 std::unique_ptr<Renderer> create_ppm_renderer(
const Scene& scene,
size_t max_path_len = 64);
Definition: renderer.h:10