POV-Ray : Newsgroups : povray.newusers : Rocky road : Re: Rocky road Server Time
29 Jul 2024 10:29:31 EDT (-0400)
  Re: Rocky road  
From: Bob Hughes
Date: 13 Mar 2006 03:12:44
Message: <4415297c$1@news.povray.org>
"ChaoZ" <nomail@nomail> wrote in message 
news:web.4413bf9a530ca791bd58a3560@news.povray.org...
> Hi, I'm trying to create a rocky surface of bauxite and I was wondering 
> what
> would be the easiest way of doing it. Should I use a bump map of noise
> generated from photoshop? I don't think it will give an visual of pebbles,
> but more of tiny spikes or mountains instead.

If you make a height_field from it, yes.

> The surface should similar to what is shown here:
> http://www.minerals.org.au/__data/assets/image/7314/bauxite.jpg
>
> Obviously I don't want to go in and render each pebble individually, but 
> is
> there something that can generate a field of them automatically or give 
> the
> appearance of them?

Try a rendering of the following and see what you think. Patterns could be 
multiplied together into the isosurface function. A lot depends on what you 
like and what is possible, neither of which I can answer for you.  :) 
Others at these newsgroups are great at using isosurfaces, but isosurfaces 
aren't always entirely moldable into everything wanted, in my experience 
anyway. Approximation is usually what I get. You'll obviously want to read 
the POV-Ray documentation for more on isosurfaces if you haven't already.

// BEGIN

global_settings {assumed_gamma 1}

camera {location <2,3,-4> look_at 0}
light_source {<100,100,-100>,1}

#include "functions.inc"

// clumps of eroded stone? maybe...
#declare Rocky=function {pattern {bumps turbulence 0 scale 0.2}}
// and different, orderly pattern for comparison
#declare Rocky2=function {pattern {leopard turbulence 0.2 scale 0.2}}
// could try other patterns, too.

isosurface {
 function {
  y-  // restrict to area of y plane
  Rocky(x,y,z)
  // or Rocky2(x,y,z)  // can also use *Rocky2(x,y,z) here [multiply them]
  *f_noise3d(x/3,y/3,z/3)  // cause overall undulation in the object
 }
 contained_by {
  box {<-10,0,-10>,<10,1,10>}  // area to fill
 }
 threshold 0.0
 max_gradient 15
 pigment {rgb <0.6,0.2,0.1>}
}

plane {y, 0.25 pigment {rgb <0.5,0.25,0.125>} finish {crand 0.2}} // dirt

// END


Post a reply to this message

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