POV-Ray : Newsgroups : povray.beta-test.binaries : Documenting some inside test (object pattern) issues. Server Time
20 Apr 2024 07:02:39 EDT (-0400)
  Documenting some inside test (object pattern) issues. (Message 1 to 4 of 4)  
From: William F Pokorny
Subject: Documenting some inside test (object pattern) issues.
Date: 12 Feb 2019 09:27:45
Message: <5c62d7e1@news.povray.org>
While the test set is still not complete even with respect to covering 
all shape types, I've better flushed out test cases for verifying the 
inside test mechanism. In the process found some of our basic shapes are 
not today returning the correct inside test results. Further, I've long 
had on my list that some of the media intensities look suspect to me for 
the non-inside test based versions and I'll show one example - blobs.

In the attached image master branch used at commit 054e75c except the 
bottom row which uses the my new solver branch given how bad the blob 
result for speckles was with the master branch in the next to bottom row.

The top row shows an expected result for shapes in general. In this case 
for a bezier_spline prism. When things are working the media result in 
the left column uses the shape straight up as a container with constant 
media density. The middle column shows a media result using a matching 
inside-test -> object-pattern -> function based media. Should be the two 
approaches basically match though they won't be identical.

Rows one through four showing shapes where the inside test is failing.

The bottom two rows show a class of cases on my list for a while where 
it looks to me like the normal shape-intersection media intensities are 
too high. Not dug at all - bounding issue for the inside test version 
maybe - don't know.

- Row 0 A good test.

- Row 1 the cylinder.

- Row 2 the cone (cone and cylinder really the same code internally).

- Row 3 superellipsoid set as a sphere (a).

- Row 4 the new torus-union variety is acting like the torus-merge for 
the inside test.

- Row 5 blob test with master. Speckling bad. Shape OK but intensities
puzzling.

- Row 6 blob done test with new solver branch re-based off master.

(a) - Remember the peeling paint superellipsoid scene of Thomas's where 
I tried to use the soft_object to create actual peeling paint on the 
fly. Remember too how it was offset away from the surface of the 
superellipsoid. I until yesterday though I had just gotten something 
wrong in my offset math - looks instead like the dang inside test is 
wrong (set for the largest box possible maybe)!

Anyway, more stuff for the todo list.

Bill P.


Post a reply to this message


Attachments:
Download 'insidetestissues.png' (214 KB)

Preview of image 'insidetestissues.png'
insidetestissues.png


 

From: William F Pokorny
Subject: Re: Documenting some inside test (object pattern) issues.
Date: 12 Feb 2019 12:52:45
Message: <5c6307ed$1@news.povray.org>
On 2/12/19 9:27 AM, William F Pokorny wrote:
> not today returning the correct inside test results. Further, I've long 
...
> 
> Anyway, more stuff for the todo list.
> 
> Bill P.

As all too often happens these days with my ever failing old brain - I 
remembered a few minutes ago a cylindrical isosurface done years ago. 
One which could not have worked without the cylindrical inside test 
working properly.

So check again the code for test cases 1-3 in my post and I screwed 
those three up... They're OK.

Proof I need to go do something else for a while.

Bill P.


Post a reply to this message

From: William F Pokorny
Subject: Re: Documenting some inside test (object pattern) issues.
Date: 17 Mar 2019 08:11:40
Message: <5c8e397c$1@news.povray.org>
On 2/12/19 12:52 PM, William F Pokorny wrote:
> On 2/12/19 9:27 AM, William F Pokorny wrote:
>> not today returning the correct inside test results. Further, I've long 
> ...
>>
>> Anyway, more stuff for the todo list.
>>
>> Bill P.
> 
> As all too often happens these days with my ever failing old brain - I 
> remembered a few minutes ago a cylindrical isosurface done years ago. 
> One which could not have worked without the cylindrical inside test 
> working properly.
> 
> So check again the code for test cases 1-3 in my post and I screwed 
> those three up... They're OK.
> 
> Proof I need to go do something else for a while.
> 
> Bill P.

Looked at the media intensity issues today and they too were my fault. 
Typo carried into some of the test cases as a best guess.

So... The one remaining object inside test issue - which I still think 
real - is the spindle torus union case. The object inside test is acting 
like the merge variant. Image attached.

Bill P.


Post a reply to this message


Attachments:
Download 'spindletorusunionobjinsideissue.png' (50 KB)

Preview of image 'spindletorusunionobjinsideissue.png'
spindletorusunionobjinsideissue.png


 

From: William F Pokorny
Subject: Re: Documenting some inside test (object pattern) issues.
Date: 18 Mar 2019 19:24:47
Message: <5c9028bf$1@news.povray.org>
On 3/17/19 8:11 AM, William F Pokorny wrote:
> On 2/12/19 12:52 PM, William F Pokorny wrote:
...
> 
> So... The one remaining object inside test issue - which I still think 
> real - is the spindle torus union case. The object inside test is acting 
> like the merge variant. Image attached.
> 

On taking a deeper look at this last torus union test, I think it OK too 
- or at least consistent with current generic union media behavior with 
one defined interior.

If three spheres are nested Matryoshka doll style as a union, the media 
based on ray intervals is different and never consistent with the inside 
object test today.

In the attached image the sphere union cases are shown in the left 
column. The inside sphere test results in the middle column. Differences 
in the right column as usual.

In the top row of the image the union is set up with the form:

#declare Union00 = union {
   object { Sphere00 }
   object { Sphere01 }
   object { Sphere02 }
   hollow
   material {
...
   }
}

Which I take to be like the torus union case and the behavior is 
consistent. In the bottom row the union is set up with the form:

#declare Sphere00 = sphere { <0,0,0>, 0.45 hollow
   material { Material00 }
}
#declare Sphere01 = sphere { <0,0,0>, 0.20 hollow
   material { Material00 }
}
#declare Sphere02 = sphere { <0,0,0>, 0.07 hollow
   material { Material00 }
}

#declare Union00 = union {
   object { Sphere00 }
   object { Sphere01 }
   object { Sphere02 }
}

Interesting result, eh?

I've always avoided unions with media where shapes overlap. Still, I 
thought only surfaces would be ignored - should they have a non-clear 
texture - and that we'd always get multiple, end to end, surface to 
surface media intervals instead of one. Instead, what happens media wise 
looks more complicated. I see here too behavior that could be very 
useful - if solidly defined and understood.

Why the different union media behavior - I'm not sure. My first guess is 
that when the interior is defined on each sphere the parser can flatten 
the spheres scene wise and it cannot where the interior has been applied 
to the union alone. If right, the intervals are what they are media wise 
and I can see how the result comes about.

Anyone better understand what is going on with unions and media here?

Wonder what happens if we use either of these union forms in further 
csg. Also now wondering what really happens with semi-transparent 
textures, IORs and union surfaces.

Aside: If using merge instead of union, results are always consistent 
with the object inside test.

Bill P.


Post a reply to this message


Attachments:
Download 'unionmediabehavior.png' (146 KB)

Preview of image 'unionmediabehavior.png'
unionmediabehavior.png


 

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