// // es7.pov // // lente // // Gian Marco Todesco :: todesco@toonz.com // per il Liceo Copernico, 13 novembre 2009 // #include "colors.inc" #include "textures.inc" camera { location 2*<0,1.5,-3> look_at <0,0.75,0> angle 40 } // luci light_source { 5*<2.5,3,-1.5> color rgb 1.5 } // questa serve (per bellezza) per creare un riflesso sulla lente light_source { <0,2,-2> color rgb 0.5 } // pavimento plane { y, 0 pigment { checker color rgb 1.0, color rgb 0.9 scale 2 } } // definisco il mostro #declare Mostro = union { // parametri della "faccia" #local Occhio_X = 0.3; #local Occhio_Y = 0.3; #local Occhio_Z = 0.0; #local Occhio_R1 = 0.2; difference { // superficie esterna sphere {<0,0,0>,1 pigment {Orange}} union { // superficie interna sphere {<0,0,0>,0.9 pigment {Orange}} // occhio destro cylinder { <-Occhio_X,Occhio_Y,-4>, <-Occhio_X,Occhio_Y,0>, Occhio_R1 } // occhio destro cylinder { , , Occhio_R1 } // bocca difference { cylinder { <0,0,0>,<0,0,-4>,0.6 } cylinder { <0,0,0>,<0,0,-4>,0.6 translate <0,0.3,0> } } // colore delle superfici interne pigment {LimeGreen} } } // occhio #local Eye = sphere { 0,0.1 texture { pigment {Blue} finish { ambient 0.6 diffuse 0.6 } } } // pupilla occhio sinistro object { Eye translate < Occhio_X,Occhio_Y,-0.6>} // pupilla occhio destro object { Eye translate <-Occhio_X,Occhio_Y,-0.6>} // luce interna light_source {<0,0.7,0.2> color 1} } // fine definizione del mostro // dispongo i due mostri object {Mostro scale 0.9 rotate 0*y translate <1,1,0>} object {Mostro scale 0.9 rotate 0*y translate <-1,1,0>} // la lente di ingrandimento union { // la lente vera e propria (intersezione fra due sfere) intersection { #local F = 4; // distanza centro della sfera - centro della lente #local R = sqrt(F*F+1); // raggio della sfera (n.b. voglio che la lente abbia diametro 2) // le sfere sphere {0,R translate F*z } sphere {0,R translate -F*z } texture { pigment {rgbf 0.9} // quasi completamente trasparente finish { reflection 0.2 // un minimo riflesso sulla superficie del vetro specular 0.9 roughness 0.01 // superficie lucida, con riflessi brillanti diffuse 0 ambient 0 // il colore intrinseco della lente non si vede } } interior { ior 1.5 } // indice di rifrazione del vetro } // bordo torus { 1,0.05 rotate 90*x texture {Silver_Metal} } // manico cylinder {<0,-1.2,0>,<0,-1,0>,0.05 texture {Silver_Metal} } cylinder {<0,-4,0>,<0,-1.2,0>,0.05 pigment {Black} } scale 0.5 translate <-0.4,1.6,-1.7> }