POV-Ray : Newsgroups : povray.general : Differences in rendering 3.50c vs. 3.6.1 : Re: Differences in rendering 3.50c vs. 3.6.1 Server Time
2 Aug 2024 08:12:11 EDT (-0400)
  Re: Differences in rendering 3.50c vs. 3.6.1  
From: Mike Williams
Date: 25 Nov 2004 01:11:15
Message: <wJzUeBApcXpBFwBz@econym.demon.co.uk>
Wasn't it Slime who wrote:
>> The macro gets called 30000 times, and about 29965 of those times the
>> calculated values get returned into the Cp array, but on 35 of those
>> calls one of the calculated values doesn't get returned. The value in
>> the control point array is whatever the array was preloaded with (in
>> this case 0). So about 35 of the 30000 control points of the mesh are
>> incorrectly positioned, producing ugly spikes in the surface.
>>
>> Changes to other parts of the scene (e.g. adding the debugging code that
>> I used to determine what was going on) cause the errors to appear at
>> different points of the surface.
>>
>> I've so far failed to reproduce the effect in a minimal scene.
>
>Oh, wow. I've seen this exact same behavior recently in my POVCOMP WIP.
>Passing variables by reference (and changing their values within the macro)
>fails *very* occasionally for no apparent reason. Changing the code (even
>just the number of tokens in code that's never actually executed) changes
>the results. I was going to try to find the problem in the POV-Ray source,
>but I'm not familiar enough with that part of the code to do it in a
>reasonable amount of time. And as you said, it's incredibly difficult to
>reproduce the effect on purpose, so I couldn't make a minimal scene to do a
>bug report.

I've now produced a minimal scene. Under 3.5 the macro always returns
with X=1, but under 3.6 it returns with X=123 about one time in a
thousand.

POV 3.6.0.icl8.win32 under Windows 98SE on a Celeron II with 376Mb RAM.


#macro Wave (Xo)
  #declare Xo = 1;
#end

#declare N=0;
#while (N<10000)
  #declare X=123;
  Wave(X)
  #if (X != 1)
    #debug concat("N = ", str(N,0,0), " X = ",str(X,0,0),"\n")
  #end
  #declare N=N+1;
#end


-- 
Mike Williams
Gentleman of Leisure


Post a reply to this message

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