// MC930 - Projeto Final // Marilia Goulart Honorio - 971259 #include "colors.inc" #declare s = 3; // janelas lateral #declare r = 5; // janelas fechada #declare n = 8; // andares #declare i = 1; // indice // MONUMENTO #declare centro_do_monumento = < 0, 0, 1 >; //#declare baseVerde = // box{ // } #declare trianguloCentro = difference { box { < 0.1, 0.25, -0.2 >, < 0, 0, 0 > texture { pigment { White } } } box { < 0.15, 0.15, -0.165 >, < -0.15, -0.15, 0.165 > texture { pigment { White } } rotate < 45, 0, 0 > translate < 0.00, 0.25, -0.2 > } } #declare trianguloCentroCompleto = union { object { trianguloCentro rotate < 45, 0, 0 > } } #declare trianguloBranco = difference { box { <0.65,1.3,-0.05>, <0.6,1.1,0.1> texture { pigment { White } } } box { <0.1,0.25,-0.2> <0,0,0> texture { pigment { color rgbt < 1, 1, 1, 1> } } rotate <35,0,0> translate <0.56,1.1,-0.05> } } #declare corte = box { < 0.15, 0.15, -0.165 >, < -0.15, -0.15, 0.165 > texture { pigment { White } } rotate < 45, 0, 0 > translate < 0.00, 0.25, -0.2 > } #declare baseBranca = box { <0.9,1.3,0.15>, <-0.2,-1.2,0.25> texture { pigment { White } } } #declare lajeDeBaixo = box { <0.8,1.2,-0.01>, <-0.1,-1.1,0.05> texture { pigment { White } } } #declare andarDeBaixoCinza1 = box { <0.7,1.1,0.05>, <0.1,-0.9,0.15> texture { pigment { Gray } } } #declare andarDeBaixoCinza2 = object { andarDeBaixoCinza1 translate < 0, 0, -0.16> } #declare triFrente = object { trianguloCentroCompleto rotate < 0, 0, -90 > translate < 0.76, -0.98, 0 > } #declare triTras = object { trianguloCentroCompleto rotate < 0, 0, 90 > translate < -0.05, -1.07, 0 > } #declare triEsquerda = object { trianguloCentroCompleto translate < 0, 1.17, 0 > } #declare triDireita = object { trianguloCentroCompleto rotate < 0, 0, 180 > translate < 0.115, -1.07 , 0 > } #declare monumento = union { object { baseBranca } object { lajeDeBaixo } object { andarDeBaixoCinza1 } object { andarDeBaixoCinza2 } #declare i = 0; #while (i < 3) object { triDireita translate } #declare i = i + 1; #end #declare i = 0; #while (i < 3) object { triEsquerda translate } #declare i = i + 1; #end #declare i = 0; #while (i < 8) object { triFrente translate <0,i*0.31,0> } #declare i = i + 1; #end #declare i = 0; #while (i < 8) object { triTras translate <0,i*0.31,0> } #declare i = i + 1; #end #declare i = 0; #while ( i <= n ) // andar #declare j = 1; #declare k = 1; union{ box{ <0.2*s+0.1, 0.2*r+0.1, 0.2*i+0.15>, <0, 0, 0.2*i+0.35> texture { pigment { Gray } } } // janelas da fachada #while ( j <= r ) box{ <0.2*s+0.11, 0.2*j, 0.2*i+0.15>, <0.2*s+0.11, 0.2*j-0.1, 0.2*i+0.25> texture { pigment { Gray15 } } } #declare j = j + 1; #end // janelas da lateral #while ( k <= s ) box{ <0.2*k-0.1, 0.2*r+0.11, 0.2*i+0.15>, <0.2*k, 0.2*r+0.11, 0.2*i+0.25> texture { pigment { Gray15 } } } #declare k = k + 1; #end } #declare i = i + 1; #end } // FUNDO 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.4, 0.5, 0.9> color rgb <0.4, 0.5, 0.9>] // [0.002 0.200 color rgb <0.8, 0.1, 0.0> // color rgb <0.2, 0.2, 0.3>] } scale 2 translate -1 } 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 -135*x } //background { color rgb < 0.90, 0.92, 0.95 > } //background { CloudArea } // PAVIMENTO - piso verde em niveis #declare pavimento = plane{ z, -1 texture{ pigment{ checker color Green // color rgb < 0.80, 0.90, 1.00 >, // color rgb < 0.20, 0.70, 1.00 > } finish{ diffuse 0.9 ambient 0.05 specular 0.3 roughness 0.1 } } } // EIXOS #declare eixos_cartesianos = union { cylinder { <0,0,0>, <1,0,0>, 0.02 pigment { color rgb <1,0,0> } } cylinder { <0,0,0>, <0,1,0>, 0.02 pigment { color rgb <0,1,0> } } cylinder { <0,0,0>, <0,0,1>, 0.02 pigment { color rgb <0,0,1> } } } //object { eixos_cartesianos } object { pavimento } object { monumento } // CÂMARA #declare raio_da_cena = 1.0; /////////////////////////////////////////////////////////////// //Desenvolvimento: //#declare centro_da_cena = < 0, 0, 0.3 >; //#declare direcao_da_camera = vnormalize( < 3, 2, 0 > ); //#declare dist_da_camera = 3.0 * raio_da_cena /////////////////////////////////////////////////////////////// //#declare centro_da_cena = centro_do_monumento; /////////////////////////////////////////////////////////////// //Imagem Final: #declare centro_da_cena = < 0, 0, 0.5>; #declare direcao_da_camera = vnormalize( < 3, 2, 0 > ); #declare dist_da_camera = 3.5 * raio_da_cena; #declare pos_da_camera = centro_da_cena + dist_da_camera * direcao_da_camera; camera { location pos_da_camera // right < 0.00, 0.00, 0.00 > // up < 0.00, 0.48, 0.00 > sky z look_at centro_da_cena } // ILUMINAÇÃO #declare direcao_da_luz = vrotate(direcao_da_camera, < 10, 10, 10 >); #declare intens_da_luz = 1.25; light_source { 20 * raio_da_cena * direcao_da_luz color rgb intens_da_luz * < 1, 1, 1 > } light_source { < -1, -1, 0.5> color rgb intens_da_luz * < 1, 1, 1 > }