// Last edited on 2003-12-09 02:46:52 by stolfi #include "colors.inc" background{ color rgb < 1.0, 0.9, 0.8 > } #declare ctr = < 0.00, 0.00, 3.00 >; #declare camDir = < 15.00, 20.00, 10.00 >; camera { location ctr + 0.65*camDir right -1.20*x up 0.90*y sky z look_at ctr } light_source { < 20.00, 0.00, 20.00 > color rgb 1.2*< 1.00, 1.00, 1.00 > } light_source { < 0.00, 20.00, 20.00 > color rgb 0.6*< 1.00, 1.00, 1.00 > } #declare tinta_A = texture { pigment { color rgb < 0.40, 0.40, 0.60 > } finish { diffuse 0.05 specular 0.2 roughness 0.005 ambient 0.05 reflection color rgb < 0.4, 0.4, 0.60 >} } #declare tinta_P = texture { pigment { color rgb < 0.80, 0.75, 0.5> filter 0.5 } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare eye = sphere { <0,0,0> 0.4 texture { tinta_P } } #declare head = union { sphere { <0,0,0> 2 texture { tinta_A } } object {eye translate <2,0,0>} object {eye translate <2,1,0>} object {eye translate <2,-1,0>} object {eye translate <1.5,0,1>} object {eye translate <1.5,1,1>} object {eye translate <1.5,-1,1>} } #declare bodypart = difference { sphere { <0,0,0> 6 texture { tinta_A} } box { <7,-7,-7>, <-7,7,4> } } #declare body = union { object { bodypart translate <-6,0,0>} object { bodypart } } #union { object {body translate < 0,0,-4> }object {head translate <-4,0,2>}} #declare sd = seed (432546757); #declare ang1a = 10; #declare ang1b = 50; #declare ang2a = 30; #declare ang2b = 40; #declare ang3a = 20; #declare ang3b = 60; #declare ang4a = 15; #declare ang4b = 75; #declare ang5a = 0; #declare ang5b = 90; #declare ang6a = 20; #declare ang6b = 55; #declare z_angle = 45; #while (z_angle >= -45) #declare ang1 = ang1a+(ang1b-ang1a)*rand(sd); #declare ang2 = ang2a+(ang2b-ang2a)*rand(sd); #declare ang3 = ang3a+(ang3b-ang3a)*rand(sd); #declare ang4 = ang4a+(ang4b-ang4a)*rand(sd); #declare ang5 = ang5a+(ang5b-ang5a)*rand(sd); #declare ang6 = ang6a+(ang6b-ang6a)*rand(sd); #declare peh = union { sphere { <0,0,0> 0.5 texture { tinta_A}} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate ang1*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate x*60 rotate ang2*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate x*30 rotate ang3*x} rotate z*90 } #declare anteperna = union { cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {peh translate <0,4,0>} rotate x*ang4 } #declare anteperna2 = union { cylinder { <0,0,0> , <0,2,0> .3 texture {tinta_A}} object {anteperna translate <0,2,0>} rotate x*ang5 } #declare perna = union { cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {anteperna2 translate <0,4,0>} rotate x*ang6 } object {perna translate <0,4,0> rotate z*z_angle} #declare z_angle = z_angle - 15; #end #declare z_angle = 45; #while (z_angle >= -45) #declare ang1 = ang1a+(ang1b-ang1a)*rand(sd); #declare ang2 = ang2a+(ang2b-ang2a)*rand(sd); #declare ang3 = ang3a+(ang3b-ang3a)*rand(sd); #declare ang4 = ang4a+(ang4b-ang4a)*rand(sd); #declare ang5 = ang5a+(ang5b-ang5a)*rand(sd); #declare ang6 = ang6a+(ang6b-ang6a)*rand(sd); #declare peh = union { sphere { <0,0,0> 0.5 texture { tinta_A}} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_A} rotate ang1*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_A} rotate x*60 rotate ang2*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_A} rotate x*30 rotate ang3*x} rotate z*90 } #declare anteperna = union { cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {peh translate <0,4,0>} rotate x*ang4 } #declare anteperna2 = union { cylinder { <0,0,0> , <0,2,0> .3 texture {tinta_A}} object {anteperna translate <0,2,0>} rotate x*ang5 } #declare perna = union { cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {anteperna2 translate <0,4,0>} rotate x*ang6 } object {perna rotate 180*z translate <0,-4,0> rotate z*z_angle} #declare z_angle = z_angle - 15; #end