![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Whilst rendering internal room scenes with plane walls, I have noticed (as have many
others
I'm certain) that using a high error_bound gives better (ie non-blotchy) results on
the large
flat areas, but poor (ie too light) shadows. However, a very low error_bound creates
blotchiness on the large flat areas, but great shadows.
Would it be possible (and I am no expert on how radiosity works) to specify different
values
for error_bound for different areas of the image, and have POV-Ray interpolate between
them to
give smooth transitions? My idea works thus:
Imagine the rendered output as a grid, with <0,0> at top left, and <10,10> at bottom
right.
The user could then say something like:
error_bound_map {
<0,0>,1,
<3.46,2.45>,0.1,
<3.65,2.84>,0.15,
<1.165,9.866>,1.22,
.....
}
POV-Ray could then create it's own array (of user_specified resolution) of error_bound
entries, covering the image.
It would be very helpful if entries could be inserted into the map out of order too,
as and
when the user decides a new entry is needed, rather than having to place them in order
of
numeric value (is that clear?).
This might also help speed-up parts of the image too, I think.
I have no idea if the above is workable, or codeable within the confines of the
current source
code. Maybe in version 4? (or hopefully in version 4, a better quality of radiosity
could be
achieved without the above being neccessary.)
Any comments on this?
All the best,
Andy Cocker
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) |
Andrew Cocker wrote:
>
> Whilst rendering internal room scenes with plane walls, I have noticed (as have many
others
> I'm certain) that using a high error_bound gives better (ie non-blotchy) results on
the large
> flat areas, but poor (ie too light) shadows. However, a very low error_bound creates
> blotchiness on the large flat areas, but great shadows.
What's happening, very basically, is that with high error_bound, you're
really getting the same artifact-causing blotches, but because they're
so much bigger, they tend to pile up on top of each other and average out.
Increae your count. Alternately, you could try raising nearest_count,
which will tend to smooth out the artifacts at the expense of render
time. You might also try using a very large pretrace_start and a very
small pretrace_end; the additional radiosity passes also tend to smooth
out the artifacts.
> Would it be possible (and I am no expert on how radiosity works) to specify
different values
> for error_bound for different areas of the image, and have POV-Ray interpolate
between them to
> give smooth transitions?
It would probably be *possible*, but I don't think a 2D map would be
very useful for controlling radiosity in a 3D space.. not to mention it
would be a huge pain in the ass to use, and would break if you changed
the resolution or aspect ratio of the image.
> hopefully in version 4, a better quality of radiosity could be
> achieved without the above being neccessary.)
I don't see anything particularly wrong with the current implementation.
If you stop and think about what it's simulating, I suspect you'll find
that there's really no good way to get around the fact that it's slow.
There's at least one other way to implement radiosity lighting, but it
requires everything in your scene to be made up of triangles (obviously
this is impractical for POV-Ray), and I don't get the impression that
it's terribly fast either.
-Xplo
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) |
Xplo -
I think Andrew's observations are intriguing. Would there be some way
to modify ra_gather to change error_bound depending on the intensity of
the "radiant diffuse" contribution at that point?
If that could be done instead of increasing nearest_count or (worse)
casting more rays per interaction by increasing count.
One other note. There are three different switches you can use to
compile the radiosity code :
SAW_METHOD, and SIGMOID_METHOD.
SAW_METHOD is normally used, but SIGMOID_METHOD is the smoothest and
more computationally expensive of the two. I wonder if you could do
away with some of the blotchy-ness if the code was modified to use
SIGMOID_METHOD???
- Ben
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) |
Ben Birdsey wrote:
>
> Would there be some way
> to modify ra_gather to change error_bound depending on the intensity of
> the "radiant diffuse" contribution at that point?
>
> I wonder if you could do
> away with some of the blotchy-ness if the code was modified to use
> SIGMOID_METHOD???
I understand how radiosity works in POV-Ray, but not at the code level.
Someone else would be better able to answer these...
-Xplo
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) |
Xplo -
Sorry, that answer was not exactly directed toward you, but it was a
reply to some of the issues you brought out.
I just figure that the forum is public, so anyone who's interested /
experienced would post. :)
- Ben
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) |