![](/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) |
Perhaps something like this might work - if the calculation of weights can be
handled. The weight of a sample has to be proportional to the area of the sky it
represents (in the simplest case that the surface reflects only diffusely). I am
not sure how this can be efficiantly calculated with uneven distribution of
samples.
Margus
Nieminen Juha wrote:
>
> Perhaps there could be a special keyword that you could apply to objects
> which tells povray "this object is very small and very bright, so send more
> radiosity rays here".
>
> --
> main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
> ):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
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) |
I've been working a bit on this with photon mapping. If a global photon map
is created, the directional data can be used so that you only shoot sample
rays in directions where photons came from. When doing this, you have to
use weights to compensate for the uneven distribution. The code is in the
UVPov source in photons.c (but isn't very well commented and is not
currently used... but you can look at it if you like). So, yes, this can
efficiently be done.
-Nathan
Margus Ramst <mar### [at] peak edu ee> wrote...
> Perhaps something like this might work - if the calculation of weights can
be
> handled. The weight of a sample has to be proportional to the area of the
sky it
> represents (in the simplest case that the surface reflects only
diffusely). I am
> not sure how this can be efficiantly calculated with uneven distribution
of
> samples.
>
> Margus
>
> Nieminen Juha wrote:
> >
> > Perhaps there could be a special keyword that you could apply to
objects
> > which tells povray "this object is very small and very bright, so send
more
> > radiosity rays here".
> >
> > --
> > main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
> > ):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*-
Warp -*/
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) |
Nathan Kopp wrote:
>
> I've been working a bit on this with photon mapping. If a global photon map
> is created, the directional data can be used so that you only shoot sample
> rays in directions where photons came from.
Now this is a great idea! But it doesn't work for purely ambient based light
sources, does it?
> When doing this, you have to
> use weights to compensate for the uneven distribution. The code is in the
> UVPov source in photons.c (but isn't very well commented and is not
> currently used... but you can look at it if you like). So, yes, this can
> efficiently be done.
>
This is bound to give me a headache, but I might check it out...
Margus
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) |
Margus Ramst <mar### [at] peak edu ee> wrote...
> Nathan Kopp wrote:
> >
> > I've been working a bit on this with photon mapping. If a global photon
map
> > is created, the directional data can be used so that you only shoot
sample
> > rays in directions where photons came from.
>
> Now this is a great idea! But it doesn't work for purely ambient based
light
> sources, does it?
No... Which is why, if I ever get it to work properly, it would have to be
optional.
-Nathan
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) |