// ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_branco = texture{ pigment{ color rgb < 1, 1, 1 > } } #declare tx_fosca_marrom = texture{ pigment{ color rgb < 0.361, 0.2, 0.09 > } } #declare tx_verde = texture{ pigment{ color rgb < 0.10, 0.62, 0.10 >} finish{ diffuse 0.9 ambient 0.5 } } #declare tx_xadrez = texture { pigment {checker color rgb <0.2,0.2,0.8>, color rgb <1,1,1>} finish { diffuse 0.9 ambient 0.1} scale 3 } #declare tx_vidro = texture{ pigment{ color rgb < 0.35, 0.95, 0.50 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.05 roughness 0.005 } } #declare phi = (sqrt(5)-1)/2; #declare distancia = 2; // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #macro dodecaedro() intersection{ plane {<1,0,phi>, distancia} plane {<1,0,-phi>, distancia} plane {<-1,0,phi>, distancia} plane {<-1,0,-phi>, distancia} plane {<-phi,1,0>, distancia} plane {, distancia} plane {<-phi,-1,0>, distancia} plane {, distancia} plane {<0,phi,1>, distancia} plane {<0,phi,-1>, distancia} plane {<0,-phi,1>, distancia} plane {<0,-phi,-1>, distancia} //setOfPlanes(1, 0, phi) //setOfPlanes(phi, 1, 0) //setOfPlanes(0, phi, 1) } bounded_by { sphere {<0,0,0>, distancia+1.5 } } #end #macro octaedro() intersection{ setOfPlanes(1, 1, 1) } bounded_by { sphere {<0,0,0>, distancia+1.5 } } #end #macro cubo() intersection{ plane {<1,0,0>, distancia} plane {<0,1,0>, distancia} plane {<0,0,1>, distancia} plane {<-1,0,0>, distancia} plane {<0,-1,0>, distancia} plane {<0,0,-1>, distancia} } bounded_by { sphere {<0,0,0>, distancia+1.5 } } #end #macro setOfPlanes(a, b, c) intersection{ plane {, distancia} plane {, distancia} plane {, distancia} plane {, distancia} plane {<-a,b,c>, distancia} plane {<-a,b,-c>, distancia} plane {<-a,-b,c>, distancia} plane {<-a,-b,-c>, distancia} } #end #include "eixos.inc" // Aqui está a cena, finalmente: union { intersection{ object { octaedro() texture { tx_vidro } interior {ior 1.5} } object { cubo() texture { tx_vidro } interior {ior 1.5} scale 0.875} } intersection{ object { dodecaedro() texture { tx_vidro } interior {ior 1.5} translate <0,6,0> } object { octaedro() texture { tx_vidro } interior {ior 1.5} scale 0.94 translate <0,6,0> } } } object { box { <-100,-100,0>, <100,100,0.1> } translate <0,0,-8> texture { tx_xadrez } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 12.0; #declare dir_camera = < 1.00, 2.00, -0.50 >; #declare dir_camera_final = < 1.00, 0.00, 1.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera*(1-clock)+dir_camera_final*clock, dist_camera , z, intens_luz)