// Last edited on 2009-07-23 17:52:38 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tinta_1 = texture { pigment { color rgb < 0.10, 0.80, 1.00 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare tinta_2 = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare tinta_3 = texture { pigment { color rgb < 0.5, 0.4, 0.6 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare tinta_4 = texture { pigment { color rgb < 0.2, 0.1, 1.0 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare tinta_5 = texture { pigment { color rgb < 0.7, 0.7, 0.9 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare tinta_6 = texture { pigment { color rgb < 1, 0, 0 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare muralha_1 = box { <-6.5,-6.5,0>, <6.5,6.5,1> rotate <0,0,45> } #declare muralha_2 = box { <-5.5,-5.5,-1>, <5.5,5.5,2> rotate <0,0,45> } #declare torre_muralha_1 = cone { <-6,-6,0>, 1, <-6,-6,3>, 0.5 rotate <0,0,45> texture {tinta_3} } #declare torre_muralha_2 = cone { <-6,-6,0>, 1, <-6,-6,3>, 0.5 rotate <0,0,135> texture {tinta_3} } #declare torre_muralha_3 = cone { <-6,-6,0>, 1, <-6,-6,3>, 0.5 rotate <0,0,225> texture {tinta_3} } #declare torre_muralha_4 = cone { <-6,-6,0>, 1, <-6,-6,3>, 0.5 rotate <0,0,315> texture {tinta_3} } #declare plano = plane { y, 0 texture { pigment { checker rgb <1,1,1>, rgb <0.5 0.5 0.5> } finish { diffuse 0.5 ambient 0.5 } } scale 15 } #declare roleta = seed (1300); #declare raio = 3; #declare s = 0.5; #macro fractal (n) #if (n = 0) union { cone { <0,0,0>, 4, <0,0,3>, raio texture {tinta_1} } cone { <0,0,3>, 0.8*raio, <0,0,6>, 0.3 texture {tinta_5} } } #else union { cone { <0,0,0>, 4, <0,0,3>, raio #declare cor_figura = rand (roleta); #if (int (cor_figura * 3) > 0.7) texture {tinta_2} #else #if (int (cor_figura * 3) < 0.4) texture {tinta_4} #else texture {tinta_3} #end #end } cone { <0,0,3>, 0.8*raio, <0,0,6>, 0.3 #declare cor_figura = rand (roleta); #if (int (cor_figura * 3) > 0.7) texture {tinta_5} #else #if (int (cor_figura * 3) < 0.4) texture {tinta_3} #else texture {tinta_2} #end #end } object { fractal (n-1) scale translate texture {tinta_3} } object { fractal (n-1) scale translate <-raio*(1+s),0,0> texture {tinta_4} } object { fractal (n-1) scale translate <0,raio*(1+s),0> texture {tinta_5} } object { fractal (n-1) scale translate <0,-raio*(1+s),0> texture {tinta_6} } } #end #end union { object {fractal (4)} difference{ object {muralha_1} object {muralha_2} texture {tinta_6} } object {torre_muralha_1} object {torre_muralha_2} object {torre_muralha_3} object {torre_muralha_4} union { object {plano} rotate <90,0,0> } rotate <0,0,30> } // Original camera parameters: // #local cam_ctr = <0,0,0> // #local cam_vec = <0,-15,15> // #local cam_sky = y #include "camlight.inc" camlight(<0,0,0>,<10,7,5>,25.0,z,1.0)