|
![](/i/fill.gif) |
tasuki nous apporta ses lumieres en ce 2007/09/14 05:12:
> Hello Alain,
>
> thanks for your answer.
>
> Alain <ele### [at] netscape net> wrote:
>> This is due to the fact that area_light are composed of several point_lights
>> disposed in a regular array. Some shadowed points may be in view of all of
>> those points.
>
> Yes, I figured out this was the problem, but I am not sure how to get rid of
> it ;)
>
>> The use of jitter can help hide this, as for each points tested, the location
>> of each element is slightly shifted randomly from it's original position for
>> the shadow evaluation. This random noise is normaly unnoticeable.
>
> I did use jitter, too.
> Well, let me clarify, this is my test scene:
>
>
> #include "colors.inc"
> #include "textures.inc"
> plane { y, 0
> pigment { rgb .8 }
> finish { reflection .05 }
> }
> cylinder { <0,0,0>,<0,1,0>,.03
> texture { Chrome_Metal }
> }
> #declare qualight=clock;
> light_source { <6, 4, 0> White
> area_light <3, 0, 0>, <0, 0, 3>, qualight, qualight
> jitter
> circular orient
> }
> camera {
> location <0, 2, -2>
> look_at <-1.2, 0, 0>
> }
>
>
> You can see the result here: http://www.tasuki.org/povray/arealights.png
>
> For some number of lights, it looks ok... but the problem appears again when
> I have more sticks at different distances from the area light...
>
>
>
Let see:
clock goes from 0 to 1, qualight = clock. As it is, on the firse frame I get an
error about a size of zero. You need to multiply clock by some value then add
something to that. Something like:
#declare Qualight = clock*20 +3;
Another aproach, would be to use radiosity with a high ambient "light source".
Replace your light with:
sphere{<6,4,0>,1.5 texture{pigment{rgb 2}finish{ambient 10}}
and add:
global_settings{radiosity{count 500 error_bound 0.7 low_error_factor 0.2}}
and
#default{finish{ambient 0 diffuse 1}}
--
Alain
-------------------------------------------------
I find that the harder I work, the more luck I seem to have.
Thomas Jefferson
Post a reply to this message
|
![](/i/fill.gif) |