|
|
max_trace_level does not affect the shadowing and filtering equations.
The reason is that whenever you trace a ray you (usually) get all of the
intersections, not just the closest one. Of course, for the eye rays you
only use the closest intersection and ignore the others (unless you're
doing a CSG merge) and then shoot another ray if there is any refraction.
So the shadow ray only needs to get shot once and all intersections are
recorded and can be processed.
Also, increasing the max_trace_level for glass surfaces can cause
great speed decreases because the change is exponential. Instead of
adding one more ray, you double the number of rays for each level of
depth (since you get both reflection and refraction rays).
Now, this makes me think that triangle meshes and isosurfaces might
not work properly when producing filtered shadows, since not all
intersections are returned (for speed reasons).
-Nathan
Nieminen Mika wrote:
>
> The shadow is green, as it should.
> Set the max_trace_level to 2. The shadow is still green (and the objects
> are black, as they should).
> Set it to 1. The shadow is still green.
>
> How can this be possible? Povray has to pass through 8 surfaces (ie.
> calculate 9 rays) from the floor to the light source to see what's the
> color of the shadow. The max_trace_level doesn't seem to affect this.
> What's the max_trace_level for the lighting calculation? How can povray
> calculate the shadow so fast (I can't notice any slowdown in the shadow area).
> Or is the shadow ray calculated in another way I'm not aware of?
>
> --
> 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
|
|