// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2010-03-04 15:44:01 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare marrom = texture{ pigment{ color rgb < 1, 0.51, 0.23 > } finish{ diffuse 0.9 ambient 0.1 } } #declare verde = texture{ pigment{ color rgb < 0, 1, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare solo = texture{ pigment{ color rgb < 0, 0.8, 0 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA #declare cones = cone { < 0, 0, -0.6 >, 0.2, < 0, 0, 0.6 >, 0.3 } #declare cabeca = cone { < 0, 0, -0.8 >, 0.4, < 0, 0, 0.8 >, 0.7 } #declare pescoco = cone { < 0, 0, -0.3 >, 0.4, < 0, 0, 0.3 >, 0.6 } #declare tronco = cone { < 0, 0, -1.5 >, 0.55, < 0, 0, 1.5 >, 0.55 } #declare bolas = sphere { < 0, 0, 0 >, 0.3 } #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } // ====================================================================== #declare NQ = 6; #declare fase = array[NQ]; #declare fase[0] = 0; #declare fase[1] = 0.2; #declare fase[2] = 0.4; #declare fase[3] = 0.6; #declare fase[4] = 0.8; #declare fase[5] = 1; #declare aA = array[NQ]; #declare aA[0] = -20; #declare aA[1] = -20; #declare aA[2] = -20; #declare aA[3] = 0; #declare aA[4] = 0; #declare aA[5] = 0; #declare aB = array[NQ]; #declare aB[0] = -120; #declare aB[1] = -120; #declare aB[2] = -120; #declare aB[3] = 0; #declare aB[4] = 0; #declare aB[5] = 0; #declare aC = array[NQ]; #declare aC[0] = 110; #declare aC[1] = 110; #declare aC[2] = 110; #declare aC[3] = 0; #declare aC[4] = 0; #declare aC[5] = 0; #declare aD = array[NQ]; #declare aD[0] = -110; #declare aD[1] = 30; #declare aD[2] = -30; #declare aD[3] = 0; #declare aD[4] = 0; #declare aD[5] = 0; #declare aE = array[NQ]; #declare aE[0] = 10; #declare aE[1] = -90; #declare aE[2] = 0; #declare aE[3] = 0; #declare aE[4] = 0; #declare aE[5] = 0; #declare aF = array[NQ]; #declare aF[0] = 50; #declare aF[1] = 60; #declare aF[2] = -45; #declare aF[3] = 0; #declare aF[4] = 0; #declare aF[5] = 0; #declare aCorpo = array[NQ]; #declare aCorpo[0] = 30; #declare aCorpo[1] = 30; #declare aCorpo[2] = 30; #declare aCorpo[3] = 30; #declare aCorpo[4] = 0; #declare aCorpo[5] = 0; #macro interpola(f0, v0, f1, v1) #local ss = (f - f0)/(f1 - f0) #local rr = 1 - ss; (rr * v0 + ss * v1); #end #macro quadro_anterior(fase) #local i = 0; #while (i < numero_quadros - 1) #if((fase_quadro[i] <= fase) & (fase_quadro[i+1] >= fase)) #local resp = i; #end #end resp #end // ====================================================================== object{ chao translate < 0,0,-5 > texture{ solo } } #macro pe() union { object { bolas texture { marrom } } object { cones rotate 90 *x translate < 0, 0.8, 0> texture { marrom } } } #end #macro subperna(A) union { object{ pe() rotate A *x scale < 0.8, 0.8, 0.8 > translate < 0, 1.6, 0 >} object{ pe() } } #end #macro perna(A, B) union { object{ subperna(A) rotate B *x scale < 0.8, 0.8, 0.8 > translate < 0, 1.6, 0> } object{ pe() } } #end #macro membros(A1, B1, C1, A2, B2, C2, A3, B3, C3, A4, B4, C4) union { object { perna(A1, B1) rotate C1 *x translate < 0.8, 0, 1 > } object { perna(A2, B2) rotate C2 *x translate < -0.8, 0, 1 > } object { perna(A3, B3) rotate C3 *x scale < 0.8, 0.8, 0.8 > translate < 0.8, 3, 0.8 > } object { perna(A4, B4) rotate C4 *x scale < 0.8, 0.8, 0.8 > translate <-0.8, 3, 0.8 > } } #end #macro corpo(A1, B1, C1, A2, B2, C2, A3, B3, C3, A4, B4, C4) union{ object { membros(A1, B1, C1, A2, B2, C2, A3, B3, C3, A4, B4, C4) } object { pescoco rotate 175 *x translate < 0, 3.1, 1.6 > texture { marrom } } object { cabeca rotate 70 *x translate < 0, 3.6, 2.3 > texture { marrom } } object { tronco rotate 88 *x scale < 1.5, 1.5, 1.5 > translate < 0, 1.5, 0.8 > texture { marrom } } } #end #macro animal(A1, B1, C1, A1, B2, C2, A3, B3, C3, A4, B4, C4, D) object { corpo(A1, B1, C1, A1, B2, C2, A3, B3, C3, A4, B4, C4) rotate D *x translate < 0, 0, -4.5 > } #end //object { animal(110, -120, -20, 110, -120, -20, 50, 10, -110, 50, 10, -110, 30) } object { animal(110, -120, -20, 110, -120, -20, -20, 0, -30, -20, 0, -30, 30) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 1, 0, 0.2 >; #declare dist_camera = 50.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)