// MC930 - Exemplo de main.pov para o trabalho final // Last edited on 2000-12-14 09:07:40 by mc726 //INCLUDES #include "colors.inc" #include "textures.inc" #include "stones.inc" #declare centro_do_monumento = < 0, 0, 0 >; // OBJETOS DA PRACA #declare centro_praca = cylinder { <0,0,0> <0,0,-0.5>, 7 normal { hexagon normal { gradient x scale .2 }, normal { gradient y scale .2 }, normal { bumps scale .2 } } texture { T_Stone5 } } #declare meiofio = difference { cylinder {<0,0,0> <0,0,-0.5>, 7.3 texture{ pigment { color Black } } } cylinder { <0,0,0.1> <0,0,-0.51>, 7 } } #declare raio_ilum = 4.5; #declare iluminacao = cylinder { <0,0,0> <0,0,0.6> 0.2 texture { pigment { color Black } } translate } #declare iluminacoes = union { object {iluminacao } object {iluminacao rotate <0,0,30>} object {iluminacao rotate <0,0,60>} object {iluminacao rotate <0,0,90>} object {iluminacao rotate <0,0,120>} object {iluminacao rotate <0,0,150>} object {iluminacao rotate <0,0,180>} object {iluminacao rotate <0,0,210>} object {iluminacao rotate <0,0,240>} object {iluminacao rotate <0,0,270>} object {iluminacao rotate <0,0,300>} object {iluminacao rotate <0,0,330>} } #declare praca = union { object {iluminacoes} object {meiofio} object {centro_praca} } // OBJETOS DO MONUMENTO #declare baseCrua = cylinder{ <0,0,0> <0,0,7> 2 texture{ pigment {color Brass}} normal {bumps 0.5 scale 0.001} } // finish{ diffuse 0.05 ambient 0.05 reflection 0.10 } // normal { bumps 0.25 scale 0.1 } // finish { phong 1} //Mirante #declare detalheCircularSuperior = cylinder { <0,0,4.65> <0,0,5.65> 2.1 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } #declare buracoMirante = box { <-3,0.85,6> <3,-0.85,6.6> } #declare expostoMirante = difference { cone { <0,0,4.7> 2.2, <0,0,7.1> 2.1 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <-0.1,-3,4.6> <-3,3,7.1> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <0.1,-3,4.6> <3,3,7.1> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } } #declare colunasMirante = union { object {expostoMirante} object {expostoMirante rotate <0,0,60> } object {expostoMirante rotate <0,0,120> } } #declare baseMirante = union { object {baseCrua} object {colunasMirante} } #declare base = difference { object {baseMirante} object {buracoMirante} object {buracoMirante rotate <0,0,60> } object {buracoMirante rotate <0,0,120> } } #declare topo = cylinder { <0,0,7> <0,0,7.25> 1.7 texture { pigment {color Brass} } normal {bumps 0.5 scale 0.001} } #declare antena = cylinder { <0,0,7.2> <0,0,10> 0.05 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } //Colunas #declare expostoMaior1 = difference { cone { <0,0,0> 2.9, <0,0,4.7> 2.5 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <-0.1,-3,-0.1> <-3,3,5> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <0.1,-3,-0.1> <3,3,5> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } } #declare expostoMaior2 = box { <-0.15,3,0> <0.15,-3,0.4> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } #declare expostoMedio = difference { cylinder { <0,0,0> <0,0,4.5> 2.4 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <-0.2,-3,-0.1> <-3,3,5> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <0.2,-3,-0.1> <3,3,5> texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } } #declare expostoMenor1 = difference { cylinder { <0,0,0> <0,0,4.5> 2.3 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <-0.4,-3,-0.1> <-3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } box { <0.4,-3,-0.1> <3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } } #declare expostoMenor2 = difference { cylinder { <0,0,0> <0,0,4.5> 2.2 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } box { <-0.6,-3,-0.1> <-3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } box { <0.6,-3,-0.1> <3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } } #declare expostoMaior = union { object {expostoMaior1} object {expostoMaior2} object {expostoMedio} object {expostoMenor1} object {expostoMenor2} } #declare canteiroAlto = difference { cylinder { <0,0,0.2> <0,0,0.4> 2.4 texture {pigment { color Brass }} } cylinder { <0,0,0.25> <0,0,0.41> 2.3 texture {pigment { color Brass }} } } #declare canteiroBaixo = union { cylinder { <0,0,0> <0,0,0.2> 2.2 texture {pigment { color Brass }} } } #declare canteiro = difference { union { object {canteiroAlto} object {canteiroBaixo} } box { <-0.6,-3,-0.1> <-3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } box { <0.6,-3,-0.1> <3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } } //object {canteiro} #declare escadas = difference { union { cylinder { <0,0,0> <0,0,0.05> 2.6 texture {pigment {color Brown}} } cylinder { <0,0,0.05> <0,0,0.1> 2.5 texture {pigment {color Brass}} } cylinder { <0,0,0.1> <0,0,0.15> 2.4 texture {pigment {color Brown}} } cylinder { <0,0,0.15> <0,0,0.2> 2.3 texture {pigment {color Brass}} } } box { <3,-0.9,-0.1> <-3,-3,2> texture { pigment { color Brown }} //normal {bumps 0.5 scale 0.001} } box { <-3,0.9,-0.1> <3,3,2> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } box { <0,-3,-0.1> <-3,3,2> texture { pigment { color Brown }} //normal {bumps 0.5 scale 0.001} } } object {escadas} #declare porta = box { <2.05,0.2,0.2> <1.95,-0.2,0.9> texture {pigment{color Brown}} } object {porta} #declare acimaPorta = box { <2.05,0.2,1.2> <1.95,-0.2,1.9> texture {pigment {color Brass}} } object {acimaPorta} #declare completaAcimaJanela = cylinder { <0,0,3.5> <0,0,4.5> 2.1 texture { pigment { color Brass }} } #declare janelaBaixa = difference { cylinder { <0,0,0.4> <0,0,1.9> 2.05 texture { Glass } } box { <0,-0.5,-0.1> <3,-3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } box { <0,0.5,-0.1> <3,3,5> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } box { <0,-3,-0.1> <-3,3,2> texture { pigment { color Brass }} //normal {bumps 0.5 scale 0.001} } } #declare faixaJanelaVertical = box { <2,-0.05,0.4> <2.1,0.05,4.7> texture {pigment {color Brass }} } #declare faixaJanelaHorizontal = cylinder { <0,0,1> <0,0,1.3> 2.1 texture {pigment {color Brass}} } #declare completaJanelaCima = box { <2,-0.05,2.5> <2.1,0.05,3.5> texture {pigment {color Brass }} normal {bumps 0.5 scale 0.001} } #declare janelaAlta = difference { cylinder { <0,0,2.5> <0,0,3.5> 2.05 texture { Glass } } box { <0,-0.5,-0.1> <3,-3,5> texture { pigment { color White }} //normal {bumps 0.5 scale 0.001} } box { <0,0.5,-0.1> <3,3,5> texture { pigment { color White }} //normal {bumps 0.5 scale 0.001} } box { <0,-3,-0.1> <-3,3,2> texture { pigment { color White }} //normal {bumps 0.5 scale 0.001} } } #declare janela1 = union { object {janelaAlta} object {janelaBaixa} object {faixaJanelaVertical} object {faixaJanelaHorizontal} object {completaAcimaJanela} } #declare janelas = union { object {janela1 rotate <0,0,60> } object {janela1 rotate <0,0,120> } object {janela1 rotate <0,0,180> } object {janela1 rotate <0,0,240> } object {janela1 rotate <0,0,300> } } object {janelas} object {janelaAlta} object {completaAcimaJanela} object {completaJanelaCima} #declare expostoCircularBaixo = union { cylinder { <0,0,2.45> <0,0,1.9> 2.1 texture {pigment {color Brass }} normal {bumps 0.5 scale 0.001} } cylinder { <0,0,2.45> <0,0,2.5> 2.2 texture {pigment { color Brass }} normal {bumps 0.5 scale 0.001} } } object {expostoCircularBaixo} #declare colunas = union { object {expostoMaior} object {expostoMaior rotate <0,0,60> } object {expostoMaior rotate <0,0,120> } } // No meio da base #declare expostoCircularMenor = cylinder { <0,0,4.5> <0,0,4.0> 2.4 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } #declare expostoCircularMedio = cylinder { <0,0,4.4> <0,0,4.1> 2.55 texture { pigment { color Brass }} normal {bumps 0.7 scale 0.01} } #declare expostoCircularMaior = cylinder { <0,0,4.65> <0,0,3.8> 2.3 texture { pigment { color Brass }} normal {bumps 0.5 scale 0.001} } #declare expostoCircular = union { object {expostoCircularMenor} object {expostoCircularMedio} object {expostoCircularMaior} } #declare monumento = union { object {base} object {topo} object {antena} } // PAVIMENTO #declare pavimento = plane{ z, -1 texture{ pigment{ color Gray50 } //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 } } // FUNDO background{ color rgb < 0.90, 0.92, 0.95 > } // EIXOS #declare eixos_cartesianos = union { cylinder { <0,0,0>, <4,0,0>, 0.5 pigment { color rgb <1,0,0> } } cylinder { <0,0,0>, <0,4,0>, 0.5 pigment { color rgb <0,1,0> } } cylinder { <0,0,0>, <0,0,4>, 0.5 pigment { color rgb <0,0,1> } } } //object { eixos_cartesianos } object { pavimento } object { monumento } object { praca} object {colunas} object {expostoCircular} object {detalheCircularSuperior} // CÂMARA #declare centro_da_cena = <0,0,4>; //centro_do_monumento; #declare raio_da_cena = 3.0; #declare direcao_da_camera = vnormalize( < 3, 2, 1 > ); #declare dist_da_camera = 6.0 * raio_da_cena; #declare pos_da_camera = centro_da_cena + dist_da_camera * direcao_da_camera; camera { location <16,0,4> // location 22,0,6> // right < -0.6, 0.00, 0.00 > // up < 0.00, 1.5, 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 { // 40 * raio_da_cena * direcao_da_luz // color rgb intens_da_luz * < 1.5, 1.5, 1.5 > //} light_source { <100,-100,130> color rgb intens_da_luz * < 1, 1, 1 > } light_source { <100,100,130> color rgb intens_da_luz * < 1, 1, 1 > } //light_source { <10,9,130> // color rgb intens_da_luz * < 1, 1, 1 > //} //CEU 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>] } 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 90*x }