|
![](/i/fill.gif) |
This is a modification of the radiosity/patio-radio.pov scene.
I've edit the geometry, camera, proportions, colors and added a HDR-Sky.
It was rendered with mc-pov (528 passes) on a machine with 8 cores (two cores in
each processor)
To find a way to share the rendering effectively over all core, I've rendered
the scene on 8 mc-pov instances independently. Each started with a delay of
minimal a second to let the "mc_rand_seed" take effect: Each mc-pov instance
then have a _different_ render-seed.
I've combined all images with imagemagic by using the command:
"convert -monitor -gamma 1 -average *.prev.* out_1.tif"
-monitor means that the program shows the working process
-gamma 1 does not take any effect until you change the value from one to
something else
-average is the most important command: It averages the images all together,
each with the same priority.
This was quite more effective than SMPOV, because PMPOV splits the picture in
peaces, and render them separately on each core. This has the effect, that
(depending on the image) a view peaces will be rendered faster while other need
more time to render. The cores are not used very effectively.
By averaging the images, I saw that typical problems of mc-pov take less effect,
and I've repeated the render-process by render only two passes and lots of
images, using the -kff... option (without any movement in the scene). The
effect was, that I've got hundreds of images, all looking _very_ noisy. Then
I'll combine all images again with imagemagic and get a _much_ better result!
#############################
Here my suggestion for mc-pov:
The images can be combined, just as imagemagic do, while rendering.
Actually mc-pov already combining the images, but it do so in a different way.
The question is: how to combine images averagely, all with the _same_ priority,
without knowing how many images to combine?? And in fact, with every
render-pass there comes more and more images..
It is easy:
The first pass stands alone, and will not be averaged.
The second will be averaged with the first one by 50% priority for each picture.
now, keep the result
the third has to be averaged with the last averaged result, but only with 33%
priority!!
keep the result
the 4th will be combined with only 25% priority with the last result...
and so one...
The formula is: 100/current_render_pass to get the percentage priority-power for
the current render pass to be combined with the last averaged result.
When using this procedure, the render result of mc-pov will give a lot more
accurate picture in less time rendering!
It is also possible, to write the number of rendered passes into a log-file, so
that the rendering then can be continued.
Hope that helps :)
Holger
Post a reply to this message
Attachments:
Download 'patio-edit.jpg' (252 KB)
Preview of image 'patio-edit.jpg'
![patio-edit.jpg](/povray.binaries.images/attachment/%3Cweb.49563c4fbe8b348c20776f0%40news.povray.org%3E/patio-edit.jpg?ttop=443866&toff=2900&preview=1)
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
H. Karsten wrote:
> 528 passes was not correct, actually it was combined with 528 images, but every
> image was rendered with 20 passes.
>
>
It would be interesting to see an image from just one of your passes.
Dan
P.S. The issue with the progressive averaging algorithm you describe is it doesn't
quite give the same result if you discretize each color channel to 8 bits after each
average step. However, if these are retained to greater precision, then I agree with
you. Still, it probably works well enough, in either case, up to for example 50
passes or so.
Post a reply to this message
|
![](/i/fill.gif) |