POV-Ray : Newsgroups : povray.bugreports : inside() is unreliable on lathe : Re: inside() is unreliable on lathe Server Time
9 May 2025 14:54:22 EDT (-0400)
  Re: inside() is unreliable on lathe  
From: William F Pokorny
Date: 3 May 2025 18:49:59
Message: <68169d97$1@news.povray.org>
On 5/3/25 17:14, Cousin Ricky wrote:
> The second test is inside neither the wall nor the stem of the glass;
> the inside() function has given the wrong result!
> 
> My apologies for the procedural definition of the lathe object, but when
> I print the values and use those to define the lathe, I cannot reproduce
> the bug.

I think you are likely hitting a numerical limitation. The lathe and sor 
objects are problematic where the equations to be solved end up with 
x,y,z aspects which are axis aligned. More specifically, where the 
equations to be solved see little or no change in x, y or z over the 
evaluated range. In such cases, the equation's curve never crosses 
through zero in a reliable way and it becomes difficult (or impossible) 
to find roots. Or sometimes, one finds too many roots due numerical noise.

Have you tried adding a very small rotation in say z? Maybe try 
something like: 'rotate z*1e-5'

Another test which could be interesting would be to use your lathe in an 
object pattern where you leave your lathe as is, but sweep a y plane 
through a range just about the problem coordinate. Using this, with an 
orthograpic camera(*) looking directly up or down at the y plane, we can 
probably get an idea how large the 'numerical void' is about your 
problem coordinate. Could be a disc, maybe a tiny dot. I don't remember 
how the inside test for the lathe is getting done.

Bill P.

(*) The orthographic camera itself exposes many of these kinds of... 
no-dimensional delta/change, numerical issues.


Post a reply to this message

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