POV-Ray : Newsgroups : povray.pov4.discussion.general : Variable Block Size rendering : Re: Variable Block Size rendering Server Time
19 Apr 2024 23:23:06 EDT (-0400)
  Re: Variable Block Size rendering  
From: Alain
Date: 14 Jun 2018 12:22:10
Message: <5b229632$1@news.povray.org>
Le 18-06-14 à 10:26, rodv92 a écrit :
> Hello, I had an idea about a feature that could make renders faster for
> multithread multicore operations.
> 
> Some areas of a render are always slower (media, lights, reflections, etc..)
> 
> I think it could be possible to make a low-res pre-render to identify block size
> rendering speed for the different blocks.
> 
> Each block of the pre-render would be then given a weight according to render
> speed.
> 
> When performing full resolution render, these blocks would be subdivided into
> smaller blocks according to weight.
> 
> This would allow the allocation of more cores to smaller regions that render
> slower.
> 
> It would prevent the "lone core end-of-render effect" when a single core renders
> a big and slow region when others sit idle.
> 
> The algorithm seems easy to implement.
> The more parallel is the computer (dual CPU, 8 to 12 cores per cpu), ex: 48
> hyper-threading cores, the more gain there would be.
> 
> Of course, rendering gain time must offset the prerender time.
> 
> Maybe this idea has been already thought of, i dunno.
> 
> 
> 

During the prerender, you only sample a single point per block. It sit 
between pixels for any even size. It can easily miss all the slow 
pixels, and could hit a single slow point, that would otherwise remain 
unrendered, in a fast block.

That mean that it's pretty easy to get fast block uselessly subdivided 
and slow ones not subdivided at all.
What you propose will be utterly unreliable.

But, since you often get those slow blocks near the centre of the image, 
using an alternate render pattern may help you : It can cause the slow 
blocks to start rendering early.

Alain


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.