POV-Ray : Newsgroups : povray.bugreports : A bug with difference operations : A bug with difference operations Server Time
28 Jun 2024 02:27:49 EDT (-0400)
  A bug with difference operations  
From: Thomas Nelson
Date: 17 Nov 1998 03:43:49
Message: <36513745.0@news.povray.org>
Greetings,

I think I have encountered two bugs with difference operations involving
planes.
The first one may be just a miss understanding on my part... The second, I'm
pretty sure is incorrect behavior.

I'm using Version 3.1a-watcom.win32 on a PII 400 with 64meg of memory.

The reader's digest versions of the bugs:
Bug #1: When using a difference to try and cut a hole in a plane I instead
end up "pushing it out" (no hole, just a depression in the shape of the
second object ) (Am I running into an "inside/outside" test?... if so how
can I work around this?)

Bug #2: If I make the second object in the difference transparent, I get my
hole but I can't see any media through it.

Source code follows:
#include "colors.inc"

// Uncomment the following lines to see the bug
// (just do one at a time though)
//#declare BUG_NO_1 = 1;
//#declare BUG_NO_2 = 1;


camera { location <0, 2, -10> look_at <0, 0, 0> }

background { SkyBlue }

light_source { <0, 20, 0> color White }

light_source { <0, -20, 0> color White }

object

 sphere { <0, 2, 0> 2 }
 hollow on
 texture { pigment { Clear } }
 interior { media { emission color Scarlet } }
}

object

 sphere { <0, 2, 0>, 1 }
 texture { pigment { color White } }
}

object

 sphere { <0, -2, 0> 2 }
 hollow on
 texture { pigment { Clear } }
 interior { media { emission color NeonBlue } }
}

object {
 sphere { <0, -2, 0>, 1 }
 texture { pigment { color White } }
}


// Start bug #1
// The following does not cut a hole in the plane (or disc).
// It simply "punches that area down"
#ifdef (BUG_NO_1)
difference
{
 object { /* plane { y, 0 } */ disc { <0, 0, 0>, y, 1000 } }
 object { box { <5, 1, 5> <-5, -1, -5> } }
 texture { pigment { color Gray50 } }
}
// End bug #1
#end

#ifdef (BUG_NO_2)
// I can get around bug #1 as follows:
difference
{
 object { /* plane { y, 0 } */ disc { <0, 0, 0>, y, 1000 } }
 // fix the "punch down" by making the box "Clear"
 object { box { <5, 1, 5> <-5, -1, -5> } texture { pigment { color
Clear } } }
 texture { pigment { color Gray50 } }
}

// But note what happens to the halo/media on the blue sphere when we do
this
// It gets cut off when it crosses the plane
// End bug #2
#end

--
 Thomas Nelson  -  tda### [at] iocom  -  http://www.io.com/~tdark
--------------------------------------------------------------
Walkin' in line / With this lost shadow
Spot blind surprise / Garden from gallows
- Son Volt


Post a reply to this message

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