//Tiago Saad - 971717 //projeto #include "colors.inc" #include "textures.inc" background { color red 1 green 1 blue 1} sky_sphere{ pigment{ gradient y color_map{ [0 color rgb<0, 0, .5>] [1 color rgb<0, 0, .1>] } } } camera{ location<6, 2, 8> look_at<0, 0, 0> } /*light_source{ < 0, 10, 0 > color rgb <1, 1, 1> } */ light_source{ <10, 10, 10> color rgb<1, 1, 1> } // a grama que envolve o teatro plane{ y, 0 //texture { Blood_Marble } pigment {color rgb < 0, 1, 0 >} } //palco #declare alturapalco = .5 #declare raiopalco = 1.5 cylinder{ <0, .1, 0> <0, alturapalco + .1, 0> raiopalco pigment { color rgb < .5, .5, .5> } } // chao do teatro #declare raiochao = 3 cylinder { < 0, 0, 0 > < 0, .3, 0 > raiochao pigment { color rgb < .8, .8, .8> } } //arquibancada #declare raioarq = 6 #declare todaarq = sphere{ < 0, 0, 0 > raioarq pigment { color rgb < .5, .5, .5 > } } #declare arquibancada = difference{ // bola inteira object{todaarq} // corto a parte de cima box { < -raioarq , raioarq, -raioarq> < raioarq, 0, raioarq> } // tenho uma meia esfera } #declare arqfora= object{arquibancada scale < .3, .5, .5 > rotate < 30, 0, 0 > translate < 0, 0, -2.5 > pigment { color rgb < 0.5, 0.5, .5>} } #declare arqdentro= object{arquibancada scale < .27, .51, .45 > rotate < 30, 0, 0 > translate < 0, .01, -2.5 > pigment { color rgb < 0, 0, 1>} } #declare alturamastro = 4 #declare arq1= union{ // murinho da arquibancada difference{ object{arqfora} object{arqdentro} } // mastro box{ < -.2, alturamastro, -.2> < .2, -alturamastro, .2> pigment{ color rgb < .8, .8, .8 >} rotate < 0, 0, 15 > translate < 5.5, 0, 0> } // dentro da arquibancada ( bancos lisos ) object { arqdentro translate < 0, -.01, 3 > rotate < -10, 0, 0> translate < 0, .01, -3 > pigment { color rgb < .8, .8, .8 > } } // bases para as luzes nos mastros sphere { < 0, 0, 0 > .15 pigment { color rgb < .5, .5, .5 >} scale < 1, 2, 1 > translate < 5.2, alturamastro/2, 0 > rotate < 0, 0, 15 > } // luzes nos mastros light_source{ <0, 0, 0> color rgb<.2, .2, .2> translate < 5.1, alturamastro/2, 0 > rotate < 0, 0, 18 > } } // criando as 4 arquibancadas object{ arq1 } object{ arq1 rotate < 0, 90, 0 > } object{ arq1 rotate < 0, 180, 0> } object{ arq1 rotate < 0, 270, 0> } // criando o octógono de cima #declare a = 1.0; #declare b = 2.41; #declare altOct = .4; #declare octogono = prism { linear_sweep -altOct/2 // vai de.. altOct, // até 9, < b,a >, < a,b >, < -a,b >, < -b,a >, < -b,-a >, <-a,-b >, < a,-b >, < b,-a>, < b,a > pigment{ color rgb < .5, .5, .5> } } #declare octogonoCima = difference{ object{ octogono } object{ octogono scale < .8, 2, .8> } } #declare Yoct = 3 object{octogonoCima translate < 0, Yoct, 0> no_shadow } // criando os hastes que as hastes que sustentam o octógono declare haste = box{ <.99*b, altOct/2, a/5> <-.99*b, -altOct/2, -a/5> pigment{ color rgb < 1, 1, 1>} translate < 0, Yoct, 0 > } object{haste no_shadow} object{haste rotate<0, 90, 0> no_shadow} // pequeno octogono localizado no centro das hastes object {octogono scale < .2, .01, .2> // fica fino e menor translate < 0, Yoct - altOct/2 , 0 > // vai para a altura certa } // holofote central #declare raiohol = .2 #declare holofote = union { difference{ // crio uma... sphere { < 0, 0, 0 > raiohol pigment { color rgb < 0, .5, 0 > } } sphere { < 0, 0, 0 > raiohol pigment { color rgb < .5, .5, 0 > } scale < .99, .99, .99 > } box { < 2* raiohol, -2*raiohol, 2*raiohol > < -2* raiohol, 0, -2*raiohol > pigment { color rgb < 0, .5, 0 > } } scale < .5, 1, .5 > // estico } // ... semi-esfera cortada e esticada cylinder { < 0, raiohol, 0 > < 0, 2*raiohol, 0 > raiohol/5 pigment { color rgb < 0, .5, 0 > } } no_shadow } object { holofote translate < 0, Yoct - 3*altOct/2 , 0 > no_shadow } // sai luz omni deste holofote light_source{ <0, 0, 0> color rgb<1, 1, 1> translate < 0, Yoct - 2*altOct , 0 > } // murinhos entre as arquibancadas #declare muros = box{ <.6, .8, .01> <-.6, 0, -.01> pigment { color rgb < .3, .3, .3 > } } object { muros rotate < 0, 45, 0 > translate < .75*raiochao, 0, 0.75*raiochao > } object { muros rotate < 0, 45, 0 > translate < -.75*raiochao, 0, -0.75*raiochao > }