#version 3.0; // By Jonathan Hunt camera { location <0, 5, -35> look_at <0, 7, 0> } light_source { <160, 160, -160> color rgb<0.3, 0.3, 0.3> shadowless } light_source { <160, 160, -160> color rgb<0.7, 0.7, 0.7> } #declare Dodecahedron = intersection { plane {-z, 1 rotate <-26.56505117708, 0, 0>} plane {-z, 1 rotate <-26.56505117708, -72, 0>} plane {-z, 1 rotate <-26.56505117708, -144, 0>} plane {-z, 1 rotate <-26.56505117708, -216, 0>} plane {-z, 1 rotate <-26.56505117708, -288, 0>} plane {-z, 1 rotate <26.56505117708, -36, 0>} plane {-z, 1 rotate <26.56505117708, -108, 0>} plane {-z, 1 rotate <26.56505117708, -180, 0>} plane {-z, 1 rotate <26.56505117708, -252, 0>} plane {-z, 1 rotate <26.56505117708, -324, 0>} plane { y, 1} plane {-y, 1} } #declare PlanePigment = pigment { bumps scale 0.2 color_map { [0.0 color rgbt<0.6, 0.8, 1.0, 0.2>] [0.3 color rgbt<0.2, 0.3, 1.0, 0.2>] [1.0 color rgbt<0.0, 0.0, 1.0, 0.2>] } } plane { y, 0 pigment {PlanePigment} finish { reflection 0.6 ambient 0 diffuse 0.65 } normal { bumps 0.2 scale 0.2 } } sky_sphere { pigment { gradient y color_map { [0.0 color rgb<0.6, 0.8, 1.0>] [0.3 color rgb<0.2, 0.3, 1.0>] [1.0 color rgb<0.0, 0.0, 1.0>] } } } disc {<0, 500, 0>, -y, 5000 texture { pigment { wood scale 10000 rotate<90, 0, 0> pigment_map{ [0 bozo turbulence .65 omega 0.8 color_map { [0 color rgbt<1, 1, 1, 0>] [0.5 color rgbt<1, 1, 1, 1>] } scale 0.1] [1 color rgbt<1, 1, 1, 1>] } } finish { ambient 1 diffuse 0 } rotate <5, -45, 0> } } #declare HField = height_field { gif "hfield.gif" water_level 0.001 translate<-0.5, -0.001, -0.5> } #declare SpireTexture = texture { pigment { granite color_map { [0.0 color rgb<1.0, 1.0, 0.4>] [1.0 color rgb<1.0, 0.4, 0.0>] } scale 0.01 } finish { diffuse 0.9 } } #declare Spire = union { object {HField scale<4, 16, 4>} object {HField scale<6, 8, 6> rotate<0, 90, 0>} object {HField scale<8, 4, 8> rotate<0, 180, 0>} object {HField water_level 0.333 scale<16, 3, 16> translate<0, -1, 0>} texture { wood rotate<90, 0, 0> scale 16 texture_map { [0.6 SpireTexture] [0.8 pigment {PlanePigment transmit 0}] } } translate<0, -0.5, 0> } #declare Angle = 16 object {Spire translate<0, 0, 16> rotate<0, 0 + Angle, 0>} object {Spire translate<0, 0, 16> rotate<0, 72 + Angle, 0>} object {Spire translate<0, 0, 16> rotate<0, 144 + Angle, 0>} object {Spire translate<0, 0, 16> rotate<0, 216 + Angle, 0>} object {Spire translate<0, 0, 16> rotate<0, 288 + Angle, 0>} difference { intersection { object { HField scale<20, 10, 20> translate<0, -2, 0> } plane {-y, 0.5} } object { Dodecahedron scale 5 translate<0, 5.05, 0> } rotate<0, 36, 0> texture {SpireTexture} } object { Dodecahedron scale 5 translate<0, 5.1, 0> rotate<0, 36, 0> texture { pigment { bumps color_map { [0.000 rgbf<1.0, 0.8, 0.8, 0.8>] [0.166 rgbf<1.0, 1.0, 0.8, 0.8>] [0.333 rgbf<0.8, 1.0, 0.8, 0.8>] [0.500 rgbf<0.8, 1.0, 1.0, 0.8>] [0.666 rgbf<0.8, 0.8, 1.0, 0.8>] [0.833 rgbf<1.0, 0.8, 1.0, 0.8>] [1.000 rgbf<1.0, 0.8, 0.8, 0.8>] } frequency 4 } finish { ambient 0 diffuse 1 reflection 0.5 phong 1 } } }