|
|
"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'
|
|