![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Jaime Vives Piqueres
Subject: More byproducts of the radiosity discussions...
Date: 31 Dec 2008 04:09:42
Message: <495b36d6@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
After reading a message by Warp about how save_file and load_file could work
on the same scene together, I remembered that he mentioned this before. Back
then I had the intention to test it, but surely RL came in the way... now, I
don't have much free time these days anyhow, but I've not resisted to try
it, because I had a "bengenesque" idea that might work: use the animation
feature to successively decrease the error_bound while saving the data and
reloading it on the next frame:
#declare this_fr=concat("saved-",str(frame_number,2,0),".rad");
#declare last_fr=concat("saved-",str(frame_number-1,2,0),".rad");
radiosity {
count 160
error_bound 0.04+0.02*frame_number
nearest_count 10
recursion_limit rad_bounces
brightness rad_brightness
#if (file_exists(last_fr)=1)
load_file last_fr
always_sample off
#end
save_file this_fr
randomize on
}
Running 16 frames I get a very good result in just 1 hour: see
secret-progressive16.jpg. I also included for reference the first pic of the
sequence (secret-progressive01.jpg), and also a pic showing how the end
settings will look without loading the previous frames radiosity
(secret-progressive16b.jpg).
I think it deserves some more research, but looks promising to overcome
many radiosity problems.
--
Jaime
Post a reply to this message
Attachments:
Download 'secret-progressive16.jpg' (35 KB)
Download 'secret-progressive01.jpg' (39 KB)
Download 'secret-progressive16b.jpg' (47 KB)
Preview of image 'secret-progressive16.jpg'
![secret-progressive16.jpg](/povray.binaries.images/attachment/%3C495b36d6%40news.povray.org%3E/secret-progressive16.jpg?ttop=443866&toff=2900&preview=1)
Preview of image 'secret-progressive01.jpg'
![secret-progressive01.jpg](/povray.binaries.images/attachment/%3C495b36d6%40news.povray.org%3E/secret-progressive01.jpg?ttop=443866&toff=2900&preview=1)
Preview of image 'secret-progressive16b.jpg'
![secret-progressive16b.jpg](/povray.binaries.images/attachment/%3C495b36d6%40news.povray.org%3E/secret-progressive16b.jpg?ttop=443866&toff=2900&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Jaime Vives Piqueres
Subject: Re: More byproducts of the radiosity discussions...
Date: 31 Dec 2008 04:17:26
Message: <495b38a6$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Sorry for responding my own post, but I forgot to mention that I was also
inspired by Clipka "secret" scene, and used these radiosity tests to see if
that kind of scene could be rendered more realistically with this technique.
Regards,
--
Jaime
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jaime Vives Piqueres wrote:
> I think it deserves some more research, but looks promising to overcome
> many radiosity problems.
I think it also deserves to be considered being implemented as an
internal feature of POV-Ray. In other words, something which could be
turned on to make POV-Ray do this automatically, and without the need
for the save files.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jaime Vives Piqueres <jai### [at] ignorancia org> wrote:
> After reading a message by Warp about how save_file and load_file could work
> on the same scene together, I remembered that he mentioned this before. Back
> then I had the intention to test it, but surely RL came in the way... now, I
> don't have much free time these days anyhow, but I've not resisted to try
> it, because I had a "bengenesque" idea that might work: use the animation
> feature to successively decrease the error_bound while saving the data and
> reloading it on the next frame:
>
> Running 16 frames I get a very good result in just 1 hour: see
> secret-progressive16.jpg. I also included for reference the first pic of the
> sequence (secret-progressive01.jpg), and also a pic showing how the end
> settings will look without loading the previous frames radiosity
> (secret-progressive16b.jpg).
>
>
> I think it deserves some more research, but looks promising to overcome
> many radiosity problems.
Things to note:
- By setting nearest_count to 10, no additional samples will be taken after the
10th pass whatsoever. In fact, many samples will have been taken much earlier.
- By taking high error_bound samples first, which are low quality, you will
reduce the number of low error_bound samples taken.
- The artifacts you see in the 16b image are not due to the quality of the
radiosity samples used for that shot, but due to the moment they were taken:
What we see are the results of final-trace sampling, with the new samples
affecting their surroundings only in successive rows.
I expect that exactly the same quality - if not even better - can be achieved
within just two frames by using constant settings as currently used in the...
hm, let me guesstimate... something like the 6th frame.
You may also want to try using 1/max(image_width,image_height) as pretrace_end,
and N/max(image_width,image_height) with N being some power of 2 as
pretrace_start, and render just a single frame. Try a nearest_count of 3 or the
like.
Finally, expect 3.7 radiosity to become better anyway.
Oh, and finally finally - keep having ideas like these, 'cause even if they
don't work as you may think they may still be inspiring. And inspiration is the
thing most needed with POV's radiosity.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jaime Vives Piqueres <jai### [at] ignorancia org> wrote:
> Sorry for responding my own post, but I forgot to mention that I was also
> inspired by Clipka "secret" scene, and used these radiosity tests to see if
> that kind of scene could be rendered more realistically with this technique.
One thing that makes your scene much easier to render is that you allow the
light to enter via a straight way. In mine, the profile of the door and frame
is more complex, and the door is almost closed, so much that light cannot enter
straight (well, except through the keyhole).
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Jaime Vives Piqueres
Subject: Re: More byproducts of the radiosity discussions...
Date: 31 Dec 2008 06:00:20
Message: <495b50c4$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> - By setting nearest_count to 10, no additional samples will be taken
> after the 10th pass whatsoever. In fact, many samples will have been
> taken much earlier.
I should have warned that "I really don't know what I'm doing" is my
second name... but thanks for the pointer.
> - By taking high error_bound samples first, which are low quality, you
> will reduce the number of low error_bound samples taken.
Well, here I must admit that I thought I knew what I was doing... ;) What
I wanted was to take first the high error_bound samples, to avoid the
problem of radiosity coming trough the joints... but perhaps it works
equally the other way: I must try it.
> - The artifacts you see in the 16b image are not due to the quality of
> the radiosity samples used for that shot, but due to the moment they were
> taken: What we see are the results of final-trace sampling, with the new
> samples affecting their surroundings only in successive rows.
I think I didn't fully understand this explanation... sorry (not your
fault). But the 16b was done apart in one pass, without loading any radiosity...
> I expect that exactly the same quality - if not even better - can be
> achieved within just two frames by using constant settings as currently
> used in the... hm, let me guesstimate... something like the 6th frame.
>
> You may also want to try using 1/max(image_width,image_height) as
> pretrace_end, and N/max(image_width,image_height) with N being some power
> of 2 as pretrace_start, and render just a single frame. Try a
> nearest_count of 3 or the like.
Again, I must try these tips...
> Finally, expect 3.7 radiosity to become better anyway.
I hope so!
> Oh, and finally finally - keep having ideas like these, 'cause even if
> they don't work as you may think they may still be inspiring. And
> inspiration is the thing most needed with POV's radiosity.
Thanks: I have lots of weird ideas... and not only abut radiosity, but
many show to be nonsense after the first tests.
For example, I also tried something similar to what Holger Karsten tried
with MCPov: rendering many frames with random sample sequences (MegaPOV) and
then averaging them with ImageMagick. It sort of works, but needs too many
frames to get ride of the noise.
Now, if someone is interested, I had the strange idea that a
fade_distance for reflections will help making blurred reflections with
averaged normals... but I'm unable to test on my head if it will work.
--
Jaime
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Warp <war### [at] tag povray org> wrote:
> I think it also deserves to be considered being implemented as an
> internal feature of POV-Ray. In other words, something which could be
> turned on to make POV-Ray do this automatically, and without the need
> for the save files.
The idea of doing a final pretrace step that does exactly the same as the main
render definitely deserves attention.
However, this would theoretically have to include all the bells & whistles, like
anti-aliasing or focal blur, diffraction etc., as these *may* have an impact.
I was also pondering the idea of avoiding radiosity sampling during the final
render in some other way, but haven't come up with a conclusive idea yet. The
problem is always the same: Once you "slipped off" an existing sample into
no-man's land, you'd need to use *some* other color - but whichever you choose
will possibly be different from that last nearby existing one, and give a
(comparatively) sharp edge - an artifact.
Theoretically it would be possible to just keep using the nearest sample, but
this has drawbacks as well:
- Speed: The sample lookup algorithm is designed around the expected maximum
radius of influence of a particular sample. Searching for samples further away
than their expected radius of influence would be a hassle.
- Artifacts: When moving further away from a sample, there would be a moment
when the closest sample would switch to another one, potentially causing yet
another jump in color.
- Geometry: Some samples just don't fit, e.g. because they're on the other side
of a comparatively thin object.
POV already provides (theoretically) good tools for addressing this issue: The
reuse_count (together with always_sample off), forcing more samples to be
collected during pretrace than will be needed during final render, reducing the
risk of any spot being missed completely, and the low_error_factor, allowing
samples to be re-used at greater distance during final render.
There were a lot of design flaws in 3.6 acting against these mechanisms. Let's
see how things work when these flaws have been eliminated.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
From: Severi Salminen
Subject: Re: More byproducts of the radiosity discussions...
Date: 31 Dec 2008 07:48:25
Message: <495b6a19$1@news.povray.org>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In these discussions it would be nice to know how the "reference
renderer" handles this. Reference being MC-Pov. In 1 hour the result
might be quite good with a path tracer. At least if MC-POV implemented
all known techniques to speed up the convergence.
Severi S.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Jaime Vives Piqueres <jai### [at] ignorancia org> wrote:
> Well, here I must admit that I thought I knew what I was doing... ;) What
> I wanted was to take first the high error_bound samples, to avoid the
> problem of radiosity coming trough the joints... but perhaps it works
> equally the other way: I must try it.
If you're talking about that light leaking though walls and the like, that's
actually the high error_bound samples, not the low ones.
If you're talking about light leaking through at the hinge side of the door,
that may even be physically correct.
> > - The artifacts you see in the 16b image are not due to the quality of
> > the radiosity samples used for that shot, but due to the moment they were
> > taken: What we see are the results of final-trace sampling, with the new
> > samples affecting their surroundings only in successive rows.
>
> I think I didn't fully understand this explanation... sorry (not your
> fault). But the 16b was done apart in one pass, without loading any radiosity...
I'll try again, just the basics:
One of the main source of artifacts are radiosity samples which are taken during
the final render. The artifacts seen in the 16b sample look exactly like that
type.
(I'll not go into detail *why* they look that way ;) it's simply a side effect
of final-render-sampling that cannot be avoided)
This happens when the pretrace steps didn't generate enough samples.
If the same samples would be available at the start of the final render already,
you would not get any such artifacts.
They are available *after* that final render, and this is the moment when
radiosity data saving is done. So if you render the whole smash all over again,
this time loading the samples from the previous run, you don't get a different
set of samples - but you get a much better render.
> Now, if someone is interested, I had the strange idea that a
> fade_distance for reflections will help making blurred reflections with
> averaged normals... but I'm unable to test on my head if it will work.
Now it's me who understands just half of what you're saying :)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
The amazing JVP back at work, ladies and gentlemen! Someone please shoot that
damned RL! :D
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |