POV-Ray : Newsgroups : povray.text.scene-files : Sand Dunes Server Time
25 Dec 2024 23:51:19 EST (-0500)
  Sand Dunes (Message 1 to 9 of 9)  
From: chrisg
Subject: Sand Dunes
Date: 21 Apr 1999 04:38:30
Message: <371d8076.0@news.povray.org>
Can any kind soul start me off in doing some sand dunes?
I need some undulating small hills and I was thinking that maybe some waves
would be a good starting point.

-Chris


Post a reply to this message

From: Bob Hughes
Subject: Re: Sand Dunes
Date: 21 Apr 1999 04:51:48
Message: <371D836B.D9EAA45E@aol.com>
As in height_field I presume.
Try making an image for it first by using a wave pigment pattern with
triangle_wave and just enough turbulence to get away from the radiating
ripples effect. Two of these layered with scale and turbulence and a
translation offset should do. That would get a 3D surface ready, then
texture the height_field with sand.
I dare not just write something out here without seeing it rendered so
maybe I'll try this myself too and maybe get back here with it if it
turns out.


chr### [at] warpspeedcomau wrote:
> 
> Can any kind soul start me off in doing some sand dunes?
> I need some undulating small hills and I was thinking that maybe some waves
> would be a good starting point.
> 
> -Chris

-- 
 omniVERSE: beyond the universe
  http://members.aol.com/inversez/homepage.htm
 mailto:inv### [at] aolcom?Subject=PoV-News


Post a reply to this message

From: Bob Hughes
Subject: Re: Sand Dunes
Date: 21 Apr 1999 06:02:46
Message: <371D940C.64A95BF9@aol.com>
Boy, was I ever wrong about trying to use 'waves'. Anyway this here will
make a "starter" for you hopefully. Looked fair enough to me.
Follow the instructions okay and your all set to see this right. Two
step rendering involved.

//BEGIN

// needs to be output as:
//  +fn +w500 +h500 +oc:\images\sanddune.png
// in command-line for making image_map
// then use any usual setting and output to other than sanddune.png to
use image_map

//render square image, example 500x500 pixels resolution if 1
#declare ImageMap=0;  //1 for making image to be used as map, 0 or other
# for seeing heightfield
//render as usual if non 1 number, example 320x240 pixels res.

#if (ImageMap=1)

global_settings {
	hf_gray_16 on  //output a smoothable heightfield image
}

camera { orthographic
  location -10*z
  up 10*y right 10*y
  look_at 0
}

#declare Wave1=pigment {dents turbulence .333 octaves 3 lambda .75 omega
1.5
	 color_map {
	[0,1 color rgb .5 color rgb 0]
} ramp_wave}
#declare Wave2=pigment {bumps turbulence .125 octaves 2 lambda 1.25
omega .5
	 color_map {
	[0,1 color rgb 1 color rgb 0]
} ramp_wave}

plane {z,0
	pigment {average turbulence .125 octaves 2 lambda 1.5 omega .25
		pigment_map {
			[.5 Wave1 scale .5]
			[1 Wave2 translate .25]
	} ramp_wave scale <2,1,.5>*.5 rotate 5}
	finish {ambient 1}
}


#else

//normal view
light_source { <-5,15,-30> color rgb 1.5
}
camera {
  location <0,6,-12>
  look_at <0, -4, 0>
}


height_field {
  png "c:\images\sanddune.png" smooth
 /*
  texture { pigment {
      image_map { png "c:\images\sanddune.png"
	 map_type 0 //interpolate 2 once
	 } rotate 90*x
    } finish {phong .1 phong_size 5}
  }
 */
 texture {
 	pigment {rgb <.85,.7,.45>}
  		normal {granite .025 scale .005}
   			finish {phong .1 phong_size 5}
   }
	translate <-.5,0,-.5> scale <33,1,33>
 }

#end
//END


-- 
 omniVERSE: beyond the universe
  http://members.aol.com/inversez/homepage.htm
 mailto:inv### [at] aolcom?Subject=PoV-News


Post a reply to this message

From: Ken
Subject: Re: Sand Dunes
Date: 21 Apr 1999 11:04:20
Message: <371DDB2B.42939335@pacbell.net>
Bob Hughes wrote:
> 
> Boy, was I ever wrong about trying to use 'waves'. Anyway this here will
> make a "starter" for you hopefully. Looked fair enough to me.
> Follow the instructions okay and your all set to see this right. Two
> step rendering involved.

 I personaly would have used a gradient pattern with a perturbed
sine wave function added to the turbulence modifier. The addition
of a second transpearent gradient in top of the first with a a much
smaller scale gives the small upclose ripples seen on sand dunes
and the first pattern is for the dunes themselves. A gradiant y
pattern on a z plane using tubulence like this:

pigment { gradient y
  turbulence<0.1,0.3,0.1>
    turbulence<-0.1,-0.3,-0.1>
    Color_map { ....

The dual positive and negative turbulence modifiers give a nice looking
snake like drift to a normaly straight line and that is similar to how
sand dunes look as view from a high place. As Bob illustrated the use
of normals will add the randomness to the surface lending the
final objects surface some much needed realism.


-- 
Ken Tyler

mailto://tylereng@pacbell.net


Post a reply to this message

From: Todd Chaffee
Subject: Re: Sand Dunes
Date: 16 Aug 1999 23:00:15
Message: <37b8d03f@news.povray.org>
I've tried combining Bob Hughes and Ken's suggestions into one pov scene for
a realistic sand dune.  I'm still not happy with the granite texture on the
sand dunes but don't know which direction to go from here.  Also, the height
map looks kind of funny in the lowest part of the valleys.  Any way around
this?


// needs to be output as:
//  +fn +w500 +h500 +oc:\images\sanddune.png
// in command-line for making image_map
// then use any usual setting and output to other than sanddune.png to use
image_map

//render square image, example 500x500 pixels resolution if 1
#declare ImageMap=1;  //1 for making image to be used as map, 0 or other #
for seeing heightfield
//render as usual if non 1 number, example 320x240 pixels res.

#if (ImageMap=1)

global_settings {
hf_gray_16 on  //output a smoothable heightfield image
}

camera { orthographic
  location -10*z
  up 10*y right 10*y
  look_at 0
}

plane {z,0

pigment

average pigment_map{

        [1.0 gradient 2*y
            turbulence<0.1,0.05,0.1>
            turbulence<0.1,-0.3, -0.1>
        color_map {
                [0 color rgb 0]
                [.53 color rgb .9]
                [.59 color rgb 1]
                [.65 color rgb .9]
                [1.0 color rgb 0]

                } scale <1,1,1>]

        [1.0 gradient 5*y
            turbulence<0.1,0.05,0.1>
            turbulence<0.1,-0.3, -0.1>
        color_map {
                [0 color rgb 0]
                [.5 color rgb 1]
                [1.0 color rgb 0]

                } scale <1,3,1>]


} translate<1,1,1>
}

finish {ambient 1 diffuse 1}
}



#else

global_settings {assumed_gamma 2.2}

//normal view
light_source { <-5,15,-30> color rgb 1.5
}
light_source {0*x color red 0.600 green 0.600 blue 0.600 translate <40,
60, -60>}
//light_source { <-5,12,-30> color rgb <.8, .8, .8>
//}
camera {
  location <12,2.5,0>
  look_at <0, 0, 5>
}


height_field {
  png "d:\temp\sanddune.png"  smooth
/*
  texture { pigment {
      image_map { png "c:\images\sanddune.png"
map_type 0 //interpolate 2 once
} rotate 90*x
    } finish {phong .1 phong_size 5}
  }
*/
texture {
pigment { bozo color_map {
                  [ 0.0 colour rgb <0.999,0.899,0.699> ]
                  [ 0.2 colour rgb <0.999,0.999,0.999> ]
                  [ 0.25 colour rgb <0.999,0.999,0.999> ]
                  [ 0.25 colour rgb <0.899,0.899,0.899> ]
                  [ 0.275 colour rgb <0.899,0.899,0.899> ]
                  [ 0.275 colour rgb <0.999,0.999,0.999> ]
                  [ 0.4 colour rgb <0.999,0.799,0.599> ]
                  [ 0.6 colour rgb <0.999,0.959,0.859> ]
                 [ 0.8 colour rgb <0.999,0.899,0.599> ] } scale 0.001
}

}
  normal {granite .15 scale <.02,.07,1>}
// finish { ambient .2}
translate <-.5,0,-.5> scale <40,1,37>
}

#end

//----------------Background--------------------------
sky_sphere {
  pigment {
   gradient y
     color_map { [0 color rgb <0.627, 0.773, 0.980> ]
                 [1 color rgb <0.850, 0.700, 0.800> ]
     }
  }
  pigment {  // high stratus clouds
    wrinkles
      turbulence 0.7
      octaves 6
      lambda 5
      omega .3
    color_map {
      [0 color rgbt <1, 1, 1, 1>]
      [.5 color rgbt <.98, .99, .99, .8>]
      [1 color rgbt <1, 1, 1, 1>]
    }
    scale <.8, .1, .8>
  }
 }

plane {-y, -1200  // cloud layer 2
  texture {
    pigment { bozo
               turbulence 0.9
               omega .7
               color_map {
                 [0 color rgbt <1, .9, .9, 1>]
                 [.5 color rgbt <1, .9, .9, .6>]
                 [1 color rgbt <1, .99, .99, .2>]
               }
    }
    finish {ambient 1 diffuse .3}
    scale 1000*1
    translate <1500, 900, -1000>
   }
   rotate <0,0,10>
   hollow
}


Post a reply to this message

From: Bob Hughes
Subject: Re: Sand Dunes again
Date: 20 Aug 1999 06:46:43
Message: <37bd3213@news.povray.org>
/*I'm just going to repost the whole scene file again here since it's
easier than attempts to copy and paste in certain parts
(original things were not retained!).
The normals were given a pattern wave type, wrinkles seemed fine to
me. However, they also seem to have
troubles. If you turn the normal depth way up and place a light so as
to skim the dune surface, artifacts appear.
Anyhow, a reminder about the HF images made using POV-Ray procedural
textures: I believe it was Ron Parker
who told of how color_maps can overrun their bounds so to speak,
possibly from turbulence being applied, I'm not sure.
So I raised and lowered the min and max rgb values respectively to try
and prevent that. Looks like it may have helped.
Everything else is aesthetics I should think. Beauty in the eye of the
beholder you know. */

/* some modifications, though very few */
// needs to be output as:
//  +fn +w500 +h500 +oc:\images\sanddune.png
// in command-line for making image_map
// then use any usual setting and output to other than sanddune.png to
use image_map

/*render square image, example 500x500 pixels resolution if 1
#declare ImageMap=1;  1 for making image to be used as map, 0 or other
# for seeing heightfield
render as usual if non 1 number, example 320x240 pixels res.*/

#if (ImageMap=0)

global_settings {
hf_gray_16 on  /* output a smoothable heightfield image */
}

camera { orthographic
  location -10*z
  up 10*y right 10*y
  look_at 0
}

plane {z,0

pigment {

average pigment_map{

        [1.0 gradient 2*y
            turbulence<0.1,0.05,0.1>
            turbulence<0.1,-0.3, -0.1>
        color_map {
                [0 color rgb 0.05]
                [.53 color rgb .9]
                [.59 color rgb .95]
                [.65 color rgb .9]
                [1.0 color rgb 0.05]

                } scale <1,1,1>]

        [1.0 gradient 5*y
            turbulence<0.1,0.05,0.1>
            turbulence<0.1,-0.3, -0.1>
        color_map {
                [0 color rgb 0]
                [.5 color rgb .95]
                [1.0 color rgb 0]

                } scale <1,3,1>]


} translate<1,1,1>
}

finish {ambient 1 diffuse 1}
}



#else

global_settings {assumed_gamma 2.2}

// normal view (with some lighting changes)
light_source { <0,30,0> color rgb .125
}
light_source { <-5,20,-50> color rgb 1.25
}
light_source {0,.5 translate <20, 60, -30>}
// light_source { <-5,12,-30> color rgb <.8, .8, .8>}
camera {
  location <12,2.5,0>
  look_at <0, 0, 5>
}


height_field {
  png "c:\images\sanddune.png"  smooth
/*
  texture { pigment {
      image_map { png "c:\images\sanddune.png"
map_type 0  // interpolate 2 once
} rotate 90*x
    } finish {phong .1 phong_size 5}
  }
*/
texture {
pigment { bozo color_map {
                  [ 0.0 colour rgb <0.999,0.899,0.699> ]
                  [ 0.2 colour rgb <0.999,0.999,0.999> ]
                  [ 0.25 colour rgb <0.999,0.999,0.999> ]
                  [ 0.25 colour rgb <0.899,0.899,0.899> ]
                  [ 0.275 colour rgb <0.899,0.899,0.899> ]
                  [ 0.275 colour rgb <0.999,0.999,0.999> ]
                  [ 0.4 colour rgb <0.999,0.799,0.599> ]
                  [ 0.6 colour rgb <0.999,0.959,0.859> ]
                 [ 0.8 colour rgb <0.999,0.899,0.599> ] } scale 0.001
}

}
  normal {
          // granite .2 turbulence 1 ramp_wave scale <.02,.07,.1>
  wrinkles .6 turbulence .6 ramp_wave scale <.025,.075,.1> /*this one
seems good to me*/
          // wrinkles .6 turbulence .6 scallop_wave scale
<.025,.075,.1>
          // agate .4 agate_turb 1 ramp_wave scale <.025,.075,.1>
          // marble .4 turbulence 1 ramp_wave scale <.025,.075,.1>
rotate <90,90,0>
          // marble .4 turbulence 1 scallop_wave scale <.025,.075,.1>
rotate <90,90,0>
          // marble .4 turbulence 1 sine_wave scale <.025,.075,.1>
rotate <90,90,0>
          // marble .4 turbulence 1 triangle_wave scale <.025,.075,.1>
rotate <90,90,0>
  }
   finish { ambient .15 diffuse .7 specular .05 roughness .5}
translate <-.5,0,-.5> scale <40,1,37>
}

#end

/*  Background */
sky_sphere {
  pigment {
   gradient y
     color_map { [0 color rgb <0.627, 0.773, 0.980> ]
                 [1 color rgb <0.850, 0.700, 0.800> ]
     }
  }
  pigment {  // high stratus clouds
    wrinkles
      turbulence 0.7
      octaves 6
      lambda 5
      omega .3
    color_map {
      [0 color rgbt <1, 1, 1, 1>]
      [.5 color rgbt <.98, .99, .99, .8>]
      [1 color rgbt <1, 1, 1, 1>]
    }
    scale <.8, .1, .8>
  }
 }

plane {-y, -1200  // cloud layer 2
  texture {
    pigment { bozo
               turbulence 0.9
               omega .7
               color_map {
                 [0 color rgbt <1, .9, .9, 1>]
                 [.5 color rgbt <1, .9, .9, .6>]
                 [1 color rgbt <1, .99, .99, .2>]
               }
    }
    finish {ambient 1 diffuse .3}
    scale 1000*1
    translate <1500, 900, -1000>
   }
   rotate <0,0,10>
   hollow
}


Post a reply to this message

From: Ron Parker
Subject: Re: Sand Dunes again
Date: 20 Aug 1999 10:28:22
Message: <37bd6606@news.povray.org>
On Fri, 20 Aug 1999 05:44:16 -0500, Bob Hughes wrote:
>Anyhow, a reminder about the HF images made using POV-Ray procedural
>textures: I believe it was Ron Parker
>who told of how color_maps can overrun their bounds so to speak,
>possibly from turbulence being applied, I'm not sure.

I posted specifically about the bozo pattern generating values outside
of the range [0..1].  Crackle almost certainly has the same problem; 
other patterns may as well.  Changing the RGB values doesn't do any 
good, because POV will always clamp the result to the first or last
color in the map if the pattern value's out of range.  This isn't
just a problem with heightfields; it happens with normals and pigments
too.


Post a reply to this message

From: Chris Huff
Subject: Re: Sand Dunes again
Date: 20 Aug 1999 10:58:41
Message: <37BD6D4C.EEE6B393@compuserve.com>
This has bothered me for a while now, why hasn't that noise function
been fixed? Is there a maximum value to it, so the value of the pattern
could be scaled down to fit in the correct range? Is the overrun because
of numeric inaccuracies?

I haven't done any tests with crackle, though. I wonder if there are any
other patterns with this problem.


Post a reply to this message

From: Ron Parker
Subject: Re: Sand Dunes again
Date: 20 Aug 1999 11:12:34
Message: <37bd7062@news.povray.org>
On Fri, 20 Aug 1999 09:59:31 -0500, Chris Huff wrote:
>This has bothered me for a while now, why hasn't that noise function
>been fixed? Is there a maximum value to it, so the value of the pattern
>could be scaled down to fit in the correct range? Is the overrun because
>of numeric inaccuracies?
>
>I haven't done any tests with crackle, though. I wonder if there are any
>other patterns with this problem.
>

It can be scaled.  Crackle is, in fact, though the scaling factor seems a
bit arbitrary.  But part of the problem is that the overruns are usually
outliers, and scaling the pattern to fit the 0..1 range perfectly would
decrease the range of the far-more-prevalent middle ground.  Also, of 
course, making such a change at this late date would likely affect many
scenes - if you spent hours tuning the cloud density in your bozo sky, you
might not appreciate it if it were to increase or decrease significantly
in the next version of POV.  Personally, I think the best solution is to 
just let maps contain values outside the range 0..1.


Post a reply to this message

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