![](/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) |
Zeger Knaepen nous apporta ses lumieres en ce 2007/08/18 19:23:
> "Warp" <war### [at] tag povray org> wrote in message news:46c6d0fd@news.povray.org...
>> Christian Froeschlin <chr### [at] chrfr de> wrote:
>>>> Every time a ray is reflected or refracted
>>> or when just passing through a transparent surface as in your case.
>> That's, technically speaking, refraction. The refraction just doesn't
>> modify the direction of the ray.
>>
>> (One cool developement idea for povray would be, I think, that if a
>> surface has transparency, no reflection and no ior, iow. rays just pass
>> through unmodified (just taking the color of the surface), povray could
>> skip incrementing the recursion counter. That way you could have and
>> indefinite amount of transparent surfaces even if max_trace_level is
>> small.)
>
> although probably a bit more complicated, couldn't this idea be expanded to
> objects that do have reflections and/or an ior?
> I might be mistaken, but I believe the only way to get in an infinite loop, is
> if the ray hits the same object more than once.
> So: if a ray is reflected or refracted, the recursion counter doesn't increment
> until the same object gets hit again.
>
> there are probably some cases I'm overseeing...
>
> cu!
You can have extremely long paths, even infinite ones, between several objects.
This is very probable with reflections, think of a mirror-hall kind of setting.
In that case, you need to have less than perfect reflections and probably
increase the adc_bailout value, or be plagued with chains many 1000's of
reflections long!
Thank Warp for the reminder of that possibility :-)
--
Alain
-------------------------------------------------
WARNING: The consumption of alcohol may create the illusion that you are
tougher, smarter, faster and better looking than most people.
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) |
"Alain" <ele### [at] netscape net> wrote in message
news:46c7a874$1@news.povray.org...
> You can have extremely long paths, even infinite ones, between several
> objects.
extremely long paths, I agree, but I don't think they could be infinite without
hitting the same object more than once. Not with a finite number of objects
anyway.
cu!
--
#macro G(b,e)b+(e-b)*C/50#end#macro _(b,e,k,l)#local C=0;#while(C<50)
sphere{G(b,e)+3*z.1pigment{rgb G(k,l)}finish{ambient 1}}#local C=C+1;
#end#end _(y-x,y,x,x+y)_(y,-x-y,x+y,y)_(-x-y,-y,y,y+z)_(-y,y,y+z,x+y)
_(0x+y.5+y/2x)_(0x-y.5+y/2x) // ZK http://www.povplace.com
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) |
>>>> (One cool developement idea for povray would be, I think, that if a
>>>> surface has transparency, no reflection and no ior, iow. rays just pass
>>>> through unmodified (just taking the color of the surface), povray could
>>>> skip incrementing the recursion counter. That way you could have and
>>>> indefinite amount of transparent surfaces even if max_trace_level is
>>>> small.)
>>
>> My thought would be that after a ray hits the max trace depth it should
>> ignore transmit, filter and reflection for that hit, and return a pigment
>> color instead of just returning black. In many cases where there is
>> multiple semi-transparent, or partially colored reflections, this "guess"
>> would result in a pixel that (after being shaded by the first hits) would
>> be somewhat correct. In other cases you'd get multi-color speckling,
>> but that is just similar to the black speckling we have now.
> That's whey you have adc_bailout. It can be used to limit the depth when
> the last surface contribution fals under the threshold.
I think you misunderstand, I mean when a ray hits max_trace_level it
could return just the color from that hit, then follow the normal
tinting of the previous hits. Instead it returns black.
ADC_bailout just is an early exit of a pixel that already is colored
mostly correct. The default bailout is 1/256 or about 0.4%. What I'd like
to see from a ray that hits max_trace_level is a color guess instead of
just black. If it ends up within 5 - 10% then it might look passable.
Raising ADC_bailout would make more pixels inaccurate. Some pixels
would return after fewer hits.
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) |