// Last edited on 2003-12-09 01:58:12 by stolfi #declare YCH = -3.5; #declare ctr = <-4.5, 2, 0 >; #declare camDir = < -6,5,8 >; // #declare camDir = < -4,12,3.5 >; // sphere{ ctr, 2 texture{ pigment{ color rgb <1,0,1> } finish { ambient 0.6 diffuse 0.4 } } } camera { location ctr + 1.50*camDir right -1.00*x up 0.75*y sky y look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 10 * < -20.0, +80.0, +20.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. area_light 10*<5, 0, 0>, 10*<0, 0, 5>, 3,3 adaptive 1 } // ====================================================================== // DESCRIÇÃO DA CENA /*------------------------CONFIGURACOES GERAIS DO AMBIENETE-------------------------------*/ background{ color rgb < 0.75, 0.80, 0.85 > } //rgbf (filter) rgbt (transmit) //*--TEXTURA SKY <--tutorial #declare Clouds0 = pigment{ gradient y color_map { [0 color <0,0,1>] [1 color <0.4,0.5,0.7>] } scale 2 translate -1 } #declare Clouds1 = pigment { bozo turbulence 0.2 color_map { [0.0 color rgb <1,1,1> filter 1] [0.5 color rgb <1,1,1>] [1.0 color rgb <1,1,1> filter 1] } } #declare Clouds4 = pigment { granite turbulence 1 color_map { [0.0 color rgb <1,1,1> filter 1] [0.5 color rgb <1,1,1>] [1.0 color rgb <1,1,1> filter 1] } } sky_sphere{ pigment { Clouds0} pigment {Clouds1 scale 0.5} } // fog { // fog_type 2 // distance 100 // color rgb 0.6 // gray // fog_offset 0.1 // fog_alt 0.6 // turbulence 0.8 // } /*------------------------------FIM DESCRICAO MEI AMBIENTE--------------------------*/ /*------------------------------------PISO---------------------------*/ #declare piso = plane{ y, YCH texture{ pigment{ checker color rgb <0.7,0.6,0.5>, color rgb <0.6,0.5,0.2> } finish{ diffuse 0.7 ambient 0.3 } scale 2 } } /*------------------------------------------------------------------*/ /*-----------------------------------TEXTURAS------------------------------*/ #declare cor_inseto= texture{ pigment{ gradient x color_map { [0 color <0.2,0.8,0.0>] [1 color <1,0.9,0.1>] } } } #declare cor_juntas= texture{ pigment {color rgb <0.9,0.1,0.1>} } #declare sup_mato = texture{ pigment { wood //turbulence 0.1 color_map{ [0.00 color rgb <0.9,0.9,0.0>] [0.25 color rgb <1,1,0>] [0.50 color rgb <0.95,0.55,0.0>] [0.75 color rgb <0.9,0.98,0>] [1.00 color rgb <1,1,0>] } scale 0.5 } } /*---------------------------FIM--TEXTURAS-------------------------------------*/ /*---------------------------ELEMNTOS ADICIONAIS DA CENA------------------------*/ #declare troncos = cylinder { <0,0,0> <0,0,1> 2 texture {sup_mato} normal {dents 1.5 scale 0.3} rotate -x*90 } /*-------------------------------FIM ELEMNOS ADICIONAIS-------------------------*/ /**----------------CLOCKS---------------------*/ #declare clk1=clock/0.25; #declare clk2=(clock-0.25)/(1-0.25); #declare clk3=(clock-0.5)/(1-0.5); #declare clk4=(clock-0.75)/(1-0.75); #if(clock<=0.25) #declare par_up=1; #end /*#if (clock>0.25)&(clock<=0.5) #if (clock>0.5)&(clock<=0.75) #if (clock>0.75)&(clock<=1.0)*/ /*-----------------------*/ /*--------------------LOOP "WHILE" PARA GERAR PERNAS NAS POSICOES ALEATORIAS------*/ #declare R1 = seed (34567); #declare dy=1.5; #declare posy=0.6; #declare conta=0; #while(conta<8) #declare a=95*rand(R1)-50; #declare b=95*rand(R1)-50; #declare c=95*rand(R1)-50; #declare e=10*rand(R1)-10; #declare perna0= union{ sphere { <0,0,0> 0.3 texture {cor_juntas} } cylinder { <0,0,0> <-2,0,0> 0.2 texture {cor_inseto} normal {bumps 0.5 scale 0.1} } cylinder { <0,0,0> <-.2,0,0> 0.6 scale y*1.2 translate <-2,0.5,0> pigment {color rgb <0.9,0.3,0.3>} normal {bumps 0.5 scale 0.1} } } #declare perna1= union{ union{ sphere { <0,0,0> 0.35 texture {cor_juntas} } cylinder { <0,0,0> <-1.5,0,0> 0.2 texture {cor_inseto} normal {bumps 0.5 scale 0.1} } } object {perna0 rotate z*a rotate y*e translate x*-1.5} } #declare perna2= union{ union{ sphere { <0,0,0> 0.4 texture {cor_juntas} } cylinder { <0,0,0> <-2.5,0,0> 0.3 texture {cor_inseto} normal {bumps 0.5 scale 0.1} } } object {perna1 rotate z*b translate x*-2.5} } #declare perna3= union{ union{ sphere { <0,0,0> 0.45 texture {cor_juntas} } cylinder { <0,0,0> <-2,0,0> 0.3 texture{cor_inseto} normal {bumps 0.5 scale 0.1} } } object {perna2 rotate z*90 rotate z*c translate x*-2} } /*-----------------PERNAS COMPLETAS---------------------*/ #if (conta<=3) #if((conta=0) | (conta=2)) object {perna3 rotate <90,90,90> rotate x*clock*-30 rotate ((1-clock)-30+clock*60)*y translate <-posy,2,0.3>} #else object {perna3 rotate <90,90,90> rotate x*clock*-30 rotate ((1-clock)-30+clock*60)*y translate <-posy,2,0.3>} #end #end #if(conta=4) #declare posy=0.6; #end #if(conta>=4) #if ((conta=4) | (conta=6)) object {perna3 rotate <-90,-90,90> rotate x*clock*30 rotate y*clock*-90 translate <-posy,2,-0.3>} #else object {perna3 rotate <-90,-90,90> rotate x*clock*60 rotate y*clock*-90 translate <-posy,2,-0.3>} #end #end /*------------------------------------------------------*/ #declare posy=posy+dy; #declare conta=conta+1; #end /*-----------------------------------END DO WHILE LOOP--------------------------*/ /*------------------------OBJETOS DO CORPO DO INSETO--------------------------------*/ #declare olhos = sphere { <0,0,0> 0.4 pigment{checker color rgb <0.2,0.2,0.1> color rgb <0.8,0.8,0.9> scale 0.1} finish { phong 0.8 //reflection 0.8 } } #declare antena= union{ cylinder{ <0,0,0> <0,5,0> 0.1 scale x*1.3 } sphere{ <0,0,0> 0.2 scale y*2 translate y*5 pigment {color rgb<1,1,1>} finish {phong 0.8} } } #declare cabeca= union{ sphere{ <0,0,0> 1 scale x*1.5 } object {antena rotate <-10,0,20> translate z*-0.2 } object {antena rotate <10,0,20> translate z*0.2 } object {olhos translate <-0.6,0.2,-1>} object {olhos translate <-0.6,0.2,1>} rotate z*-90 } #declare corpo = union{ lathe{ cubic_spline 13 <0,0>,<0.5,0.25>,<0.75,0.5>,<1,0.9>,<0.5,1.75> <0.52,3.5>,<0.4,4>,<0.25,4.3>,<0.4,4.6>,<0.6,5> <0.8,6>,<0.5,6.75>,<0.25,6.8> } object {cabeca translate y*7.8} pigment {color rgb <0.9,0.3,0.3>} normal {dents 2.0 scale 0.25} normal {bumps 0.5 scale 0.4} } /*------------------------------FIM OBJETOS DO CORPO---------------------------------*/ /*-----------------------DESCRICAO DA CENA-----------------------------------------*/ object {corpo rotate z*90 translate y*2} object {piso} object {troncos scale 2 translate <4,YCH,8>} object {troncos scale y*15 scale 2 translate <16,YCH,4>} object {troncos scale y*55 scale 2 translate <50,YCH,-80>} /*------------------------------------------------------------------------*/