// vi:set sts=2 sw=2 ai: #include "colors.inc" #include "stones.inc" #include "skies.inc" #include "common_objects.inc" light_source { < -40, 40, 4000 > color Orange } camera { up y right .5*x location < 0, -4, -20 > look_at < 2, -4, 0 > rotate y * 59.5 } // The atmosphere scatters quite a bit of light at dusk. Simulate this. global_settings { ambient_light White / 2 } // Ooh. Pretty sunset #declare P_Sunward = pigment { gradient y color_map { [ 0.000 rgbt < 1, .3, .3, 0 > ] [ 0.100 rgbt < 1, .6, .2, .2 > ] [ 0.300 rgbt < .4, .6, 1, .4 > ] [ 1.000 rgbt < .2, .4, 1, .8 > ] } } #declare P_Nightward = pigment { gradient y color_map { [ 0.000 rgbt < 0, 0, 0, 1 > ] [ 1.000 rgbt < .2, .4, 1, .8 > ] } } sky_sphere { pigment { granite color_map { [ 0.000 0.270 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.270 0.280 color rgb <.5,.5,.4> color rgb <.8,.8,.4> ] [ 0.280 0.470 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.470 0.480 color rgb <.4,.4,.5> color rgb <.4,.4,.8> ] [ 0.480 0.680 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.680 0.690 color rgb <.5,.4,.4> color rgb <.8,.4,.4> ] [ 0.690 0.880 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] [ 0.880 0.890 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ] [ 0.890 1.000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] } turbulence 1 sine_wave scale .5 } pigment { gradient z color_map { [ 0.000 rgbt < 0, 0, 0, 1 > ] [ 0.400 rgbt < 0, 0, 0, .6 > ] [ 0.600 rgbt < 0, 0, 0, .2 > ] [ 0.800 rgbt < 0, 0, 0, 0 > ] } scale < 1, 1, 2 > translate z * -1 } pigment { gradient z pigment_map { [ 0.000 P_Nightward ] [ 1.000 P_Sunward ] } scale < 1, 1, 2 > translate z * -1 } } // Do the clouds sphere { < 0, 0, 0 >, 11000 translate y * -10005 texture { T_Cloud1 scale 500 } hollow } #declare P_Tile = pigment { granite color_map { [0.000, 0.168 color rgbf <0.824, 0.725, 0.584, 0.600> color rgbf <0.514, 0.584, 0.533, 0.600>] [0.168, 0.301 color rgbf <0.514, 0.584, 0.533, 0.600> color rgbf <0.298, 0.376, 0.318, 0.600>] [0.301, 0.398 color rgbf <0.298, 0.376, 0.318, 0.600> color rgbf <0.263, 0.337, 0.282, 0.700>] [0.398, 0.558 color rgbf <0.263, 0.337, 0.282, 0.700> color rgbf <0.431, 0.506, 0.451, 0.600>] [0.558, 0.655 color rgbf <0.431, 0.506, 0.451, 0.600> color rgbf <0.529, 0.631, 0.471, 0.500>] [0.655, 0.735 color rgbf <0.529, 0.631, 0.471, 0.500> color rgbf <0.333, 0.376, 0.318, 0.700>] [0.735, 0.823 color rgbf <0.333, 0.376, 0.318, 0.700> color rgbf <0.298, 0.376, 0.318, 0.600>] [0.823, 0.876 color rgbf <0.298, 0.376, 0.318, 0.600> color rgbf <0.416, 0.376, 0.318, 0.500>] [0.876, 0.929 color rgbf <0.416, 0.376, 0.318, 0.500> color rgbf <0.416, 0.376, 0.318, 0.600>] [0.929, 1.001 color rgbf <0.416, 0.376, 0.318, 0.600> color rgbf <0.824, 0.725, 0.584, 0.700>] } } #declare P_Grout = pigment { granite turbulence 0.6 color_map { [0.000, 0.212 color rgbf <0.898, 0.898, 0.851, 0.000> color rgbf <0.969, 0.980, 0.875, 0.000>] [0.212, 0.424 color rgbf <0.969, 0.980, 0.875, 0.000> color rgbf <0.859, 0.859, 0.859, 0.000>] [0.424, 0.627 color rgbf <0.859, 0.859, 0.859, 0.000> color rgbf <0.992, 0.922, 0.659, 0.000>] [0.627, 0.881 color rgbf <0.992, 0.922, 0.659, 0.000> color rgbf <0.937, 0.965, 0.902, 0.000>] [0.881, 1.001 color rgbf <0.937, 0.965, 0.902, 0.000> color rgbf <0.898, 0.898, 0.851, 0.000>] } } #declare P_Middle = pigment { gradient z pigment_map { [ 0 P_Grout ] [ .019 P_Grout ] [ .02 P_Tile ] [ .98 P_Tile ] [ .981 P_Grout ] [ 1 P_Grout ] } } // The surface sphere { < 0, 0, 0 >, 10000 translate y * -10005 texture { pigment { gradient x pigment_map { [ 0 P_Grout ] [ .019 P_Grout ] [ .02 P_Middle ] [ .98 P_Middle ] [ .981 P_Grout ] [ 1 P_Grout ] } } normal { quilted control0 1 control1 1 } finish { reflection .2 } scale 5 } } // The jacks #declare Count = 1; #declare R = seed( 6 ); #while ( Count < 11 ) object { Jack scale .1 rotate z * 45 rotate x * -39 #declare Val = rand( R ); //#warning concat( "Jack ", str( Count, 1, 0 ), " rotation: ", str( ( ( Val * 360 ) - 180 ), 12, 8 ), " degrees.\n" ) rotate y * ( ( Val * 360 ) - 180 ) translate y * -4.25 #declare Val = rand( R ); //#warning concat( "Jack ", str( Count, 1, 0 ), " Z translation: ", str( ( ( Val * 30 ) - 15 ), 12, 8 ), " units.\n" ) translate z * ( ( Val * 30 ) - 15 ) #declare Val = rand( R ); //#warning concat( "Jack ", str( Count, 1, 0 ), " X translation: ", str( ( ( Val * 30 ) - 15 ), 12, 8 ), " units.\n" ) translate x * ( ( Val * 30 ) - 15 ) } #declare Count = Count + 1; #end // The ball difference { sphere { 0, .75 } torus { .75, .01 } texture { pigment { marble turbulence .5 color_map { [ 0 rgb < 1, .4, .4 > ] [ .5 rgb < 1, .4, .4 > ] [ .501 rgb < .4, .4, 1 > ] [ .8 rgb < .4, .4, 1 > ] [ .801 White ] [ 1 White ] } } normal { bumps .1 scale .025 } finish { reflection .001 } } rotate x * 30 rotate y * 22 translate < -6, -4.25, -10 > }