|
![](/i/fill.gif) |
Christoph Hormann wrote:
> Sounds logical, avoiding regular patterns by randomizing the sampling
> directions without breaking their uniform distribution.
Have you ever actually looked at the sample distribution? It's only
truely uniform at very specific sample numbers (51, 100-and-something,
roughly doubling to 1600). I've been playing with a couple of algorithms
to see if I could get a 'good enough' sampling at any number. The best
I've found is using the Delaunay triangulation of a 2 unit radius disk
and adding a new sample at the center of the largest circumcircle until
there are 1600 samples within the 1 unit disk. Gives a reasonable
distribution at all sample numbers.
>
> How much speed does this additional rotation cost?
It's only a handfull of adds and multiplies, a sin() and a cos() each
time ra_gather() is called. Compared to the rest of the radiosity code
it is negligible.
>
> One bad side effect would be the results will differ depending on the
> tracing situation, a bit like jitter, which will lead to problems in
> animations.
Yes, but radiosity already had a random jitter in it, added in
Start_Tracing_Radiosity_Preview() at around line 1040 in render.cpp. In
fact I've taken this jitter out in my version to see what difference it
made. In the scenes I've tried it doesn't seem to make much difference,
but I can think of some where it would, so I may put it back in.
>
> Christoph
>
Mike Andrews.
Post a reply to this message
|
![](/i/fill.gif) |