|
|
|
|
|
|
| |
| |
|
|
From: Patrick Dugan
Subject: HeightFields and differences, clipping etc.
Date: 4 Jan 2000 11:35:10
Message: <3872213e@news.povray.org>
|
|
|
| |
| |
|
|
I have trying (somewhat successfully) to "chop" heightfields. I first used
a bounded_by statement to make the heightfield round (to cut of the corners)
but then trying to remove a "chunk" from the inside is difficult. When I
tried using the difference statement it never works and whatever the object
is (cube for example) ends up showing up regardless of using difference or
union. I finally tried using a difference with a cube (with a clear
pigment) which seems to work but according to the Povray docs I shouldn't be
trying a "difference" with a heightfield. I guess my question is are there
any "easy" ways to remove material from a hieghtfield without going to
convoluted methods??
Post a reply to this message
|
|
| |
| |
|
|
From: Nieminen Juha
Subject: Re: HeightFields and differences, clipping etc.
Date: 4 Jan 2000 12:11:03
Message: <387229a7@news.povray.org>
|
|
|
| |
| |
|
|
Patrick Dugan <pat### [at] usticom> wrote:
: I have trying (somewhat successfully) to "chop" heightfields. I first used
: a bounded_by statement to make the heightfield round (to cut of the corners)
Wrong technique. To clip parts of an object away, use the clipped_by block
instead.
--
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
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3872213e@news.povray.org>, "Patrick Dugan"
<pat### [at] usticom> wrote:
> I have trying (somewhat successfully) to "chop" heightfields. I first
> used
> a bounded_by statement to make the heightfield round (to cut of the
> corners)
Don't do that, bounded_by isn't intended to do that and is unreliable.
Use clipped_by or intersection instead.
> but then trying to remove a "chunk" from the inside is difficult. When I
> tried using the difference statement it never works and whatever the
> object
> is (cube for example) ends up showing up regardless of using difference
> or
> union. I finally tried using a difference with a cube (with a clear
> pigment) which seems to work but according to the Povray docs I shouldn't
> be
> trying a "difference" with a heightfield. I guess my question is are
> there
> any "easy" ways to remove material from a hieghtfield without going to
> convoluted methods??
CSG operations leave a surface over the areas that are removed or
created. The workarounds are to use a clear texture on the CSG object or
to use clipped_by.
To use more than one object with clipped_by, just use a union of the
clipping objects. The inverse keyword might be useful too.
--
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3872213e@news.povray.org>, "Patrick Dugan"
<pat### [at] usticom> wrote:
Forgot to answer this in my previous reply:
> according to the Povray docs I shouldn't be trying a "difference"
> with a heightfield.
The height_field object works fine with CSG, where in the POV-Ray manual
does it say otherwise?
From the manual:
"There are thirteen different solid finite primitive shapes: blob, box,
cone, cylinder, height field, Julia fractal, lathe, prisms, sphere,
superellipsoid, surface of revolution, text object and torus. These have
a well-defined inside and can be used in CSG (see section "
Constructive Solid Geometry "). They are finite and respond to automatic
bounding. You may specify an interior for these objects."
--
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
From: Patrick Dugan
Subject: Re: HeightFields and differences, clipping etc.
Date: 4 Jan 2000 17:39:53
Message: <387276b9@news.povray.org>
|
|
|
| |
| |
|
|
Now I'll have to find that to make I'm not hallucinating. I was pretty sure
that the docs mentioned that clipping or differences cannot be performed on
"non" solid objects like height fields, dics, planes, etc. If a difference
is supposed to work with a height field (like removing a box shape from a
height field) then I cannot get that to function correctly. I will post
some example code that demonstrates my problem.
"Chris Huff" <chr### [at] yahoocom> wrote in message
news:chrishuff_99-8EA2F7.12251204012000@news.povray.org...
> In article <3872213e@news.povray.org>, "Patrick Dugan"
> <pat### [at] usticom> wrote:
>
> Forgot to answer this in my previous reply:
>
> > according to the Povray docs I shouldn't be trying a "difference"
> > with a heightfield.
>
> The height_field object works fine with CSG, where in the POV-Ray manual
> does it say otherwise?
>
> From the manual:
> "There are thirteen different solid finite primitive shapes: blob, box,
> cone, cylinder, height field, Julia fractal, lathe, prisms, sphere,
> superellipsoid, surface of revolution, text object and torus. These have
> a well-defined inside and can be used in CSG (see section "
> Constructive Solid Geometry "). They are finite and respond to automatic
> bounding. You may specify an interior for these objects."
>
> --
> Chris Huff
> e-mail: chr### [at] yahoocom
> Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <387276b9@news.povray.org>, "Patrick Dugan"
<pat### [at] usticom> wrote:
> Now I'll have to find that to make I'm not hallucinating. I was pretty
> sure
> that the docs mentioned that clipping or differences cannot be performed
> on
> "non" solid objects like height fields, dics, planes, etc. If a
> difference
> is supposed to work with a height field (like removing a box shape from a
> height field) then I cannot get that to function correctly. I will post
> some example code that demonstrates my problem.
Differences and other CSG operations don't work on non-solid objects,
but a height_field is a solid object, it has a defined inside and
outside. I think clipping works on both with no problems, but it isn't
exactly a CSG operation.
--
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
From: Patrick Dugan
Subject: Re: HeightFields and differences, clipping etc.
Date: 4 Jan 2000 18:03:04
Message: <38727c28@news.povray.org>
|
|
|
| |
| |
|
|
Here is an example of the "odd" behavior I find. (Odd to me anyway..)
#version 3.0
global_settings {assumed_gamma 2.2}
light_source {<-100, 100, -500> color White * 1.0}
background {Blue}
camera {
location <0, 0, -3>
look_at <0, 0, 0>
}
#declare RedSheet =
object {
height_field {
tga "AnyFile.tga"
hierarchy off
pigment {Red}
translate <-0.5, -0.5, -0.5>
}
rotate <90,0,180>
scale <1, 1, 0.005>
}
#declare RedSheetHole =
object {
difference {
object {RedSheet}
torus {0.24, 0.14 pigment {Green} rotate x * 90}
}
}
object {RedSheetHole scale 2}
Although I have declared the "RedSheetHole" to be a DIFFERENCE between
the heightfield and the torus, the end result is a union rather than
difference. I am confused since the syntax I have used "seems" correct to
me. Please advise...
"Patrick Dugan" <pat### [at] usticom> wrote in message
news:3872213e@news.povray.org...
> I have trying (somewhat successfully) to "chop" heightfields. I first
used
> a bounded_by statement to make the heightfield round (to cut of the
corners)
> but then trying to remove a "chunk" from the inside is difficult. When I
> tried using the difference statement it never works and whatever the
object
> is (cube for example) ends up showing up regardless of using difference or
> union. I finally tried using a difference with a cube (with a clear
> pigment) which seems to work but according to the Povray docs I shouldn't
be
> trying a "difference" with a heightfield. I guess my question is are
there
> any "easy" ways to remove material from a hieghtfield without going to
> convoluted methods??
>
>
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <38727c28@news.povray.org>, "Patrick Dugan"
<pat### [at] usticom> wrote:
> Although I have declared the "RedSheetHole" to be a DIFFERENCE between
> the heightfield and the torus, the end result is a union rather than
> difference. I am confused since the syntax I have used "seems" correct
> to me. Please advise...
If you use:
object {RedSheetHole scale 2 rotate y*250}
you will see that the "union" of the torus and the height field is
actually the depression left in the heightfield from the torus. If you
want a hole to be in this area instead, give the torus a clear texture
so it is invisible. Or you could use this instead:
#declare RedSheet =
object {
height_field {
png "plasma2.png"
hierarchy off
pigment {Red}
translate <-0.5, -0.5, -0.5>
}
rotate <90,0,180>
scale <1, 1, 0.005>
clipped_by {
torus {0.24, 0.14 inverse rotate x * 90}
}
}
--
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
From: Patrick Dugan
Subject: Re: HeightFields and differences, clipping etc.
Date: 4 Jan 2000 21:11:37
Message: <3872a859@news.povray.org>
|
|
|
| |
| |
|
|
But WHY is there a torus depression? The torus should carve out ONLY where
the intersection of the height field and torus intersect, not have an
"extra" area showing outside of the heightfield. While a "clear" pigment
works it is still not behaving the way a standard solid object would.
"Chris Huff" <chr### [at] yahoocom> wrote in message
news:chrishuff_99-7565C0.17595604012000@news.povray.org...
> In article <387276b9@news.povray.org>, "Patrick Dugan"
> <pat### [at] usticom> wrote:
>
> > Now I'll have to find that to make I'm not hallucinating. I was pretty
> > sure
> > that the docs mentioned that clipping or differences cannot be performed
> > on
> > "non" solid objects like height fields, dics, planes, etc. If a
> > difference
> > is supposed to work with a height field (like removing a box shape from
a
> > height field) then I cannot get that to function correctly. I will post
> > some example code that demonstrates my problem.
>
> Differences and other CSG operations don't work on non-solid objects,
> but a height_field is a solid object, it has a defined inside and
> outside. I think clipping works on both with no problems, but it isn't
> exactly a CSG operation.
>
> --
> Chris Huff
> e-mail: chr### [at] yahoocom
> Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <3872a859@news.povray.org>, "Patrick Dugan"
<pat### [at] netinsnet> wrote:
> But WHY is there a torus depression? The torus should carve out ONLY
> where
> the intersection of the height field and torus intersect, not have an
> "extra" area showing outside of the heightfield. While a "clear" pigment
> works it is still not behaving the way a standard solid object would.
I am not sure what you mean. It behaves in exactly the same way a
standard object does. A difference operation leaves the surface of the
differencing object on the object being differenced.
Don't get confused by the fact that you can see under the top surface of
the height field, the object is there, there just aren't any surfaces
around that portion of it. The lower boundaries are set by a cube, while
the upper boundary is the surface of the height field. This can be seen
clearly if you fill a height field with media.
--
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|