#include "colors.inc" #include "stones.inc" #declare TriCut = difference { box { <-5, -5, -5>, <5, 5, 5> } box { <-10, -10, -10>, <10, 10, 10> rotate y*45 translate <5*sqrt(2), 0, 5*sqrt(2)> } translate <5, 0, 5> rotate -x*90 rotate -z*135 } #declare TriCutRound = merge { object { TriCut } cylinder { <0, -1, 0>, <0, -1, -5> 1 } } #declare HillEnd = merge { cone { <0, 5, 0> 1 <0, 0, 0> 5*sqrt(2) } sphere { <0, 4.2, 0> 1.3 } } #declare Hill = merge { object { HillEnd scale y*sqrt(1.7) translate <0, -5*sqrt(2), 5> } object { TriCutRound } object { HillEnd scale y*sqrt(1.7) translate <0, -5*sqrt(2), -5> } } #declare FortWall1 = merge { box { <0, 0, 0>, <15, 20, 3> } box { <0, 20, 0>, <3, 22, 3> } box { <6, 20, 0>, <9, 22, 3> } box { <12, 20, 0>, <15, 22, 3> } } #declare FortWall2 = difference { object { FortWall1 } box { <3, 15, -1>, <6, 17, 4> } box { <9, 15, -1>, <12, 17, 4> } } #declare BattleFort = merge { object { FortWall2 } object { FortWall2 rotate -y*90 } object { FortWall2 translate <0, 0, 12> } object { FortWall2 rotate -y*90 translate <18, 0, 0> } } #declare Wall1 = merge { box { <0, 0, 0>, <6, 12, 2> } box { <0, 12, 0>, <3, 13, 2> } } #declare Wall2 = merge { object { Wall1 } box { <0, 0, 2>, <6, 9, 10> } object { Wall1 translate <0, 0, 10> } } #declare Wall4 = merge { object { Wall2 } object { Wall2 translate <6, -1, 0> } object { Wall2 translate <12, -2, 0> } object { Wall2 translate <18, -3, 0> } object { Wall2 translate <24, -4, 0> } object { Wall2 translate <30, -5, 0> } object { Wall2 translate <36, -6, 0> } object { Wall2 translate <42, -7, 0> } object { Wall2 translate <48, -8, 0> } object { Wall2 translate <54, -9, 0> } object { Wall2 translate <60, -10, 0> } } #declare Wall3 = merge { object { Wall2 } object { Wall2 translate <6, -1, 0> } object { Wall2 translate <12, -0.7, 0> } object { Wall2 translate <18, -0.5, 0> } object { Wall2 translate <24, -0.3, 0> } object { Wall2 translate <30, 0, 0> } object { Wall2 translate <36, 0, 0> } object { Wall2 translate <42, .3, 0> } object { Wall2 translate <48, .5, 0> } object { Wall2 translate <54, .7, 0> } object { Wall2 translate <60, .5, 0> } object { Wall2 translate <66, .3, 0> } object { Wall2 translate <72, 0, 0> } object { Wall2 translate <78, -0.2, 0> } object { Wall2 translate <84, -0.2, 0> } object { Wall2 translate <90, -0.1, 0> } object { Wall2 translate <96, 0, 0> } object { Wall2 translate <102, .1, 0> } object { Wall2 translate <108, .2, 0> } object { Wall2 translate <114, .3, 0> } object { Wall2 translate <120, .3, 0> } object { Wall2 translate <126, 0, 0> } object { Wall2 translate <132, -.5, 0> } object { Wall2 translate <138, -1, 0> } object { Wall2 translate <144, -1.5, 0> } object { Wall2 translate <150, -2, 0> } object { Wall2 translate <156, -2.5, 0> } object { Wall2 translate <162, -3, 0> } object { Wall2 translate <168, -3.5, 0> } object { Wall2 translate <174, -4, 0> } object { Wall2 rotate y*20 translate <180, -4.5, 0> } object { Wall2 rotate y*40 translate <cos(0.349)*6+180, -5, -sin(.349)*6> } object { Wall2 rotate y*60 translate <cos(.6981)*6+cos(.349)*6+180, -7, -sin(.6981)*6-sin(.349)*6> } object { Wall2 rotate y*80 translate <(cos(1.0471)+cos(.6981)+cos(.349))*6+180, -9, (-sin(1.0471)-sin(.6981)-sin(.349))*6> } object { Wall2 rotate y*100 translate <(cos(1.3963)+cos(1.0471)+cos(.6981)+cos(.349))*6+180, -11, (-sin(1.3963)-sin(1.0471)-sin(.6981)-sin(.349))*6> } object { Wall2 rotate y*120 translate <(cos(1.7453)+cos(1.3963)+cos(1.0471)+cos(.6981)+cos(.349))*6+180, -13, (-sin(1.7453)-sin(1.3963)-sin(1.0471)-sin(.6981)-sin(.349))*6> } object { Wall4 scale x*.3 rotate -z*8 rotate y*120 translate <(cos(2.0944)+cos(1.7453)+cos(1.3963)+cos(1.0471)+cos(.6981)+cos(.349))*6+180, -13, (-sin(2.0944)-sin(1.7453)-sin(1.3963)-sin(1.0471)-sin(.6981)-sin(.349))*6 + 3> } } light_source { <-100, 100, -30> White } light_source { <-100, 100, -30> Red*2 } camera { location <-100, 5, -70> look_at <0, 10, -40> angle 90 } object { Wall3 scale x*0.4 scale y*0.9 rotate y*90 translate <-6, -2, 0> texture { T_Stone1 scale 2 } /* finish { crand .1 } */ } plane { <0, 1, 0>, -25 pigment { bozo colour_map { [.7 colour rgb <0.50, .50, .40> ] [.7 colour rgb <1, .4, .2> ] [.999 colour rgb <.4, .53, .20> ] [1.01 colour rgb <.53, .11, .11> ] } turbulence 1 scale 9 translate 100*x } finish { crand .1 } } object { Hill scale x*10 scale z*10 scale y*4 translate <0, 0, -10> // rotate -y*45 pigment { bozo colour_map { [.7 colour rgb <0.30, .30, .20> ] [.7 colour rgb <1, .4, .2> ] [.999 colour rgb <.4, .53, .20> ] [1.01 colour rgb <.53, .11, .11> ] } turbulence 1 scale 9 translate 100*x } finish { crand .1 } } object { BattleFort // rotate y*180 translate<-8, -5, 0> texture { T_Stone1 scale 2 } finish { crand .1 } } sky_sphere { pigment { gradient y color_map { [0.50 color Blue] [1.00 color MidnightBlue] } scale 2 translate <-1, -1, -1> } pigment { bozo turbulence 0.6 octaves 7 omega .49876 lambda 2.5432 color_map { [0.0 color rgbf<.8, .7, .7, 0.1>] [0.4 color rgbf<.9, .9, .9, .9>] [0.7 color rgbf<1, 1, 1, 1>] } scale 6/10 scale <1, 0.3, 0.3> } pigment { bozo turbulence 0.6 octaves 8 omega .5123 lambda 2.56578 color_map { [0.0 color rgbf<.375, .375, .375, 0.2>] [0.4 color rgbf<.45, .45, .45, .9>] [0.6 color rgbf<0.5, 0.5, 0.5, 1>] } scale 6/10 scale <1, 0.3, 0.3> } }