// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2009-03-09 18:44:03 by stolfi // ====================================================================== // CÂMERA camera{ location 1.8*< 14.00, 7.00, 3.50 > // Posição do observador. right -0.45*x // Largura RELATIVA da imagem. up 0.60*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 0.00, 1.00 > // 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 corda 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 corda 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{ } #declare tx_carro = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ diffuse 0.5 reflection 0.8*<1,1,1> ambient 0.1} } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.3 ambient 0.2 } } #declare tx_nada = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.90 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } // ====================================================================== // DESCRIÇÃO DA CENA #include "retalho.inc" #include "nuvens.inc" //bg_color{} //retalho1 #declare p11_1 = <-6,0,0>;//ponto esquerda baixo #declare p12_1 = <-5,0,3>;//esquerda baixo #declare p13_1 = <-3.5,0,0>;//direita baixo #declare p14_1 = <-3,0,0>;//ponto direita baixo #declare p21_1 = <-6,0.4,3>;//esquerda baixo #declare p22_1 = <-5,0.4,3>;//central baixo #declare p23_1 = <-4,0.4,3>;//central baixo #declare p24_1 = <-3,0.4,3>;//direita baixo #declare p31_1 = <-6,2,2>;//esquerda cima #declare p32_1 = <-5,2,2>;//central cima #declare p33_1 = <-4,2,2>;//central cima #declare p34_1 = <-3,2,2>;//direita cima #declare p41_1 = <-6,3,2>;//ponto esquerda cima #declare p42_1 = <-5,3,2>;//esquerda cima #declare p43_1 = <-4,3,2>;//direita cima #declare p44_1 = <-3,3,2>;//ponto direita cima //retalho2 #declare p11_2 = <-3,0,0>;//ponto esquerda baixo #declare p12_2 = <-2,0,0>;//esquerda baixo #declare p13_2 = <-1,0,0>;//direita baixo #declare p14_2 = <0,0,0>;//ponto direita baixo #declare p21_2 = <-3,0.4,1>;//esquerda baixo #declare p22_2 = <-2,0.4,2>;//central baixo #declare p23_2 = <-1,0.4,2>;//central baixo #declare p24_2 = <0,0.4,1>;//direita baixo #declare p31_2 = <-3,2,2>;//esquerda cima #declare p32_2 = <-2,2,2>;//central cima #declare p33_2 = <-1,2,2>;//central cima #declare p34_2 = <0,2,0>;//direita cima #declare p41_2 = <-3,3,1>;//ponto esquerda cima #declare p42_2 = <-2,3,1>;//esquerda cima #declare p43_2 = <-1,3,1>;//direita cima #declare p44_2 = <0,3,0>;//ponto direita cima //retalho 3 #declare p11_3 = <0,0,0>;//ponto esquerda baixo #declare p12_3 = <1,0,0>;//esquerda baixo #declare p13_3 = <2,0,1.5>;//direita baixo #declare p14_3 = <3,0,0>;//ponto direita baixo #declare p21_3 = <0,1,1>;//esquerda baixo #declare p22_3 = <1,1,1>;//central baixo #declare p23_3 = <2,1,1>;//central baixo #declare p24_3 = <3,1,0>;//direita baixo #declare p31_3 = <0,2,1>;//esquerda cima #declare p32_3 = <1,2,1>;//central cima #declare p33_3 = <2,2,1>;//central cima #declare p34_3 = <3,2,0>;//direita cima #declare p41_3 = <0,3,1>;//ponto esquerda cima #declare p42_3 = <1,3,1>;//esquerda cima #declare p43_3 = <2,3,1>;//direita cima #declare p44_3 = <3,3,0>;//ponto direita cima //retalho4 #declare p11_4 = <3,0,0>;//ponto esquerda baixo #declare p12_4 = <4,0,0>;//esquerda baixo #declare p13_4 = <5,0,0>;//direita baixo #declare p14_4 = <6,0,0>;//ponto direita baixo #declare p21_4 = <3,1,1>;//esquerda baixo #declare p22_4 = <4,1,1>;//central baixo #declare p23_4 = <5,1,1>;//central baixo #declare p24_4 = <6,1,0>;//direita baixo #declare p31_4 = <3,2,1>;//esquerda cima #declare p32_4 = <4,2,1>;//central cima #declare p33_4 = <5,2,1>;//central cima #declare p34_4 = <6,2,0>;//direita cima #declare p41_4 = <3,3,1>;//ponto esquerda cima #declare p42_4 = <4,3,1>;//esquerda cima #declare p43_4 = <5,3,1>;//direita cima #declare p44_4 = <6,3,0>;//ponto direita cima //encontros //R1R2 #declare p14_p11_R1R2 = (p13_1+p12_2)/2; #declare p24_p21_R1R2 = (p23_1+p22_2)/2; #declare p34_p31_R1R2 = (p33_1+p32_2)/2; #declare p44_p41_R1R2 = (p43_1+p42_2)/2; //R2R3 #declare p14_p11_R2R3 = (p13_2+p12_3)/2; #declare p24_p21_R2R3 = (p23_2+p22_3)/2; #declare p34_p31_R2R3 = (p33_2+p32_3)/2; #declare p44_p41_R2R3 = (p43_2+p42_3)/2; //R3R4 #declare p14_p11_R3R4 = (p13_3+p12_4)/2; #declare p24_p21_R3R4 = (p23_3+p22_4)/2; #declare p34_p31_R3R4 = (p33_3+p32_4)/2; #declare p44_p41_R3R4 = (p43_3+p42_4)/2; #macro metade_carro() union{ //R1 object {retalho(p11_1, p12_1, p13_1, p14_p11_R1R2, p21_1, p22_1, p23_1, p24_p21_R1R2, p31_1, p32_1, p33_1, p34_p31_R1R2, p41_1, p42_1, p43_1, p44_p41_R1R2, tx_fosca, tx_carro)} //R2 object {retalho(p14_p11_R1R2, p12_2, p13_2, p14_p11_R2R3, p24_p21_R1R2, p22_2, p23_2, p24_p21_R2R3, p34_p31_R1R2, p32_2, p33_2, p34_p31_R2R3, p44_p41_R1R2, p42_2, p43_2, p44_p41_R2R3, tx_fosca, tx_carro)} //R3 object {retalho(p14_p11_R2R3, p12_3, p13_3, p14_p11_R3R4, p24_p21_R2R3, p22_3, p23_3, p24_p21_R3R4, p34_p31_R2R3, p32_3, p33_3, p34_p31_R3R4, p44_p41_R2R3, p42_3, p43_3, p44_p41_R3R4, tx_fosca, tx_carro)} //R4 object {retalho(p14_p11_R3R4, p12_4, p13_4, p14_4, p24_p21_R3R4, p22_4, p23_4, p24_4, p34_p31_R3R4, p32_4, p33_4, p34_4, p44_p41_R3R4, p42_4, p43_4, p44_4, tx_fosca, tx_carro)} } #end // Aqui está a cena, finalmente: union{ //object{ eixos(3.00) } object{metade_carro() translate <-1, 0, 0>} object{metade_carro() scale<1,-1,1> translate <-1,3,0>} //rotate 100*z //rotate 30*y }