#include "Colors.Inc" #include "Textures.Inc" #include "Glass.Inc" #include "stones.inc" #include "env.inc" //#include "palm.inc" global_settings { max_trace_level 2000 //max_trace_level 5 //adc_bailout 0.01 //ambient_light rgb .9 assumed_gamma 2.2 /* radiosity { brightness 3.3 count 500 distance_maximum 0 error_bound 0.2 gray_threshold 0.5 low_error_factor 0.8 minimum_reuse 0.015 nearest_count 10 recursion_limit 2 }*/ } camera { location <0,30,-375> look_at <0.0,20,0.0> rotate <0,-10,0> right up y } light_source { <2000,1000,-2000> color White } light_source { <-200,200,-150> color White } background { color White } #declare texture_aluminum = texture { pigment { rgb <0.55, 0.5, 0.45> } finish { metallic ambient 0.1 diffuse 0.65 specular 0.85 roughness 0.01 reflection 0.45 //brilliance 1.5 brilliance 2.5 ambient .4 } } #declare texture_amber_glass = texture { pigment { rgbf <1, 1, 1, .9> } finish { ambient 0.1 diffuse 0 reflection 0.1 //refraction 0.9 brilliance 6 specular 1 roughness 0.0001 ior 1.45 //phong 1 //phong_size 400 irid { .45 } } } #declare RomanTex=texture { texture_aluminum /* T_Stone14 scale 10 normal { bump_map { gif "brick.gif" bump_size 5 } scale 20 } */ } #declare GlassTexture=texture { texture_amber_glass } //T_Glass3 } #declare CheckerTexture=texture { tiles { texture { T_Stone21 finish { ambient 0.1 diffuse 0.7 brilliance 6.0 reflection 0.4 phong 0.8 phong_size 120 } } tile2 texture { T_Stone22 finish { ambient 0.1 diffuse 0.7 brilliance 6.0 reflection 0.4 phong 0.8 phong_size 120 } } } scale 20 } #declare Tile=object { difference { union { box { <-.25,-.125,-.25>,<.25,.125,.25> } cylinder { <-.25,0,-.25>,<-.25,0,.25>,.125 } cylinder { <.25,0,-.25>,<.25,0,.25>,.125 } cylinder { <-.25,0,.25>,<.25,0,.25>,.125 } cylinder { <-.25,0,-.25>,<.25,0,-.25>,.125 } sphere { <-.25,0,.25>,.125 } sphere { <.25,0,.25>,.125 } sphere { <.25,0,-.25>,.125 } sphere { <-.25,0,-.25>,.125 } } box { <-2,-2,-2>,<2,0,2> } } scale <4,4,4> //texture { pigment { color Red } } texture { texture_aluminum } } #declare Tiles=union { object { Tile translate <82.5,-8,0> rotate <0,0.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,22.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,45.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,67.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,90.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,112.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,135.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,157.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,180.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,202.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,225.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,247.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,270.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,292.500000,0> } object { Tile translate <82.5,-8,0> rotate <0,315.000000,0> } object { Tile translate <82.5,-8,0> rotate <0,337.500000,0> } } #declare TopPillar=union { difference { cylinder { <0,-10,0>,<0,15,0>,5 } union { cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,0,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,22.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,45,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,67.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,90,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,112.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,135,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,157.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,180,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,202.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,225,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,247.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,270,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,292.5,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,315,0> } cylinder { <5,-11,0>,<5,10,0>,1 rotate <0,337.5,0> } sphere { <5,10,0>,1 rotate <0,0,0> } sphere { <5,10,0>,1 rotate <0,22.5,0> } sphere { <5,10,0>,1 rotate <0,45,0> } sphere { <5,10,0>,1 rotate <0,67.5,0> } sphere { <5,10,0>,1 rotate <0,90,0> } sphere { <5,10,0>,1 rotate <0,112.5,0> } sphere { <5,10,0>,1 rotate <0,135,0> } sphere { <5,10,0>,1 rotate <0,157.5,0> } sphere { <5,10,0>,1 rotate <0,180,0> } sphere { <5,10,0>,1 rotate <0,202.5,0> } sphere { <5,10,0>,1 rotate <0,225,0> } sphere { <5,10,0>,1 rotate <0,247.5,0> } sphere { <5,10,0>,1 rotate <0,270,0> } sphere { <5,10,0>,1 rotate <0,292.5,0> } sphere { <5,10,0>,1 rotate <0,315,0> } sphere { <5,10,0>,1 rotate <0,337.5,0> } } } difference { union { cylinder { <-5,12.5,-5>,<-5,12.5,5>,2.5 } cylinder { <5,12.5,-5>,<5,12.5,5>,2.5 } } union { sphere { <-5,12.5,-5>,2 } sphere { <-5,12.5,5>,2 } sphere { <5,12.5,-5>,2 } sphere { <5,12.5,5>,2 } } } union { sphere { <-5,12.5,-3>,1.5 } sphere { <-5,12.5,3>,1.5 } sphere { <5,12.5,-3>,1.5 } sphere { <5,12.5,3>,1.5 } } box { <-7.5,15,-5>,<7.5,16,5> } box { <-7.5,12.5,-3>,<7.5,16,3> } } #declare BottomPillar=object { TopPillar rotate <0,0,180> } #declare Pillar=union { object { TopPillar } object { BottomPillar } translate <0,6,0> } #declare Pad=union { difference { union { cylinder { <0,-10,0>,<0,-8,0>,85 } cylinder { <0,-10,0>,<0,-6,0>,80 } } cylinder { <0,-5,0>,<0,-8,0>,60 } } difference { cylinder { <0,-8,0>,<0,-5,0>,60 } cylinder { <0,-8,0>,<0,-4,0>,58 } } cylinder { <0,-8,0>,<0,-6,0>,58 texture { CheckerTexture } } cylinder { <0,-8,0>,<0,-5,0>,20 } difference { cylinder { <0,-8,0>,<0,0,0>,18 } cylinder { <0,-8,0>,<0,1,0>,14 } } object { Tiles } } #declare Arch=object { difference { cylinder { <-4,0,0>,<4,0,0>,26 } union { cylinder { <-5,0,0>,<5,0,0>,23 } box { <-5,4,-30>,<5,-30,30> } } } translate <64.7,15,0> } #declare Arches=union { object { Arch rotate <0,0,0> } object { Arch rotate <0,22.5,0> } object { Arch rotate <0,45,0> } object { Arch rotate <0,67.5,0> } object { Arch rotate <0,90,0> } object { Arch rotate <0,112.5,0> } object { Arch rotate <0,135,0> } object { Arch rotate <0,157.5,0> } object { Arch rotate <0,180,0> } object { Arch rotate <0,202.0,0> } object { Arch rotate <0,225,0> } object { Arch rotate <0,247.5,0> } object { Arch rotate <0,270,0> } object { Arch rotate <0,292.5,0> } object { Arch rotate <0,315,0> } object { Arch rotate <0,337.5,0> } } #declare Dome=union { difference { sphere { <0,40,0>,75 scale <1,.75,1> } box { <-100,-100,-100>,<100,40,100> } sphere { <0,40,0>,70 scale <1,.75,1> } //cylinder { <0,0,0>,<0,1000,0>,50 } box { <-100,45,5>,<-5,100,100> } box { <5,45,5>,<100,100,100> } box { <5,45,-5>,<100,100,-100> } box { <-5,45,-5>,<-100,100,-100> } cylinder { <0,0,0>,<0,100,0>,27 } } /**/ difference { sphere { <0,40,0>,72 scale <1,.75,1> } sphere { <0,40,0>,71 scale <1,.75,1> } box { <-100,-10,-100>,<100,41,100> } cylinder { <0,0,0>,<0,100,0>,27 } texture { GlassTexture } } /**/ difference { cylinder { <0,78,0>,<0,84,0>,30 } cylinder { <0,120,0>,<0,50,0>,25 } } //texture { GlassTexture } } #declare Pillars=union { object { Pillar translate <0,4,70> rotate <0,0,0> } object { Pillar translate <0,4,70> rotate <0,22.5,0> } object { Pillar translate <0,4,70> rotate <0,45,0> } object { Pillar translate <0,4,70> rotate <0,67.5,0> } object { Pillar translate <0,4,70> rotate <0,90,0> } object { Pillar translate <0,4,70> rotate <0,112.5,0> } object { Pillar translate <0,4,70> rotate <0,135,0> } object { Pillar translate <0,4,70> rotate <0,157.5,0> } object { Pillar translate <0,4,70> rotate <0,180,0> } object { Pillar translate <0,4,70> rotate <0,202.5,0> } object { Pillar translate <0,4,70> rotate <0,225,0> } object { Pillar translate <0,4,70> rotate <0,247.5,0> } object { Pillar translate <0,4,70> rotate <0,270,0> } object { Pillar translate <0,4,70> rotate <0,292.5,0> } object { Pillar translate <0,4,70> rotate <0,315,0> } object { Pillar translate <0,4,70> rotate <0,337.5,0> } } #declare OuterRim=object { difference { cylinder { <0,-10,0>,<0,-9,0>,115 } cylinder { <0,-11,0>,<0,-8,0>,105 } } } #declare RomanBuilding=union { object { Pillars } object { Pad } object { Arches } object { Dome } object { OuterRim } texture { RomanTex } //texture { GlassTexture } } //#declare PalmTree=cylinder { <0,0,0>,<0,200,0>,40 texture { pigment { color Green } } } /* #declare PalmTrees=union { object { PalmTree scale .125 translate<-130,-10,0> rotate<0,15,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,45,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,75,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,105,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,135,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,165,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,195,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,225,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,255,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,285,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,315,0> } object { PalmTree scale .125 translate<-130,-10,0> rotate<0,345,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,30,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,60,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,90,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,120,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,150,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,180,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,210,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,240,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,270,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,300,0> } object { PalmTree scale .125 translate<0,-10,-145> rotate<0,330,0> } } */ #declare Blue_Sky3 = pigment { granite turbulence 0.1 color_map { [0.3 rgb <0, 0, 1>] [1.0 rgb 1] } scale .75 } #declare Mysky = sphere { <0,0,0>,0.98 texture { //Blue_Sky3 texture_aluminum pigment { color White } //finish {reflection 0.0 diffuse 0.0 ambient 1.0} } } difference { sphere { <0,0,0>,1} object {Mysky} scale <3000,500,3000> texture { //Blue_Sky3 texture_aluminum pigment { color White } //finish {reflection 0.0 diffuse 0.0 ambient 1.0} } no_shadow } plane { y,-10.5 texture { texture_aluminum pigment { color White } //pigment { //color rgb<0.0,0.1,0.2> //SkyBlue //color red 0.196078 green 0.6 blue 1 //} normal { bumps 0.5 scale .8 } //finish { // specular 1 // roughness .001 // reflection .5 // ambient 0.3 // diffuse 0.2 //} scale 5 } } object { RomanBuilding }