// ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_chocolate = texture{ pigment{ color rgb < 0.89, 0.69, 0.19 > } finish{ diffuse 0.8 roughness 0.5 } } #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.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } // ====================================================================== // DESCRIÇÃO DA CENA #declare raio = 2.000; // Partes da cena: #declare biscoito = torus{ 0.8, 0.7 rotate < 90,0,0 > translate < 8,0,2 > texture{ tx_chocolate } } #declare conexao = sphere{ < 0,0,0 >, 1.00 } #declare lowerarm = cylinder{ < 0,0,0 >, < 8,0,0 >, 1.00 } #declare lowerhand = box{ < 7,-0.5,0.5 >, < 8,0.5,1.2 > } #declare upperarm = cylinder{ < 2,0,0 >, < 8,0,0 >, 1.00 } #declare upperhand= box{ < 7,-0.5,0.8 >, < 8,0.5,1.5 > } #declare bolinha = sphere{ < 0,0,0 >, 0.60 } #declare bolota = sphere{ < 0,0,0 >, 1.50 } #declare bola = sphere{ < 0.00, 0.00, 0.00 >, raio texture{ tx_plastico } } #declare pino = cylinder{ < -2.00, +2.00, -1.00 >, < +2.00, -2.00, +1.00 >, 0.75 texture{ tx_fosca } } #declare furo = cylinder{ < -1.00, -2.00, -2.00 >, < +1.00, +2.00, +2.00 >, 0.75*raio texture{ tx_fosca } } #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } // ====================================================================== // MACROS #macro movearm() union{ object{ conexao translate < 1,0,4 > texture{ tx_espelho } } object{ upperarm translate < 0,0,4 > texture{ tx_plastico } } object{ upperhand translate < 0,0,2 > texture{ tx_espelho } } } #end #macro fixedarm() union{ object{ lowerarm texture{ tx_plastico } } object{ lowerhand texture{ tx_espelho } } object{ conexao translate < 1,0,2 > texture{ tx_espelho } } object{ conexao translate < 0,0,3 > texture{ tx_espelho } } } #end // A,B,C definem translacao, D,E,F definem rotacao, G define movimentacao do braco superior #macro pick_biscuit( A, B, C, D, E, F, G ) union{ object{ fixedarm() translate -< 1,0,4 > rotate < D,E,F > translate < A+1,B,C+4 > } object{ movearm() translate -< 1,0,4 > rotate < D,E+G,F > translate < A+1,B,C+4 > } } #end // ====================================================================== #include "eixos.inc" // Aqui está a cena, finalmente: union{ object{ biscoito } object{ pick_biscuit( 0,0,0,0,0,0,0 ) } object{ pick_biscuit( 0,3,0,0,0,0,0 ) } object{ pick_biscuit( 0,6,0,0,0,0,-20 ) } object{ pick_biscuit( 0,9,0,0,0,0,-40 ) } object{ pick_biscuit( 0,12,0,0,0,0,-60 ) } } #include "camlight.inc" #declare centro_cena = < 0.00, 3.00, 3.00 >; #declare raio_cena = 12.0; #declare dir_camera = < 14.00, 7.00, 4.00 >; #declare dist_camera = 55.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)