|
![](/i/fill.gif) |
chefboss nous apporta ses lumieres en ce 2007/08/18 14:20:
> When rendering a test-scene,
> http://www.manganese-blue.com/povrandombug/test.pov ,
> containing a sphere with refraction-index so that the focal point is near
> the surface, the transmitted light appears speckled, no matter how many
> photons I use.
> The ready-rendered pics and the testfiles (since I may not upload anything
> here)
> are under
> http://manganese-blue.com/index.php?main_page=page_2
>
> To me it seems like the random-generator were not so random, the effect
> beeing amplified by the close-to-the-surface focal-point of the sphere.
>
> I have examined the source, and it seems that the standard-c
> "rand()"-function is used; unfortunately on my debian/etch the source does
> not compile right (see 2 or 3 threads below), and I'm not a c-guru either.
> So I did _not_ succeed in compiling-in other random-generators for testing
> ....
>
> But I played around with the rand()-function, and it really seems to be not
> equally distributed in some ways, but I'm still experimenting on that right
> now.
>
> So: How about the effect from above ?
>
>
>
>
The basic distribution of photons is NOT RANDOM AT ALL! It follows a spiraling
path starting in the center of the bounding box of the target object.
You set jitter 0 = zero jittering = zero randomness in the photons distribution.
So, the random number generator is never used!
You use several coincident lights, uselessly increasing the render time and
giving no benefit at all. Also, all 5 will place there photons in the same
locations. 5 coinsident light + one slightly offset one = 6 lights.
200 000 / 6 = 33 3333 photons shoot by each light. 5 are at the same location:
so, you get 5 photons at the exact same location. This will obviously increase
the speckeling.
If you want a more intense light, just use an RGB value larger than 1. There is
NO maximum. Light_Gray is about 66%. You use 5 such lights. Beter to use 1 light
with rgb 0.658824*5 or Light_Gray*5 or rgb 3.29412.
When using count, it's easy to get overimpressed/intimidated/frighten by how
large the value have to be set. You often need count 2000000 or more to get good
results.
Alternatively, you can use spacing. It sets the aproximate separation between 2
photons in units. In your case, a spacing of about 0.05 coulb a good start.
Decrease that if needed.
Remove jitter 0 from the photons block if you want to have some randomness in
the distribution.
Solution:
Change
light_source {< 31, 12, -20> color White}//total 1
light_source {< 32, 11, -20> color LightGray}
light_source {< 32, 11, -20> color LightGray}
light_source {< 32, 11, -20> color LightGray}
light_source {< 32, 11, -20> color LightGray}
light_source {< 32, 11, -20> color LightGray}//total 3.29412
to
light_source{<32, 11, -20> color LightGray*5}
Side note: if you set reflection 0, it's beter just to not put reflection.
--
Alain
-------------------------------------------------
Drive A: not responding.. .Formating C: instead
Post a reply to this message
|
![](/i/fill.gif) |