POV-Ray : Newsgroups : povray.bugreports : Union disables hollowness : Re: Union disables hollowness Server Time
29 May 2024 07:37:11 EDT (-0400)
  Re: Union disables hollowness  
From: William F Pokorny
Date: 30 Mar 2022 02:23:05
Message: <6243f749$1@news.povray.org>
On 3/28/22 13:43, Cousin Ricky wrote:
> If a hollow object is included in a union, the hollow property is
> disabled.  This apparent bug was introduced in POV-Ray 3.7; the hollow
> property is inherited fine in 3.6.
> 
> The following scene illustrates the problem.  The left side shows the
> pole and pennant created separately.  The middle shows a union of the
> pole and pennant.  The right side shows a union of the pole and pennant,
> with an additional hollow keyword at the union level.

In years past, I've dug a little into object modifier propagation 
differences between v3.6 and v3.7+. IIRC a lot of them come from POV-Ray 
(v3.7+) now taking the default modifiers for the union(c) from the last 
object of the union rather than the first (a)(b).

Try flipping the order of objects in the union with the inherited hollow 
and "I think" you'll get again a v3.6 result with v3.7 onward versions 
of POV-Ray.

---

(a) - Whether this v3.6 to v3.7+ change is intentional or not I don't 
know. There was a lot of C++ - ification after v3.6 and, it could just 
be this happened on the conversion to std::vector.

(b) - A useful bit of confirmation for me, if the order flip works for 
v3.7+, would be to know whether the same flip causes v3.6 to return the
the darker blue?

(c) - IIRC the differences in modifier defaulting are not confined to 
'union' csg.

---

Overall, the issue has been well down on my 'povr' todo list for a long 
while because to me it's not clear what the right thing to do is. Seeing 
clearly will take a significant investigation I think.

Questions in your scene start with a mesh using hollow without a well 
defined interior. They move on to what's right for hollow with fog.

Fog is an after effect which traces to the first surface it sees after 
which it calculates an effective result. Why did/does 'hollow' change 
the 'fog' result at all? I'm suggesting the dark blue is the 'correct' 
result - and an issue unrelated to the modifier union inheritance changes.

I don't immediately know 'why' we get the fog blue over the dark blue 
background. Is it the ordering of triangle vertices so the normal 
direction is such that the surface intersection with the mesh 'looks 
like' the backside of an object? Something else custom with hollow itself?

I'm rambling about the 'hollow' modifier alone. What about other 
modifiers in csg between v3.6 and v3.7+ ? All modifiers would need to be 
considered for a complete response.

Bill P.


Post a reply to this message

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