/* lightball.pov */ #include "colors.inc" #include "stars.inc" #include "textures.inc" global_settings {assumed_gamma 2.2} camera { location < 0, 10, -45> direction < 0, 0, 1.3> look_at 6*y } /* light_source {<200, 50, -100> color Gray70} light_source {< 50, 100, -200> color Gray70} light_source {<200, 200, -200> color Gray70} */ #declare Cup = union { light_source { <0, 0.5, 0> color Yellow*0.125 } difference { merge { sphere { <0, 0, 0>, 0.4 scale <1, 1.5, 1> } sphere { <0, 1.45, 0>, 0.05 } } cylinder { <0, -0.1, 0>, <0, -2, 0>, 0.5 } material {M_Glass2} no_shadow } difference { merge { cone { <0, 0, 0>, 2.85 <0, 7.615, 0>, 4.1 } torus { 4.1, 0.15 translate <0, 7.5, 0> } cylinder { <0, 0, 0>, <0, 0.01, 0>, 2.75 } } cone { <0, 0, 0>, 2.75 <0, 7.616, 0>, 4 } cylinder { <0, -1, 0>, <0, 1, 0>, 0.5 } material {M_NB_Glass} } scale 1/7.615 } #declare Hemisphere = union { object { Cup translate y*1.45 } union { #declare Idx = 0; #while (Idx < 4) object { Cup rotate z*(-90 * 2/7) translate x*0.6 rotate y*Idx*90 } #declare Idx = Idx + 1; #end translate y*1.3 } union { #declare Idx = 0; #while (Idx < 9) object { Cup rotate z*(-90 * 4/7) translate x*1.15 rotate y*Idx*40 } #declare Idx = Idx + 1; #end translate y*0.85 } union { #declare Idx = 0; #while (Idx < 12) object { Cup rotate z*(-90 * 6/7) translate x*1.5 rotate y*Idx*30 } #declare Idx = Idx + 1; #end translate y*0.25 } } union { object { Hemisphere } object { Hemisphere rotate <0,15,180> } scale 5 rotate y*7.5 translate y*5 } sky_sphere { pigment { gradient z poly_wave 2 color_map { [0 Black] [1 MidnightBlue/3] } scale 2 translate -z } } plane { y, -10 texture { pigment { checker pigment {color White }, pigment {color Gray90} } scale 10 rotate y*22.5 finish {ambient 0 diffuse 1} } } fog { distance 500 color Black fog_type 2 fog_offset 0.1 fog_alt 5 } /* vim: set ts=4 sts=4 sw=4 tw=80 et: */