![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Haha! This is kinda what I was looking for in the first place!
It sums everything up pretty well ;)
-Ian
> I like to think of CSG operations as to how they perform physically in
> an operation. My idea of more better analogies would be:
>
> union = gluing
> intersection = cutting
> difference = scooping
> merge = melting and gluing
> clipping = cutting and hollowing
> inverse = inside outing
>
> There ! That should give you something to cry in despair over for a while
:)
>
> --
> Ken Tyler
>
> See my 1000+ Povray and 3D Rendering and Raytracing Links at:
> http://home.pacbell.net/tylereng/index.html
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Ron Parker <par### [at] fwi com> wrote:
: It's also
: possible that POV automatically ignores objects that are entirely
: further away than the closest intersection so far. If it doesn't,
: it should.
How can it know if the object is further or not without testing the
ray-object intersection?
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Ken <tyl### [at] pacbell net> wrote:
: intersection = cutting
: difference = scooping
I have always thought about the difference as cutting parts out from the
main object.
: clipping = cutting and hollowing
Is clipping considered CSG? Note that the 'S' stands for 'solid' :)
I think that it would also be useful if you explained the difference
between intersection and clipping and when it's better to use clipping
instead of intersection.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 20 Sep 1999 06:32:51 -0400, Nieminen Juha wrote:
>Ron Parker <par### [at] fwi com> wrote:
>: It's also
>: possible that POV automatically ignores objects that are entirely
>: further away than the closest intersection so far. If it doesn't,
>: it should.
>
> How can it know if the object is further or not without testing the
>ray-object intersection?
By taking the dot product of each of the six bounding box coordinates
with the ray direction. If they're all further away, then the object
must be.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Nieminen Juha wrote:
>
> Ken <tyl### [at] pacbell net> wrote:
> : intersection = cutting
> : difference = scooping
>
> I have always thought about the difference as cutting parts out from the
> main object.
In english the word "scooping" implies that but perhaps not as definitavely as
you have stated it.
> : clipping = cutting and hollowing
>
> Is clipping considered CSG? Note that the 'S' stands for 'solid' :)
>
> I think that it would also be useful if you explained the difference
> between intersection and clipping and when it's better to use clipping
> instead of intersection.
You might be right here.
Intersections will slice or cut an object and then apply a face where the
slice has been made.
Clipping slices an object but will not leave a face where the slice has
occured. Instead the object that has been sliced will now appear to be
hollowed out since all solid objects in POV-Ray are not truly solid.
--
Ken Tyler
See my 1000+ Povray and 3D Rendering and Raytracing Links at:
http://home.pacbell.net/tylereng/index.html
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Ron Parker <par### [at] fwi com> wrote:
: By taking the dot product of each of the six bounding box coordinates
: with the ray direction. If they're all further away, then the object
: must be.
You forget that the bounding box is not necesarily around the object...
nor it is a box... :)
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
clipped_by should be used instead of difference when the new surface is
not seen (for example, if you clip a torus and attach two cylinders to the
ends to form a bended tube, the clipped surfaces are inside the tube and thus
are not seen).
Why it should be used? Because it's faster to render.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 20 Sep 1999 11:15:00 -0400, Nieminen Juha wrote:
>Ron Parker <par### [at] fwi com> wrote:
>: By taking the dot product of each of the six bounding box coordinates
>: with the ray direction. If they're all further away, then the object
>: must be.
>
> You forget that the bounding box is not necesarily around the object...
>nor it is a box... :)
You forget that if it's not around the object, it shouldn't matter to the
ray-intersection routine (obviously in practice it works in such a way that
vampire objects are possible, but that's a side-effect that could easily
disappear with better optimization.) And rest assured that finite objects
have bounding boxes whether or not such boxes are specified in the script;
that's how the min_extent and max_extent keywords in the superpatch work.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Sun, 19 Sep 1999 20:10:33 -0700, Ken <tyl### [at] pacbell net> wrote:
>intersection = cutting
Ken, I've always thought of intersection as an area of common overlap
among objects.
--
Alan ---------------------------------------------------------------
http://www.povray.org - Home of the Persistence of Vision Ray Tracer
news.povray.org - where POV-Ray enthusiasts around the world can get
together to exchange ideas, information, and experiences with others
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Same here...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |