POV-Ray : Newsgroups : povray.general : CSG Union causes major slow-down : Re: CSG Union causes major slow-down Server Time
10 Aug 2024 01:22:03 EDT (-0400)
  Re: CSG Union causes major slow-down  
From: Ron Parker
Date: 24 May 2000 18:26:36
Message: <slrn8iomfp.47a.ron.parker@linux.parkerr.fwi.com>
On Thu, 25 May 2000 00:51:27 +0300, Peter Popov wrote:
>On 23 May 2000 22:01:44 -0400, ron### [at] povrayorg (Ron Parker)
>wrote:
>
>>>Merge is internally represented as a complex CSG. It takes more memory
>>>and generally takes longer to render than the equivalent union. This
>>>is not true in some special cases but this shouldn't be one of them.
>>
>>Actually, it is internally represented as a merge.  Difference is the
>>operation you're thinking of.  
>
>I know a difference is an intersection with the inverse. What I meant
>was that merge { object { A } object { B } } is equivalent to 
>
>union 
>{ intersection { object { A } object { B inverse } }
>  intersection { object { B } object { A inverse } }
>}

This is the symmetric difference, equivalent to

difference {
  union {object {A} object {B}}
  intersection {object {A} object {B}}
}

(except for the coincident surface problems the latter causes) and 
logically similar to exclusive-or.

I think merge is actually equivalent to

intersection {
  object { A inverse }
  object { B inverse }
  inverse
}

but it's not represented that way internally.  The code actually has
special cases for merge, unlike for difference.

-- 
Ron Parker   http://www2.fwi.com/~parkerr/traces.html
These are my opinions.  I do NOT speak for the POV-Team.


Post a reply to this message

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