 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hi,
any hints on how to create a landscape (desert planet with rock canyons,
in my case) with POV ?
Andreas
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Andreas Koch" <ako### [at] rbg informatik tu-darmstadt de> wrote in message
news:3B1CA4A2.F5278907@rbg.informatik.tu-darmstadt.de...
> Hi,
>
> any hints on how to create a landscape (desert planet with rock canyons,
> in my case) with POV ?
The simplest approach is to use a height-field. There is a good example in the
manual. This scene of mine uses height-fields for the mountains
A better approach is to use an iso-surface, which can generate a surface based on a
mathematical function, or combination of functions. For example, the scene
http://www.irtc.org/ftp/pub/stills/2001-04-30/tmfort.jpg uses a single isosurface for
the mountains and the plain.
To use isosurfaces, you will need megapov (http://nathan.kopp.com/patched.htm), a
modified version of POV. Isosurfaces will be included in the next official release of
POV.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Tom Melly" <tom### [at] tomandlu co uk> wrote in message news:3b1caa1c$2@news.povray.org...
>This scene of mine uses height-fields for the mountains
Oops. http://www.irtc.org/ftp/pub/stills/2000-04-30/tmcity.jpg
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
I've always wondered if there wasn't any way of generating a 'procedural
heghtfield' and mapping it onto an object. Almost like a normal but using real
height. But, AFAIK you can't map an isosurface to an object so I wouldn't be
able to use that.
BTW can isosurfaces use info from procedural textures ie: making an isosurface
with a crackle height/depth? If so, I gues I would more easily get into
isosurfaces (UnfortunatelyI just don't have al that time to play around looking
for a formula that looks nice - unless of course someone can give me the x,y,z
formulas for all the procedural textures in Pov ;).
I think trace and eval_pigment might be what I'm looking for, but I couldnt'
really find any samples of how to use them in this way in the documentation.
--
/* Nekar Xenos */#local N=<-20,40,100>;#local K=<20,-40,100>;#local R=seed(0);
blob{#while((K-N).x>0)#local X=N;#local N=N+<rand(R),rand(R),1>/3;#local N=(
vlength(N-K)<vlength(X-K)?N:2*X-N);sphere{<N.y,-N.x,N.z>,1,1 scale .02}sphere{N
,1,1 scale.02}sphere{<-N.x-40,N.y,N.z>1,1 scale.01}sphere{<N.x+40,-N.y,N.z>1,1
scale.01 }#end pigment{rgbt 1}interior{media{emission <2,4,5>*5}}hollow}
"Tom Melly" <tom### [at] tomandlu co uk> wrote in message
news:3b1cb50a@news.povray.org...
> "Tom Melly" <tom### [at] tomandlu co uk> wrote in message
news:3b1caa1c$2@news.povray.org...
> >This scene of mine uses height-fields for the mountains
>
> Oops. http://www.irtc.org/ftp/pub/stills/2000-04-30/tmcity.jpg
>
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Nekar Xenos" <j-p### [at] citywalk co za> wrote in message
news:3b1cbc63@news.povray.org...
> I've always wondered if there wasn't any way of generating a 'procedural
> heghtfield' and mapping it onto an object. Almost like a normal but using real
> height. But, AFAIK you can't map an isosurface to an object so I wouldn't be
> able to use that.
>
No, but for simple objects (spheres, etc), you can combine a iso "texture" with an
iso "shape".
> BTW can isosurfaces use info from procedural textures ie: making an isosurface
> with a crackle height/depth? If so, I gues I would more easily get into
> isosurfaces (UnfortunatelyI just don't have al that time to play around looking
> for a formula that looks nice - unless of course someone can give me the x,y,z
> formulas for all the procedural textures in Pov ;).
>
You can use any pattern as an isosurface. There's an image of mine in binaries.images
"friday apocalypse" 29/12/2000 that uses crackle for the desert floor. Check out
http://www.econym.demon.co.uk/isotut/ and look for the section "pigments as
functions"
> I think trace and eval_pigment might be what I'm looking for, but I couldnt'
> really find any samples of how to use them in this way in the documentation.
>
Dunno, never used eval_pigment myself.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Tom Melly" <tom### [at] tomandlu co uk> wrote in message
news:3b1cc113$1@news.povray.org...
> "Nekar Xenos" <j-p### [at] citywalk co za> wrote in message
> news:3b1cbc63@news.povray.org...
> > I've always wondered if there wasn't any way of generating a 'procedural
> > heghtfield' and mapping it onto an object. Almost like a normal but using
real
> > height. But, AFAIK you can't map an isosurface to an object so I wouldn't be
> > able to use that.
> >
>
> No, but for simple objects (spheres, etc), you can combine a iso "texture"
with an
> iso "shape".
Ok, that sounds good. Can I do CSG with these iso-objects then? (I guess not -
but it owuld be nice =)
>
> > BTW can isosurfaces use info from procedural textures ie: making an
isosurface
> > with a crackle height/depth? If so, I gues I would more easily get into
> > isosurfaces (UnfortunatelyI just don't have al that time to play around
looking
> > for a formula that looks nice - unless of course someone can give me the
x,y,z
> > formulas for all the procedural textures in Pov ;).
> >
>
> You can use any pattern as an isosurface. There's an image of mine in
binaries.images
> "friday apocalypse" 29/12/2000 that uses crackle for the desert floor. Check
out
> http://www.econym.demon.co.uk/isotut/ and look for the section "pigments as
> functions"
Thank you very much =D
--
/* Nekar Xenos */#local N=<-20,40,100>;#local K=<20,-40,100>;#local R=seed(0);
blob{#while((K-N).x>0)#local X=N;#local N=N+<rand(R),rand(R),1>/3;#local N=(
vlength(N-K)<vlength(X-K)?N:2*X-N);sphere{<N.y,-N.x,N.z>,1,1 scale .02}sphere{N
,1,1 scale.02}sphere{<-N.x-40,N.y,N.z>1,1 scale.01}sphere{<N.x+40,-N.y,N.z>1,1
scale.01 }#end pigment{rgbt 1}interior{media{emission <2,4,5>*5}}hollow}
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Nekar Xenos" <j-p### [at] citywalk co za> wrote :
>
> Can I do CSG with these iso-objects then?
Yes.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
"Nekar Xenos" <j-p### [at] citywalk co za> wrote in message
news:3b1cc4fb@news.povray.org...
>
>
> Ok, that sounds good. Can I do CSG with these iso-objects then? (I guess not -
> but it owuld be nice =)
>
Yep, you can treat iso's like any other CSG (although read the docs and don't forget
max_trace) - try the following code in megapov (a difference of a box and an iso):
#version unofficial MegaPov 0.6;
#include "colors.inc"
light_source{<0,0,0> color rgb<1,1,1>*2 translate <0, 0, -5>}
camera{location <0.0, 0.5, -5.0> look_at <0.0, 0.0, 0.0>}
sky_sphere{pigment{Blue}}
difference{
box{<-1,-1,0>,<1,1,1/2> pigment{red 1}}
isosurface{
function {(x*x + y*y + z*z) - noise3d(x*5,y*5,z*5)}
max_trace 10 // try removing this!
contained_by{box{-5,5}}
}
pigment{rgb 1}
}
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Cool!
I just turned the page on the tutorial and there it was - CSG. I guess I should
have waited before posting(!)
Thanks,
--
/* Nekar Xenos */#local N=<-20,40,100>;#local K=<20,-40,100>;#local R=seed(0);
blob{#while((K-N).x>0)#local X=N;#local N=N+<rand(R),rand(R),1>/3;#local N=(
vlength(N-K)<vlength(X-K)?N:2*X-N);sphere{<N.y,-N.x,N.z>,1,1 scale .02}sphere{N
,1,1 scale.02}sphere{<-N.x-40,N.y,N.z>1,1 scale.01}sphere{<N.x+40,-N.y,N.z>1,1
scale.01 }#end pigment{rgbt 1}interior{media{emission <2,4,5>*5}}hollow}
"Tom Melly" <tom### [at] tomandlu co uk> wrote in message
news:3b1cd040@news.povray.org...
> "Nekar Xenos" <j-p### [at] citywalk co za> wrote in message
> news:3b1cc4fb@news.povray.org...
> >
> >
> > Ok, that sounds good. Can I do CSG with these iso-objects then? (I guess
not -
> > but it owuld be nice =)
> >
>
> Yep, you can treat iso's like any other CSG (although read the docs and don't
forget
> max_trace) - try the following code in megapov (a difference of a box and an
iso):
>
> #version unofficial MegaPov 0.6;
>
> #include "colors.inc"
> light_source{<0,0,0> color rgb<1,1,1>*2 translate <0, 0, -5>}
> camera{location <0.0, 0.5, -5.0> look_at <0.0, 0.0, 0.0>}
> sky_sphere{pigment{Blue}}
>
> difference{
> box{<-1,-1,0>,<1,1,1/2> pigment{red 1}}
> isosurface{
> function {(x*x + y*y + z*z) - noise3d(x*5,y*5,z*5)}
> max_trace 10 // try removing this!
> contained_by{box{-5,5}}
> }
> pigment{rgb 1}
> }
>
>
>
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Tom Melly schrieb:
> A better approach is to use an iso-surface, which can generate a surface based on a
> mathematical function, or combination of functions. For example, the scene
> http://www.irtc.org/ftp/pub/stills/2001-04-30/tmfort.jpg uses a single isosurface
for
> the mountains and the plain.
Woooooowwwww, *GREAT* stuff!
Looks like exactly what i need.
> To use isosurfaces, you will need megapov (http://nathan.kopp.com/patched.htm), a
> modified version of POV. Isosurfaces will be included in the next official release
of
> POV.
I guess i'll download it... or when is the nex official release
sceduled?
--
Andreas
Seeing Dune worms, i don't want to see the Dune BIRDS...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |