#include "colors.inc" #include "stones2.inc" #include "axis.inc" #include "luzes.inc" /************* CAMARA / LUZES *************/ camera { // Topo location <600,600,300> // Ornamento (no centro, y=200) //location <0,200,800> //look_at <0,200,0> // Portas //location <350,200,350> look_at <0,10,0> // Ornamentos //location <200,200,0> //look_at <0,200,0> //location } //light_source { // <150,200,150> // White //} /*light_source { <0,1000,0> White }*/ // ex 3: sky_sphere { pigment { gradient y color_map { [0.0 color rgb <0.7,0.7,1.0>] [1.0 color blue 0.5] }} } light_source { <100,0,0> // posicao da luz color White // cor da luz parallel // keyword que indica que o tipo de luz e direccional point_at < 0.2, -0.8, -0.4> // posicao para a qual aponta a luz } light_source { <0,150,0> White shadowless } global_settings { ambient_light rgb <0, 0, 0> } // fim do ex 3 // CAMARA/LUZES /******************************************/ /***************** MACROS *****************/ declare torre=union { box { <100,-10,-100> <-100,350,100> texture {T_Stone28 } } polygon { 4, <-100,350,100>,<0,450,0>,<100,350,100>,<-100,350,100> } polygon { 4, <100,350,-100>,<0,450,0>,<100,350,100>,<100,350,-100> } polygon { 4, <-100,350,-100>,<0,450,0>,<100,350,-100>,<-100,350,-100> } polygon { 4, <-100,350,100>,<0,450,0>,<-100,350,-100>,<-100,350,100> } pigment {color Blue } } declare bordo=box { <450,-10,-50> <-450,-15,50> texture {T_Stone29} } declare parede=box {<600,-10,-10> <-600,250,10> texture {T_Stone29 } } declare telhado = mesh2 { vertex_vectors { 7 <200,250,-600>, <200,250,600> <0,300,-600>, <0,300,0>, <0,300,600> <-200,250,-400>, <-200,250,400> } face_indices{ 6 <0,1,3>, <0,2,3>, <2,3,5>, <3,5,6>, <3,4,6>, <1,3,4> } pigment { color Red} } declare coluna = union { box { < 10, -8, 10> <-10,-10,-10> } //cilindro principal cone { <0,185,0>, 9 <0, -1,0>, 0 } cylinder { <0,163,0> <0,-1,0> 8 } cone { <0, -8,0>, 9 <0,170,0>, 0 } //RENDILHADOS cylinder { <0,10,0> <0,9,0> 9 } cylinder { <0,0,0> <0,-1,0> 9 } cylinder { <0,173,0> <0,163,0> 9 } cylinder { <0,173,0> <0,165,0> 10 } cylinder { <0,173,0> <0,167,0> 11 } torus { 11,1 translate 174*y } box { <10,185,10> <-10,200,-10> } texture {T_Stone32} } declare parcoluna = union { object {coluna translate -10*z } object {coluna translate +10*z } } declare ala_coluna = union { object{coluna translate -400*z} object{parcoluna translate -300*z} object{parcoluna translate -200*z} object{parcoluna translate -100*z} object{parcoluna} object{parcoluna translate +100*z} object{parcoluna translate +200*z} object{parcoluna translate +300*z} object{coluna translate +400*z} } declare porta = union { box { <-95,-10,-12> < 95,100, 12> } cylinder { <0,100,-12> <0,100, 12> 95 } texture {T_Stone29 } } declare parede_com_porta = difference { object { parede } object { porta } //pigment { color White } } declare ornamento = union { // os topos tem altura entre 200 e 250 // centro do cilindro principal a 200+5 cylinder { <0,205,-11> <0,205, 11> 12.5 scale x*2 } cylinder { <22.5,200,-11> <22.5,200, 11> 2.5 } cylinder { <-22.5,200,-11> <-22.5,200, 11> 2.5 } texture { T_Stone30 } } declare ala_ornamentos = union { object { ornamento translate -350*x } object { ornamento translate -250*x } object { ornamento translate -150*x } object { ornamento translate -50*x } object { ornamento translate 50*x } object { ornamento translate 150*x } object { ornamento translate 250*x } object { ornamento translate 350*x } } declare topos_coluna = difference { box { <410,200,-10> <-410,250,10> texture { T_Stone30 } } object { ala_ornamentos } } declare fonte_esfera_interior = sphere { <0,105,0> 100 } declare fonte_caixa = box { <100,0,100> <-100,25,-100> } declare fonte_esfera_exterior = sphere { <0,100,0> 100 } declare fonte = intersection { difference { object { fonte_esfera_exterior } object { fonte_esfera_interior } } object { fonte_caixa } texture { T_Stone30 } } declare fonte_agua = intersection { object { fonte_esfera_interior } object { fonte_caixa translate -2*y } texture { pigment {SeaGreen filter 1.33} } //normal { bumps 1 scale 0.05 } interior {ior 1.33} } declare cupula = difference { sphere { <0, 0, 0> 170 } sphere { <0, 0, 0> 165 } cylinder { <0,-200,175> <0,200,175> 70 } cylinder { <0,-200,175> <0,200,175> 70 rotate 90*y } cylinder { <0,-200,175> <0,200,175> 70 rotate -90*y } cylinder { <0,-200,175> <0,200,175> 70 rotate 180*y } pigment {White transmit 1} finish { reflection { 0.1 0.8 }} interior { ior 1.5 fade_distance 5 fade_power 1.5 fade_color <0,0,0> } translate -2*y } // MACROS /******************************************/ /********* DEFINICAO DE OBJECTOS **********/ /******* Chao *******/ plane { y,-30 pigment { checker color LightSteelBlue color Goldenrod scale 10 } } box {< 600,-15, 600> <-600,-20,-600> texture {T_Stone26} } /********************/ //testing //object { parede } //object { topos_coluna } //object { ornamento } //object { ala_ornamentos } //object { ala_coluna rotate 90*y} //object { parcoluna rotate 90*y} object { Axis30 } object {bordo} object {bordo rotate -90*y} object {bordo translate -400*z} object {bordo translate 400*z} object {bordo rotate -90*y translate -400*x} object {bordo rotate -90*y translate 400*x} object {parede_com_porta translate -610*z} object {parede_com_porta translate 610*z} object {parede_com_porta rotate -90*y translate -610*x} object {parede_com_porta rotate -90*y translate 610*x} object {parede translate -810*z} object {parede translate 810*z} object {parede rotate -90*y translate -810*x} object {parede rotate -90*y translate 810*x} object {topos_coluna translate -z*400} object {topos_coluna translate z*400} object {topos_coluna rotate -90*y translate -x*400} object {topos_coluna rotate -90*y translate x*400} object {telhado rotate 180*y translate -600*x} object {telhado translate 600*x} object {telhado rotate 90*y translate -600*z} object {telhado rotate -90*y translate 600*z} object {torre translate -700*z-700*x} object {torre translate 700*z-700*x} object {torre translate 700*z+700*x} object {torre translate -700*z+700*x} object{ala_coluna translate +400*x} object{ala_coluna translate -400*x} object{ala_coluna rotate 90*y translate +400*z} object{ala_coluna rotate 90*y translate -400*z} object { fonte } object { fonte_agua } object {cupula} // OBJECTOS /******************************************/