// // es9_bis.pov // // come es9, ma il caleidoscopio e' visto dall'alto in modo // che si capisca cosa c'e' dentro // // Gian Marco Todesco :: todesco@toonz.com // per il Liceo Copernico, 13 novembre 2009 // #include "colors.inc" #include "textures.inc" // abbiamo bisogno di molte, molte riflessioni global_settings { max_trace_level 40 } camera { location <0,10.5,-0.5> look_at <0,3.5,0> angle 80 } // luci light_source { <0.1,12,-0.5> color rgb 1.5 } // 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>} } // fine definizione del mostro // dispongo gli oggetti nel caleidoscopio object {Mostro scale 0.9 rotate 30*x translate <0.1,0.9,1.5>} object {Mostro scale 0.4 rotate 30*x rotate 90*y translate <0.7,0.4,-2.5>} sphere {0,0.5 translate <-1.7,0.5,-1.1> pigment {Green}} cylinder {<-3,0,-2>,<1,0,1>,0.1 translate <0,1,2.7> texture {Gold_Metal}} // pavimento plane {y,-0 pigment {White}} // creo il caleidoscopio intersection { // specchi // altezza della camera a specchi #local H = 5; // larghezza dei tre specchi #local L0 = 5; #local L1 = L0*sqrt(3); #local L2 = sqrt(L0*L0+L1*L1); // spessore specchi #local D = 0.3; #local H2 = H*2; // basta che sia piu' grande di H. // "taglio" gli specchi in modo che il bordo sia colorato box {-0.5,0.5 scale <100,H,100> translate y*H/2 pigment {Aquamarine}} // la parte riflettente union { box {0,1 scale } box {0,1 scale rotate -90*y } box {0,1 scale rotate -120*y translate L0*x } finish {reflection 0.9 diffuse 0 ambient 0} } // centro il tutto translate <-L0/3,0,-L1/3> // e lo ruoto nella posizione migliore rotate 28*y }