// ====================================================================== // CÂMERA camera{ location 1.5*< 14.00, 8.00, 2.50 > // Posição do observador. right -0.60*x // Largura RELATIVA da imagem. up 0.60*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 6.5, 0.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{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.9, 0.8 > } finish{ diffuse 0.6 ambient 0.2 } } #declare tx_azul = texture{ pigment{ color rgb < 0, 0, 0 > } finish{ ambient 0.2 diffuse 0.3 reflection 0.5*<1,1,1> } } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #include "retalho.inc" #include "nuvens.inc" #macro lado() // dois primeiros #declare p11 = <1,1,0.3>; #declare p12 = <1,2,4>; #declare p13 = <1,3,4>; //#declare p14 = <1,4,0>; #declare p21 = <2,1,0.3>; #declare p22 = <2,2,4>; #declare p23 = <2,3,4>; //#declare p24 = <2,4,0>; #declare p31 = <3,1,0>; #declare p32 = <3,2,3>; #declare p33 = <3,3,3>; //#declare p34 = <3,4,0>; #declare p41 = <4,1,-0.3>; #declare p42 = <4,2,0>; #declare p43 = <4,3,1>; //#declare p44 = <4,4,0>; /*#declare q11 = p14;*/ #declare q12 = <1,2+3,4>; #declare q13 = <1,3+3,4>;// #declare q14 = <1,4+3,0.6>; /*#declare q21 = p24;*/ #declare q22 = <2,2+3,4>; #declare q23 = <2,3+3,4>;// #declare q24 = <2,4+3,0.6>; /*#declare q31 = p34;*/ #declare q32 = <3,2+3,3>; #declare q33 = <3,3+3,3>;// #declare q34 = <3,4+3,0.3>; /*#declare q41 = p44;*/ #declare q42 = <4,2+3,1>; #declare q43 = <4,3+3,0>;// #declare q44 = <4,4+3,0>; #declare p14 = (p13+q12)/2; #declare p24 = (p23+q22)/2; #declare p34 = (p33+q32)/2; #declare p44 = (p43+q42)/2; #declare q11 = p14; #declare q21 = p24; #declare q31 = p34; #declare q41 = p44; // outros dois /*#declare r11 = <1,1+6,0.6>;*/ #declare r12 = <1,2+6,3>; #declare r13 = <1,3+6,2.5>; //#declare r14 = <1,4,0>; /*#declare r21 = <2,1+6,0.6>;*/ #declare r22 = <2,2+6,3>; #declare r23 = <2,3+6,2.5>; //#declare r24 = <2,4,0>; /*#declare r31 = <3,1+6,0.3>;*/ #declare r32 = <3,2+6,2>; #declare r33 = <3,3+6,1.5>; //#declare r34 = <3,4,0>; /*#declare r41 = <4,1+6,-0.3>;*/ #declare r42 = <4,2+6,0>; #declare r43 = <4,3+6,1>; //#declare r44 = <4,4,0>; #declare q14 = (q13+r12)/2; #declare q24 = (q23+r22)/2; #declare q34 = (q33+r32)/2; #declare q44 = (q43+r42)/2; #declare r11 = q14; #declare r21 = q24; #declare r31 = q34; #declare r41 = q44; /*#declare s11 = r14;*/ #declare s12 = <1,2+9,2>; #declare s13 = <1,3+9,2>; #declare s14 = <1,4+9,0.6>; /*#declare s21 = r24;*/ #declare s22 = <2,2+9,2>; #declare s23 = <2,3+9,2>; #declare s24 = <2,4+9,0.6>; /*#declare s31 = r34;*/ #declare s32 = <3,2+9,1>; #declare s33 = <3,3+9,1>; #declare s34 = <3,4+9,0.3>; /*#declare s41 = r44;*/ #declare s42 = <4,2+9,1>; #declare s43 = <4,3+9,0>; #declare s44 = <4,4+9,0>; #declare r14 = (r13+s12)/2; #declare r24 = (r23+s22)/2; #declare r34 = (r33+s32)/2; #declare r44 = (r43+s42)/2; #declare s11 = r14; #declare s21 = r24; #declare s31 = r34; #declare s41 = r44; union{ retalho(p11,p12,p13,p14,p21,p22,p23,p24,p31,p32,p33,p34,p41,p42,p43,p44,tx_fosca,tx_azul) retalho(q11,q12,q13,q14,q21,q22,q23,q24,q31,q32,q33,q34,q41,q42,q43,q44,tx_fosca,tx_azul) retalho(r11,r12,r13,r14,r21,r22,r23,r24,r31,r32,r33,r34,r41,r42,r43,r44,tx_fosca,tx_azul) retalho(s11,s12,s13,s14,s21,s22,s23,s24,s31,s32,s33,s34,s41,s42,s43,s44,tx_fosca,tx_azul) } #end #macro carro() union{ object{ lado() translate -2*x } object{ lado() scale <-1,1,1> } } #end object { carro() rotate -30*z }