POV-Ray : Newsgroups : povray.beta-test.binaries : Fixing longstanding function/pattern issues in v38. New raw_wave keyword. : Re: Fixing longstanding function/pattern issues in v38. New raw_wave keywor= Server Time
28 Nov 2023 15:11:56 EST (-0500)
  Re: Fixing longstanding function/pattern issues in v38. New raw_wave keywor=  
From: William F Pokorny
Date: 20 Oct 2019 09:57:14
Message: <5dac67ba$1@news.povray.org>
On 10/19/19 11:01 PM, Bald Eagle wrote:
> William F Pokorny <ano### [at] anonymousorg> wrote:
> Well, I think I found an issue with the way that the angle is calculated for the
> radial pattern.

I think you did. Looks too me like only integer frequency multipliers 
have ever worked with the radial pattern. Probably how most use the 
pattern, but wow.

Attached is an image where the top two rows use a +z orthogonal camera 
and the bottom row a perspective camera. Always looking at a thin z 
plane sheet displaced by the radial's returned values.

In the top row, left column looking at the RadialPattern::EvaluateRaw() 
output values directly using my new raw_wave keyword. The pattern in the 
270-360 angle range start in the value range 1.00 to 1.25 and those 
values must "come down" by one to create a continuous pattern 0-1.

The means even at the default frequency of 1.0 the wave modification 
code is using fmod() to bring the 1.00 to 1.25 values down. Top row, 
right column.

The current method works for f>1 integers as can be seen with frequency 
2 in the second row, left column. Where I used 360/270 as you did, we 
expose the discontinuity on the right of the second row.

In the bottom row on the left a perspective camera view with frequency 
1.0. On the right 360/270. What's interesting to me is where the 
original pattern is continuous, the 1.333 works. We corkscrew by -90*y 
degrees - but this exposes the discontinuity. The size of the 
discontinuity also not consistent relative to frequency - at 1.9 it's 
much smaller. Expect that sometimes tends to hide the problem as well. 

We should fix this and reduce those huge 0.001 tolerances around x,z 
zero too. We've got a discontinuity around the y axis too for most of 
the rotation around y. I'll put it on my list to create a code branch 
fixing these issues - stealing from your suggested code.

Aside: Apologies to all for my writing yesterday. Far too much of my 
usual internal 'thought-storm' got to the page. Happened to bring up the 
original post and - "frustrating to recognition" - among others. Dang 

Bill P.

Post a reply to this message

Download 'radialstory.png' (139 KB)

Preview of image 'radialstory.png'


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