//ALUNO: Pedro Henrique Machado Martins camera{ location < 15.00, 10, 5.00 > // Posi��o do observador. right -1.2*x // Largura RELATIVA da imagem. up 0.9*y // Altura RELATIVA da imagem. sky z // Qual dire��o � "para cima"? look_at < -2, 0, 0 > // Para onde a c�mera est� apontando. } // Nota: os par�metros "right" e "up" devem ter a mesma propor��o // que os par�metros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source{ 10 * < +50.0, +30.0, +50.0 > // Posi��o da l�mpada. color rgb 1.0 * < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } light_source{ 10 * < +50.0, -10.0, +10.0 > // Posi��o da l�mpada. color rgb 0.5 * < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } // ====================================================================== // EIXOS DE COORDENADAS #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end // ====================================================================== // CORES E TEXTURAS background{ color rgb < 1.00, 1.00, 1.00 > } //#include "nuvens.inc" #declare tx_plastico = texture{ pigment{ color rgb < 0.50, 0.50, 0.50 > } finish{ ambient 0.5 diffuse 0.5 reflection 0.25 * <1,1,1> } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 1.00, 1.00 > } finish{ ambient 0.1 diffuse 0.1 reflection 0.8 * <1,1,1> } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.90, 0.70 > } finish{ diffuse 0.1 reflection 0.8*< 1.00, 0.90, 0.70 > ambient 0.1 } } #declare tx_furo = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > filter 0.70 } finish{ diffuse 0.01 ambient 0.02} } #declare tx_vidro = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_world = texture{ pigment{ color rgb < 1.0, 1.0, 1.0 > } finish{ diffuse 0.01 ambient 0.02} } // ====================================================================== // DESCRI��O DA CENA /* Sintaxe: prism prism { conic_sweet bezier_spline altura 1 altura 2 nº de pontos ,,..., } lathe { bezier_spline nº de pontos ,,..., } */ #declare raio = 2.000; //Pontos da coluna 1 (lathe) #declare l11 = <0.50, 0.00>; #declare l12 = <0.25, 0.25>; #declare l13 = <0.15, 0.50>; #declare l22 = <0.15, 1.00>; #declare l23 = <0.25, 1.25>; #declare l14 = (l13 + l22)/2; #declare l21 = l14; #declare l32 = <0.40, 1.50>; #declare l33 = <0.30, 1.75>; #declare l34 = <0.50, 2.00>; #declare l24 = (l23 + l32)/2; #declare l31 = l24; #macro metade_coluna1 () union{ lathe{ bezier_spline 12 l11,l12,l13,l14,l21,l22,l23,l24, l31, l32, l33, l34 } } #end #macro coluna1 () union{ object{ metade_coluna1() texture {tx_plastico} rotate x*90 } object{ metade_coluna1() texture {tx_plastico} rotate x*(-90) } } #end //Pontos da coluna 2 (prism) #declare p11 = < 0.00, 1.00 >; #declare p12 = < -1.00, 1.00 >; #declare p13 = < -0.25, 0.25 >; #declare p14 = < -1.00, 0.00 >; #declare p21 = < -1.00, 0.00 >; #declare p22 = < -1.00, -1.00 >; #declare p23 = < -0.25, -0.25 >; #declare p24 = < 0.00, -1.00 >; #declare p31 = < 0.00, -1.00 >; #declare p32 = < 1.00, -1.00 >; #declare p33 = < 0.25, -0.25 >; #declare p34 = < 1.00, 0.00 >; #declare p41 = < 1.00, 0.00 >; #declare p42 = < 1.00, 1.00 >; #declare p43 = < 0.25, 0.25 >; #declare p44 = < 0.00, 1.00 >; #macro metade_coluna2 () union{ prism{ bezier_spline 0, 2, 16, p11,p12,p13,p14,p21,p22,p23,p24,p31,p32,p33,p34,p41,p42,p43,p44 } } #end #macro coluna2 () union{ object{ metade_coluna2() texture {tx_plastico} rotate x*90} object{ metade_coluna2() texture {tx_plastico} rotate x*90 translate z*(-2)} scale<0.50,0.50,0.00> } #end #macro metade_coluna3 () union{ prism{ conic_sweep bezier_spline -2.00, 0.50, 16, p11,p12,p13,p14,p21,p22,p23,p24,p31,p32,p33,p34,p41,p42,p43,p44 } } #end #macro coluna3 () union{ object{ metade_coluna3() texture {tx_plastico} rotate x*90 translate z*0.25 } object{ metade_coluna3() texture {tx_plastico} rotate x*(-90) translate z*(-0.25) } scale <0.25,0.25,0.00> } #end #macro box_maker (xi, yi, zi) box{ < xi, yi, zi >, < 0.0, 0.0, 0.0> texture { tx_plastico } } #end #macro bloco () union{ box_maker(7.50,5.00,0.50) } #end // Cena: union { object{ eixos(15.00) } //piso union{ object{ bloco() } } //colunas traseiras union{ object {coluna3() translate <1.0, 1.0, 2.25>} object {coluna3() translate <1.0, 4.0, 2.25>} } //colunas frontais union{ object {coluna2() translate <6.0, 1.5, 2.0>} object {coluna2() translate <6.0, 3.5, 2.0>} } //colunas laterais union{ object {coluna1() translate <2.5, 0.75, 2.0>} object {coluna1() translate <2.5, 4.25, 2.0>} object {coluna1() translate <3.5, 0.75, 2.0>} object {coluna1() translate <3.5, 4.25, 2.0>} object {coluna1() translate <4.5, 0.75, 2.0>} object {coluna1() translate <4.5, 4.25, 2.0>} } //teto union{ object{ bloco() scale <0.90,0.90,0.50> translate <0.125,0.25,3.75> } } }