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