// MC930 - Laboratorio 7 // Douglas Gardim RA: 008506 // // ====================================================================== // CÂMERA camera { location < 110.00, 60.00, 200.00 > // Posição do observador. //location < 0.00, 160.00, 0.00 > // Posição do observador. right -1.00*x // Largura RELATIVA da imagem. up 0.50*y // Altura RELATIVA da imagem. sky y // Qual direção é "para cima"? look_at < 0.00, 30.00, 0.00 > // Para onde a câmera está apontando. angle 40 } // 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 * < +15.0, +5.0, +5.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 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.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.25, 0.20, 0.85 > } #declare textura1 = texture { pigment {color rgb <0.5,0.5,0.5>} finish { ambient 0.2 diffuse 0.8 reflection 0.1 specular 0.90 roughness 0.005 } } #declare textura2 = texture { pigment {color rgb <0.8,0.5,0.5>} finish { ambient 0.2 diffuse 0.8 reflection 0.1 specular 0.90 roughness 0.005 } } #declare textura3 = texture { pigment {color rgb <0.8,0.5,0.5>} finish { ambient 0.2 diffuse 0.8 reflection 0.1 specular 0.90 roughness 0.005 } } #declare raioArtic = 3; #declare segBracoSize = 20; #declare baseH = 5; #declare T0 = 0; #declare T1 = 0.3; #declare T2 = 0.6; #declare T3 = 1; #declare a50 = 65; #declare a51 = 25; #declare a52 = 0; #declare a53 = 0; #declare a40 = -20; #declare a41 = -90; #declare a42 = -90; #declare a43 = -50; #declare a30 = -20; #declare a31 = -40; #declare a32 = -40; #declare a33 = -40; #declare a20 = -20; #declare a21 = -40; #declare a22 = -40; #declare a23 = -40; #declare a10 = 0; #declare a11 = 35; #declare a12 = 35; #declare a13 = 15; #declare b10 = 0; #declare b11 = 0; #declare b12 = 0; #declare b13 = a43 - a42; #if (clock < T1) #declare a1 = a10 + (a11 - a10)/(T1 - T0)*(clock-T0); #declare a2 = a20 + (a21 - a20)/(T1 - T0)*(clock-T0); #declare a3 = a30 + (a31 - a30)/(T1 - T0)*(clock-T0); #declare a4 = a40 + (a41 - a40)/(T1 - T0)*(clock-T0); #declare a5 = a50 + (a51 - a50)/(T1 - T0)*(clock-T0); #declare b1 = b10 + (b11 - b10)/(T1 - T0)*(clock-T0); #else #if (clock < T2) #declare a1 = a11 + (a12 - a11)/(T2 - T1)*(clock-T1); #declare a2 = a21 + (a22 - a21)/(T2 - T1)*(clock-T1); #declare a3 = a31 + (a32 - a31)/(T2 - T1)*(clock-T1); #declare a4 = a41 + (a42 - a41)/(T2 - T1)*(clock-T1); #declare a5 = a51 + (a52 - a51)/(T2 - T1)*(clock-T1); #declare b1 = b11 + (b12 - b11)/(T2 - T1)*(clock-T1); #else #declare a1 = a12 + (a13 - a12)/(T3 - T2)*(clock-T2); #declare a2 = a22 + (a23 - a22)/(T3 - T2)*(clock-T2); #declare a3 = a32 + (a33 - a32)/(T3 - T2)*(clock-T2); #declare a4 = a42 + (a43 - a42)/(T3 - T2)*(clock-T2); #declare a5 = a52 + (a53 - a52)/(T3 - T2)*(clock-T2); #declare b1 = b12 + (b13 - b12)/(T3 - T2)*(clock-T2); #end #end #declare segBraco = union { cylinder { <0, 0, 0>, , 2 texture {textura1} } sphere { , raioArtic texture {textura2} } } #declare meiaGarra = object { difference { cone { <0, 0, 0>, 2, <0, 10, 0>, 0.5 } box { <-10, -1, -10>, <0, 11, 10> } } rotate 90*z texture {textura1} } #declare garra = object { union { object {meiaGarra rotate -a1*z} object {meiaGarra rotate 180*x rotate a1*z} } rotate 180*y } #declare braco1 = union { object {segBraco} object {garra translate (raioArtic*0.6)*x rotate a2*z translate segBracoSize*x} } #declare braco2 = union { object {segBraco} object {braco1 rotate a3*z translate segBracoSize*x} } #declare braco3 = union { object {segBraco} object {braco2 rotate a4*z translate segBracoSize*x} } #declare xBraco = -8; #declare base = union { box { <-15,0,-15>, <15, baseH, 15> texture {textura1} } object {braco3 rotate 90*z rotate a5*y translate } object {braco3 rotate 90*z rotate a5*y scale <1,1,-1> translate } } #declare xMeliante = 28; #declare meliante = cylinder { <0,0,0>,<0,30,0>,6 texture {textura3} #declare tY = segBracoSize + baseH; translate rotate b1*z translate } // Aqui está a cena, finalmente: plane {y, 0 texture { pigment{checker <0.2,0.2,0.2>,<0.3,0.3,0.3>} finish {ambient 0.2 diffuse 0.8 reflection 0.05} scale 30.0 } } union { object {base} object {meliante} //rotate 45*y }