|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I hope I'm not in the wrong group when asking
the following question here, if I am, please forget
that you know me. :-)
How does POV-Ray's Radiosity method work?
I've tried searching the web for a document covering
the actual function and approach, but was unable
to find something useful.
Anyways, as far as I've understood the docs, its
like this:
1. Pretrace-Level:
Divide scene into patches, calculate ambient light-values
for those, gathering diffuse-reflected light by shooting
rays (amount given by "count") outward.
For each successive step, we'll check if neighbouring
patches are too different in brightness, and subdivide
them. If we use a recursion_limit, we'll do another
"bounce" of light outward, though I'm unsure if that
happens in a new pretrace-step, or is done right at the
beginning, and further pretrace-steps just do the
subdivision.
That's just about how far I was able to understand
it, but I'd like to know it in detail. For example, if
someone could point me on a document describing
the technique, and provide some information on what
POV-Ray has used and what was modified...
The main thing I'm actually trying to do with this question
is gather information on what different pretrace-steps do,
if and which some calculations are done iterative (and thus
the need for several pretrace-passes), etc. I'd like to really
fully understand the individual options for radiosity, cause for
some I've just got the feeling like:
use lower values for more detail (regarding pretrace),
use higher values for more accuracy (regarding count),
etc.
Regards,
Tim
--
Tim Nikias v2.0
Homepage: http://www.digitaltwilight.de/no_lights
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.495 / Virus Database: 294 - Release Date: 01.07.2003
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> I've tried searching the web for a document covering
> the actual function and approach, but was unable
> to find something useful.
Tip: search for "global illumination," since that's what POV-Ray's
"radiosity" feature really is. Radiosity is something else. At least, that's
what I heard from someone at some point.
- Slime
[ http://www.slimeland.com/ ]
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tim Nikias v2.0 <tim### [at] gmxde> wrote:
> How does POV-Ray's Radiosity method work?
> I've tried searching the web for a document covering
> the actual function and approach, but was unable
> to find something useful.
http://radsite.lbl.gov/radiance/papers/sg88/paper.html
--
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hm, I've tried searching both. Haven't found
any useful difference between both terms.
It seems that Global Illumination is more or
less used for describing the problem itself:
Light is being reflected off of diffuse-reflecting
objects, and how do we solve that?
And Radiosity is then used as the term describing
an implemented technique: I use patches or
photons, scatter these around the scene and
do several rebounces.
Why there are two terms which seem to be
exact same thing goes above me. Anyone
care to elaborate?
I've got a 3D-Graphiks Book at hand, but it just
goes on explaining the radiosity-function, and
naming it a global lighting modell, but since its
a german book, I'd say it might have been named
global illumination at some point, but got translated.
--
Tim Nikias v2.0
Homepage: http://www.digitaltwilight.de/no_lights
> > I've tried searching the web for a document covering
> > the actual function and approach, but was unable
> > to find something useful.
>
>
> Tip: search for "global illumination," since that's what POV-Ray's
> "radiosity" feature really is. Radiosity is something else. At least,
that's
> what I heard from someone at some point.
>
> - Slime
> [ http://www.slimeland.com/ ]
>
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.495 / Virus Database: 294 - Release Date: 30.06.2003
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thanks! That sure looks interesting and what I'm after.
Now I've just got to get the time to actually read it. :-)
--
Tim Nikias v2.0
Homepage: http://www.digitaltwilight.de/no_lights
> > How does POV-Ray's Radiosity method work?
> > I've tried searching the web for a document covering
> > the actual function and approach, but was unable
> > to find something useful.
>
> http://radsite.lbl.gov/radiance/papers/sg88/paper.html
>
> --
> #macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb
M()}}
> N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
> N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}// -
Warp -
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.495 / Virus Database: 294 - Release Date: 30.06.2003
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Ahead of everything else: I'm asking
stuff, so to all those "newbies" to radiosity:
don't expect this to be correct!
...
Okay, I've read through the paper, but I'm
no mathematician and haven't fully understood
all details. This is what I think POV's radiosity
does, I'd be happy if anyone could correct me:
First, it shoots rays outwards. The position where
it hits will then send "count"-many rays outwards,
in an even distribution, to collect light-values from
"outside". This is the Monte-Carlo-Part of the
algorithm.
Then, as a new ray is shot, it tests if other samples
are nearby, and if there aren't enough (set by varios
details like minimum_reuse, error_bound etc), I
place a new sample there.
But what about recursion_limit? As I understand it,
I do that all at once: shoot rays outward from first
sample. The places where these hit will also shoot
samples outward, and so, until recursion-limit is
met. This way, I quickly get samples across the
scene in the very beginning, which may then be
accessed for the next samples. For this to work,
the samples would have to get marked how deep
they've already done their own recursion_limit... Tricky.
Perhaps someone could explain that to me?
And finally, pretrace. As I understand it, pretrace is
just another pass over the picture in order to check
if enough samples are present at any given spot. If
I'd be crazy enough, I could test this for every pixel
of a scene (though this doesn't necessarily lead to
best results, I've understood that much at least :-)
I'm really curious how all this works together. I formerly
thought that POV-Ray creates patches across the
scene, but that doesn't seem to be the case. Instead,
it averages samples points in a given radius for a pixel.
Which leads me to the conclusion that the radiosity
can't "detect" shadowlines, and do better sampling
there. Right?
--
Tim Nikias v2.0
Homepage: http://www.digitaltwilight.de/no_lights
"Tim Nikias v2.0" <tim### [at] gmxde> schrieb im Newsbeitrag
news:3f0f50b5@news.povray.org...
> I hope I'm not in the wrong group when asking
> the following question here, if I am, please forget
> that you know me. :-)
>
> How does POV-Ray's Radiosity method work?
> I've tried searching the web for a document covering
> the actual function and approach, but was unable
> to find something useful.
>
> Anyways, as far as I've understood the docs, its
> like this:
> 1. Pretrace-Level:
> Divide scene into patches, calculate ambient light-values
> for those, gathering diffuse-reflected light by shooting
> rays (amount given by "count") outward.
>
> For each successive step, we'll check if neighbouring
> patches are too different in brightness, and subdivide
> them. If we use a recursion_limit, we'll do another
> "bounce" of light outward, though I'm unsure if that
> happens in a new pretrace-step, or is done right at the
> beginning, and further pretrace-steps just do the
> subdivision.
>
> That's just about how far I was able to understand
> it, but I'd like to know it in detail. For example, if
> someone could point me on a document describing
> the technique, and provide some information on what
> POV-Ray has used and what was modified...
>
> The main thing I'm actually trying to do with this question
> is gather information on what different pretrace-steps do,
> if and which some calculations are done iterative (and thus
> the need for several pretrace-passes), etc. I'd like to really
> fully understand the individual options for radiosity, cause for
> some I've just got the feeling like:
> use lower values for more detail (regarding pretrace),
> use higher values for more accuracy (regarding count),
> etc.
>
> Regards,
> Tim
>
>
> --
> Tim Nikias v2.0
> Homepage: http://www.digitaltwilight.de/no_lights
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.495 / Virus Database: 294 - Release Date: 01.07.2003
>
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.495 / Virus Database: 294 - Release Date: 30.06.2003
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Another sidenote:
When exporting the calculated radiosity
via save_file, the resulting file has some
nice columns...
What do the different columns stand for? Is
there a possibility to convert that data into,
for example, cones or spheres, with the
color of the sample, perhaps size, heading
(dependant on the information saved)?
--
Tim Nikias v2.0
Homepage: http://www.digitaltwilight.de/no_lights
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.495 / Virus Database: 294 - Release Date: 30.06.2003
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
And one last thing:
When using ordinary lightsources, do they
affect radiosity? I'd think that radiosity uses
only ambient values, and lightsources affect
the diffuse value, and thus, when using radiosity,
I have to take care of ambient lightsources.
Is that correct?
I've just experimented and found that using
photons (loaded, without lightsource) affects
the image only very very slightly, and perhaps
that is the same case with lightsources?
I'd like some answers, even though I'll do more
experiments when I've got time. Just to make
sure that I'm not riding on any assumptions...
--
Tim Nikias v2.0
Homepage: http://www.digitaltwilight.de/no_lights
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.495 / Virus Database: 294 - Release Date: 30.06.2003
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tim Nikias v2.0 <tim### [at] gmxde> wrote:
> But what about recursion_limit? As I understand it,
> I do that all at once: shoot rays outward from first
> sample. The places where these hit will also shoot
> samples outward, and so, until recursion-limit is
> met.
I think that the recursion can stop earlier for a certain sample ray
than recursion-limit if there are enough samples nearby, but basically
you are right.
> This way, I quickly get samples across the
> scene in the very beginning, which may then be
> accessed for the next samples. For this to work,
> the samples would have to get marked how deep
> they've already done their own recursion_limit... Tricky.
Why do samples need to store their recursion level?
*Rays* need to know their recursion level when they are traced, but that's
all. This is trivial and it's the exact same thing as the regular raytracing
process is doing anyways (for reflections and refractions).
> And finally, pretrace. As I understand it, pretrace is
> just another pass over the picture in order to check
> if enough samples are present at any given spot.
AFAIK pretrace is simply a preprocessing step to get some initial
samples in the scene, thus speeding up the actual raytracing.
--
plane{-x+y,-1pigment{bozo color_map{[0rgb x][1rgb x+y]}turbulence 1}}
sphere{0,2pigment{rgbt 1}interior{media{emission 1density{spherical
density_map{[0rgb 0][.5rgb<1,.5>][1rgb 1]}turbulence.9}}}scale
<1,1,3>hollow}text{ttf"timrom""Warp".1,0translate<-1,-.1,2>}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Tim Nikias v2.0 <tim### [at] gmxde> wrote:
> When using ordinary lightsources, do they
> affect radiosity? I'd think that radiosity uses
> only ambient values, and lightsources affect
> the diffuse value, and thus, when using radiosity,
> I have to take care of ambient lightsources.
> Is that correct?
No.
Diffuse affects radiosity. That's why it's called "diffuse inter-reflection"
in the first place.
And this is a good thing. You get a lot better results faster using real
light sources than using high-ambient objects. This is because real light
sources are very fast to calculate, while getting a good illumination from
a high-ambient object needs tons and tons of samples.
--
plane{-x+y,-1pigment{bozo color_map{[0rgb x][1rgb x+y]}turbulence 1}}
sphere{0,2pigment{rgbt 1}interior{media{emission 1density{spherical
density_map{[0rgb 0][.5rgb<1,.5>][1rgb 1]}turbulence.9}}}scale
<1,1,3>hollow}text{ttf"timrom""Warp".1,0translate<-1,-.1,2>}// - Warp -
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|