POV-Ray : Newsgroups : povray.general : Radiosity question : Re: Radiosity question Server Time
7 Aug 2024 11:17:55 EDT (-0400)
  Re: Radiosity question  
From: Warp
Date: 4 Oct 2001 11:04:25
Message: <3bbc7a79@news.povray.org>
Tom Melly <tom### [at] tomandlucouk> wrote:
: I have got it right that low error bounds are meant to be more accurate?

  Yes. As far as I know, the idea of the error_bound value is to be some kind
of "threshold" value to see whether the current point is too far from (or
something similar) previously calculated lighting values. If the point is
close enough, then the lighting is calculated just by interpolating; if it's
too far away, then rays are shot and a new value is calculated at that point.

  In an optimal and perfectly-working algorithm this would (at least
theoretically) change the size of lighting "spots" in the scene. That is,
with a higher error_bound you get bigger and less spots (with uniform
lighting change) and with a smaller error_bound you get smaller and more
densely distributed spots. The lighting would be always very smooth in all
cases, but the change of lighting in the scene is more accurate with a smaller
error_bound. You need a small error_bound to get, for example, an accurate
lighting in room corners.

  However, there's something wrong either in the algorithm or its
implementation. Instead of getting smooth but accurate lighting with a small
error_bound, the lighting starts to get noisy instead. That is, you start to
get abrupt lighting changes where only smooth lighting transitions are
expected.

  If there's a bug in the implementation, I personally would first look at the
interpolation code. If the lighting interpolation is made in a wrong way, it
might cause those artifacts. It might be that the value of the closest lighting
values are not interpolated truely by their distance to the current point,
or this distance is calculated in the wrong way.
  If the bug is not there, then I don't know where to look next...

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.