// Exercício de criação de cena - POV-Ray // Criado em 09 de Junho de 2001 - Alan Keler Baldo - ra007850 // Last edited on 2001-06-11 12:53:48 by stolfi #include "colors.inc" #include "metals.inc" #include "golds.inc" #include "stones1.inc" #include "textures.inc" //cor de fundo background{ color rgb < 0.95, 0.95 , 0.95 > } sky_sphere { pigment { gradient y color_map { [0.000 0.002 color rgb <1.0, 0.2, 0.0> color rgb <1.0, 0.2, 0.0>] [0.002 0.200 color rgb <0.8, 0.1, 0.0> color rgb <0.2, 0.2, 0.3>] } scale 2 } pigment { bozo turbulence 0.65 octaves 6 omega 0.7 lambda 2 color_map { [0.0 0.1 color rgb <0.85, 0.85, 0.85> color rgb <0.75, 0.75, 0.75>] [0.1 0.5 color rgb <0.75, 0.75, 0.75> color rgbt <1, 1, 1, 1>] [0.5 1.0 color rgbt <1, 1, 1, 1> color rgbt <1, 1, 1, 1>] } scale <0.2, 0.5, 0.2> } rotate 45*x } //fontes de luz light_source { 2*< 7.0, 10.0, 15.00 > color rgb 1.7 * < 1.0, 1.0, 1.0 > } light_source { < -7.0, 10.0, 3.00 > color rgb 0.3 * < 1.0, 1.0, 1.0 > shadowless } //definicao da camera camera { // location < -7.0 , 10.0, 3.00 > location 0.4*< -15.0, 25.0, 5.00 > right < -0.80, 0.00, 0.00 > up < 0.00, 0.00, 0.60 > sky < 0.00, 0.00, 0.50 > look_at < 0.00, 0.00, 2.50 > } #declare vidro = texture { finish{ ambient 0.1 diffuse 0.1 reflection 0.10 specular 1 roughness 0.001 } pigment { color <0.9,0.9,0.9> filter 1} } object { intersection { plane { <0, 0, 1>, 0 } plane { <0, 0, 1>, 0 rotate y*15 rotate x*15 translate <17,-20,0> } } texture {T_Grnt25 scale 0.15} } #declare marmore = T_Stone1 #declare semente = seed(7850); #declare ncircs = (3*rand(semente))+1; //numero de circulos #declare raio = 0.3; //raio do primeiro circulo #declare angulo = 0; #while (ncircs > 0) //para cada circulo... #declare raio = raio + (2*rand(semente))+0.6; //incremento no raio #declare npilares = (9*rand(semente))+1; //numero de pilares no circulo #while (npilares > 0) //para cada pílar dentro do circulo #declare angulo = angulo + (50*rand(semente)) + 20; //para calcular posicao do pilar no circulo #declare ncilindros = (5*rand(semente))+4; //numero de cilindros do pilar object { union { //topo do pilar #declare cristal = texture { finish{ ambient 0.1 diffuse 0.1 reflection 0.35 specular 1 roughness 0.001 } pigment { color filter 1} } #declare obj2 = box { < +0.05, +0.05, +0.05 >, < -0.05, -0.05, -0.05 > texture { cristal } rotate x*45 rotate y*45 } object { difference { object { sphere { <0.0, 0.0, 0.0> , 0.3} } object { box { <1.0, 1.0, 0.0>, <-1.0, -1.0, -1.0> } } } texture {vidro} hollow interior{ior 1.3} translate rotate z*angulo } object { obj2 hollow interior{ior 1.3} translate rotate z*angulo } cylinder { <0,0,(0.2*(ncilindros+1))>, <0,0,((0.2*(ncilindros+1))+0.2)>, 0.3 texture {marmore} translate rotate z*angulo } //corpo do pilar #while (ncilindros > 0) //para cada cilindro do pilar #declare altura = 0.2 * ncilindros; #declare raio_cilindro = (0.3*rand(semente)) + 0.2; cylinder { <0,0,altura>, <0,0,(altura+0.2)>, raio_cilindro texture {marmore scale 0.5} translate rotate z*angulo } #declare ncilindros = ncilindros - 1; #end } } #declare npilares = npilares - 1; #end #declare ncircs = ncircs - 1; #end