POV-Ray : Newsgroups : povray.binaries.images : Sandstone blocks : Re: Sandstone blocks Server Time
7 Aug 2024 09:19:39 EDT (-0400)
  Re: Sandstone blocks  
From: PM 2Ring
Date: 28 Apr 2006 09:00:00
Message: <web.445210571843be3376ba2c900@news.povray.org>
"Thomas de Groot" <t.d### [at] internlnet> wrote:
> Very realistic indeed! An excellent sandstone, especially when it has been
> exposed to weathering and/or ground water seepage. I shall certainly take it
> up in my (small) collection of geological textures.
>
> Thomas

Thanks, Thomas. It's always nice to get your geologist's approval of my
stones.
Living in Sydney, I've seen weathered sandstone all my life, and plenty
weathered by seepage. Sydney basin is built on sandstone and shale. As well
as the white, yellow and apricot colours of my palette, the real stones have
some beautiful shades of red, ranging from pale rose pinks to an almost
purple colour. I know the reds & yellows come from iron, but I don't know
about the purple.

Here's a large stone block sitting on a floor in a geology museum (maybe :)
Sorry, the source code is a bit messy...

// Persistence of Vision Ray Tracer Scene Description File
// File: Sandstone.pov
// Vers: 3.6
// Desc:
// Date: 2006.02.06
// Auth: PM 2Ring
//
//  -D +A0.1 +AM2 +R2
//  -F -A0.5 +AM2 +R1
//  -F +A0.6 +AM2 +R2
//  -d +W1200 +H900 +A0.3 +AM2 +R2
//  -d +W1200 +H900 +A0.1 +AM2 +R3
//
//  -d +A0.2 +AM2 +R2 +C
// povray SandstoneD.pov +p +A0.2 +AM2 +R2 +W800 +H600
//

//#include "colors.inc"
#include "functions.inc"

global_settings {
  assumed_gamma 1.0
  max_trace_level 5
}

//Block dimensions
#declare W = 1.25;
#declare D = 1.5;
#declare H = 0.75;
#declare ROUGH = 0.45;          //Bump height
#declare BUSY = 0.40;           //Bump period

//---The textures---------------------------------------------------------

#declare SkyBlue = rgb<.035, .27, .67>;              //For water & sky
#declare Sandy = rgb<1, .9, .65>;

#declare Transmit = .8;
#declare CM_Sandstone =
colour_map{
  [0.3 rgbt <1, 1, 1, 1.2*Transmit>]
  [0.4 rgbt <1, 0, 0, Transmit>]
  [0.41 rgbt <0.5, 0.2, 0.1, .5*Transmit>]
  [0.42 rgbt <1, 0, 0, .75*Transmit>]
  [0.6 rgbt <1, 0.5, 0, Transmit>]
  [0.7 rgbt <1, 1, 1, .5*Transmit>]
}

#declare FSandstone =
finish{
  diffuse 0.85 ambient 0.05
  //brilliance .5
}

#declare TSandstone =
texture{
  pigment {Sandy}
  finish{FSandstone}
}

#declare TStain = texture{
  pigment{
    //agate    //maybe try something derived from f_Height
    //wrinkles  //good!
    //wood
    marble
    //gradient <.3, 2, .1>/2
    turbulence 0.1875
    colour_map{CM_Sandstone}
    //scallop_wave

    translate 0.95*1.1
    rotate <10, 75, 25>
    scale 1.5*W*7
  }
  finish{FSandstone}
}

#declare TSandstone2 =
texture{TSandstone}
texture{TStain}

//---The objects---------------------------------------------------------

#declare f_Height = function{f_wrinkles(x*BUSY, y*BUSY, z*BUSY)}
#declare smod = function(A,B) {mod(B+mod(A,B),B)}

//#declare f_cnoise = function(x,z) {(W-R)*f_snoise3d(floor(x*.5/W), 0,
floor(z*.5/W))}
//#declare f_modnoise = function(x,z) {smod(x,2*W)-W+f_cnoise(x,z)}

//Stone Blocks
#declare IsoBlocks =
isosurface{
  function {
    max(
      smod(x,2)-(W-ROUGH*f_Height(x, y, z)),
      smod(z,2)-(D-ROUGH*f_Height(x, y, z)),

      //abs(x)-W*(1-ROUGH*f_Height(x, y, z)),
      abs(y)-(H-ROUGH*f_Height(x, y, z))
      //abs(z)-D*(1-ROUGH*f_Height(x, y, z))
    )
  }
  contained_by{box{<-W*5, -H, -D*5>, <W*5, H, D*5>}}
  max_gradient 16
  accuracy 3e-4
  //all_intersections
}

#declare IsoBlock =
isosurface{
  function {
    max(
      abs(x)-(W-ROUGH*f_Height(x, y, z)),
      abs(y)-(H-ROUGH*f_Height(x, y, z)),
      abs(z)-(D-ROUGH*f_Height(x, y, z))
    )
  }
  contained_by{box{<-W, -H, -D>, <W, H, D>}}
  max_gradient 1.3
  accuracy 1e-5
  //all_intersections
}

#declare Ground =
isosurface {
  function {(y - f_Height(x, y, z))}
  max_gradient 3.6
  contained_by {box {<-4,-5,-4>, < 4, 1, 4>}}
  accuracy 1e-3
}

#declare BB=12;
#declare Floor =
box{
  <-BB,-1,-BB>,<BB,0,BB>
  pigment{checker rgb .1, rgb 1 rotate -45*y}
  finish{
    ambient 0.1 reflection 0.175
  }
}

//---The scene---------------------------------------------------------

object{IsoBlock texture{TSandstone2}  rotate -30*y translate y*(H-ROUGH/2)}

#if(0)
  object{Ground texture{TSandstone2 translate 17.123}}
#else
  object{Floor}
#end

#if(0)
  //#declare SkyBlue = 2; //2.5 + SkyBlue;
  sky_sphere {
    pigment {
      gradient y
      color_map {
        [0.4 0.1*SkyBlue]
        [0.9 0.8*SkyBlue]
        [1   1.0*SkyBlue]
      }
    }
  }
#else
  background{rgb .5}
#end

#declare CamPos = <0.45, 3.75, -6.25> * 0.9;
//#declare CamPos = 4*y;
camera {
  location CamPos
  direction z
  right     x*image_width/image_height up y
  look_at   y* 0.3
  angle 40
}

light_source {
  <-0.5, 1, -1> * 8
  #if(0)
    rgb 1.25 // 1.75
  #else
    rgb 50
    //spotlight point_at <-1,-1,0> falloff 2.25 radius 0.35
    //area_light .2*x,.2*z, 3,3 jitter adaptive 1 orient circular
    fade_distance 1.25 fade_power 2
  #end
}

//---The end---------------------------------------------------------


Post a reply to this message


Attachments:
Download 'sandstonee0s.jpg' (123 KB)

Preview of image 'sandstonee0s.jpg'
sandstonee0s.jpg


 

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