POV-Ray : Newsgroups : povray.unofficial.patches : Bug in UV-Pov alpha 5 : Bug in UV-Pov alpha 5 Server Time
2 Sep 2024 16:16:52 EDT (-0400)
  Bug in UV-Pov alpha 5  
From: Nieminen Juha
Date: 2 Nov 1999 11:42:08
Message: <381f1460@news.povray.org>
I found this bug in UV-Pov alpha 5. I have not tested it in alpha 6 but
it may probably appear there too.
  It looks a lot like a normal flipping problem similar to the old
average normal bug. It seems exclusive to photon mapping since the bug
doesn't appear when photon mapping is turned off.

  In the following scene there are two cylinders casting shadows over two
gaps in the wall. The left one is a real gap made by differencing a box
from the wall. The right one is a "fake" gap made with a normal pattern.
The dim caustic light in the left one is ok, while in the right one the
gap is dark.

  This caused a problem in my "landmarks" irtc entry, but I didn't study
that carefully until now.

  If you don't have my photons.inc, here it is:

//-----------------------------------------------------------------------
#ifndef(UsePhotons) #declare UsePhotons=yes; #end
#ifndef(phd) #declare phd=1; #end

global_settings
{ 
  #if(UsePhotons)
    photons
    { gather 20,100
      radius 0.1*phd, 2, 0.1*phd
      autostop 0
      jitter .4
      expand_thresholds 0.2, 40
      #ifdef(PhotonsMaxTraceLevel) max_trace_level PhotonsMaxTraceLevel #end
      #ifdef(PhotonsADCBailout) adc_bailout PhotonsADCBailout #end
    }
  #end  
}

#macro Photons(Refl,Refr,Ignore)
  #if(UsePhotons)
    photons
    { separation .01*phd
      reflection Refl
      refraction Refr
      #if(Ignore) ignore_photons #end
    }
  #end
#end
//-----------------------------------------------------------------------

  And here is the scene showing the bug:

//-----------------------------------------------------------------------
#declare phd=2;
#include "photons.inc"

camera { location <0,10,-15> look_at 0 angle 35 }
light_source { <120,2,-100> 1 }

difference
{ plane { y,0 }
  box { <-.5,-.5,-10><.5,.5,10> rotate z*45 scale <1,.1,1> translate -x*2 }
  pigment { rgb 1 }
  normal
  { gradient x .5 slope_map
    { [0 <1,-1>][.1 <0,-1>][.1 <0,1>][.2 <1,1>][.2 <1,0>][1 <1,0>]
    }
    scale 7 translate x*10
  }
  rotate x*-90
}

#declare Obj=
  difference
  { cylinder { .001,y*2,.5 scale 2 }
    cylinder { 0,y*2.01,.45 scale 2 }
    pigment { rgbf <.5,1,.5,.98> }
    interior { ior 1.5 }
    Photons(no,yes,yes)
  }

object { Obj translate <4+.2,-1,-1.5-.2> }
object { Obj translate <0+.2,-1,-1.5-.2> }
//-----------------------------------------------------------------------

-- 
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

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