// 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.5 * < 14.00, 7.50, 7.50 > // Posição do observador. right -0.90*x // Largura RELATIVA da imagem. up 1.2*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 12.00, 8.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 #include "nuvens.inc" //background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.40, 0.40 > } finish{ diffuse 0.5 reflection 0.8*< 0.80, 0.80, 0.00 > ambient 0.1 } } #declare tx_amarelo = texture{ pigment{ color rgb < 1.00, 0.80, 0.20 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_cinza = texture{ pigment{ color rgb < 0.60, 0.60, 0.60 > } finish{ diffuse 0.9 ambient 0.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_vidro = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.50 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } // ====================================================================== // DESCRIÇÃO DA CENA #include "retalho.inc" #declare a11 = < 1,-3.5,0 >; #declare a12 = < 1,-3,0 >; #declare a13 = < 1,-1,0 >; #declare a21 = < 2,-3.5,0 >; #declare a22 = < 2,-3,1 >; #declare a23 = < 2,-1,2 >; #declare a31 = < 6,-3.5,0 >; #declare a32 = < 6,-3,1 >; #declare a33 = < 6,-1,2 >; #declare a41 = < 7,-3.5,0 >; #declare a42 = < 7,-3,0 >; #declare a43 = < 7,-1,0 >; #declare b12 = < 1,1,1 >; #declare b13 = < 1,3,1 >; #declare b22 = < 2,1,3 >; #declare b23 = < 2,3,3.5 >; #declare b32 = < 6,1,3 >; #declare b33 = < 6,3,3.5 >; #declare b42 = < 7,1,1 >; #declare b43 = < 7,3,1 >; #declare c12 = < 1,5,0 >; #declare c13 = < 1,7,0 >; #declare c22 = < 2,5,4 >; #declare c23 = < 2,7,4 >; #declare c32 = < 6,5,4 >; #declare c33 = < 6,7,4 >; #declare c42 = < 7,5,0 >; #declare c43 = < 7,7,0 >; #declare d12 = < 1,9,1 >; #declare d13 = < 1,11,1 >; #declare d22 = < 2,9,3.5 >; #declare d23 = < 2,11,3 >; #declare d32 = < 6,9,3.5 >; #declare d33 = < 6,11,3 >; #declare d42 = < 7,9,1 >; #declare d43 = < 7,11,1 >; #declare e12 = < 1,13,0 >; #declare e13 = < 1,15,0 >; #declare e14 = < 1,15.5,0 >; #declare e22 = < 2,13,2 >; #declare e23 = < 2,15,1 >; #declare e24 = < 2,15.5,0 >; #declare e32 = < 6,13,2 >; #declare e33 = < 6,15,1 >; #declare e34 = < 6,15.5,0 >; #declare e42 = < 7,13,0 >; #declare e43 = < 7,15,0 >; #declare e44 = < 7,15.5,0 >; #declare a14 = (a13 + b12) / 2; #declare a24 = (a23 + b22) / 2; #declare a34 = (a33 + b32) / 2; #declare a44 = (a43 + b42) / 2; #declare b11 = (a13 + b12) / 2; #declare b21 = (a23 + b22) / 2; #declare b31 = (a33 + b32) / 2; #declare b41 = (a43 + b42) / 2; #declare b14 = (b13 + c12) / 2; #declare b24 = (b23 + c22) / 2; #declare b34 = (b33 + c32) / 2; #declare b44 = (b43 + c42) / 2; #declare c11 = (b13 + c12) / 2; #declare c21 = (b23 + c22) / 2; #declare c31 = (b33 + c32) / 2; #declare c41 = (b43 + c42) / 2; #declare c14 = (c13 + d12) / 2; #declare c24 = (c23 + d22) / 2; #declare c34 = (c33 + d32) / 2; #declare c44 = (c43 + d42) / 2; #declare d11 = (c13 + d12) / 2; #declare d21 = (c23 + d22) / 2; #declare d31 = (c33 + d32) / 2; #declare d41 = (c43 + d42) / 2; #declare d14 = (d13 + e12) / 2; #declare d24 = (d23 + e22) / 2; #declare d34 = (d33 + e32) / 2; #declare d44 = (d43 + e42) / 2; #declare e11 = (d13 + e12) / 2; #declare e21 = (d23 + e22) / 2; #declare e31 = (d33 + e32) / 2; #declare e41 = (d43 + e42) / 2; #declare raio = 2.000; // Exemplos: #declare roda = union{ cylinder{ < 0.00, 0.00, 0.00 >, < +1.00, 0.00, 0.00 >, 1 texture{ tx_cinza } } cylinder{ < 0.90, 0.00, 0.00 >, < +1.10, 0.00, 0.00 >, 0.5 texture{ tx_vidro } } } #declare ex_esfera = cylinder{ < -2.00, +2.00, -1.00 >, < +2.00, -2.00, +1.00 >, 0.75 texture{ tx_fosca } } #declare ex_caixa = box{ < +0.00, +0.00, +3.00 >, < +3.00, +3.00, +0.00 > texture{ tx_fosca } } #declare ex_diferenca = difference{ object{ ex_caixa } union{ object{ ex_esfera } object{ ex_caixa } } } // Aqui está a cena, finalmente: retalho(a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44, tx_vidro, tx_fosca) retalho(b11, b12, b13, b14, b21, b22, b23, b24, b31, b32, b33, b34, b41, b42, b43, b44, tx_vidro, tx_vidro) retalho(c11, c12, c13, c14, c21, c22, c23, c24, c31, c32, c33, c34, c41, c42, c43, c44, tx_vidro, tx_fosca) retalho(d11, d12, d13, d14, d21, d22, d23, d24, d31, d32, d33, d34, d41, d42, d43, d44, tx_vidro, tx_vidro) retalho(e11, e12, e13, e14, e21, e22, e23, e24, e31, e32, e33, e34, e41, e42, e43, e44, tx_vidro, tx_fosca) object{ roda translate < 6 , 2, -0.4 > } object{ roda translate < 6 , 10, -0.4 > } object{ roda rotate 180 * z translate < 1 , 2, -0.4 > } object{ roda rotate 180 * z translate < 1 , 10, -0.4 > }