// use these command line parameters to set the width/height // (right click on them and select "open include file/insert command line") // +w640 +h320 +AM2 +A0.2 // in any case, use a width that's twice the height. // good preview settings: // +w320 +h160 +sp4 // we gotta get a background going eventually // I figure we can add black areas at the top and bottom to make a good desktop image out of it when we're done. global_settings { max_trace_level 10 } camera { location <-3,1.7,-6>*.45 up y right 2*x look_at 0 } light_source { <-5,3,-6> rgb 1.3 } // for convenience in figuring out coordinates: /*plane { y,0 pigment {checker} } sphere { // origin 0,.5 pigment {rgb 3} }*/ //Layered Texture #declare Ball_Tex = texture { pigment { bozo color_map { [0 rgb <.8,.3,1>][1 rgb <.3,1,.8>] } warp { turbulence 1 lambda 4 omega .4 octaves 3 } scale .3 } } texture { pigment { crackle color_map { [.5 rgbt <.8,.3,.28,1>] [.7 rgbt <.8,.3,.28,0>] } scale .06 } } #declare ball_hole = union { cylinder { .5*1.7*y, y, .075} sphere {.5*1.7*y,.075 scale <1,.5,1>} difference { #declare roundedness = .008; #declare roundedness_error = .0038; cylinder { (1-roundedness-roundedness_error)*y,y,0.075+roundedness } torus { .075+roundedness,roundedness translate (1-roundedness-roundedness_error)*y } } rotate -45*x } difference { sphere {0,1} object {ball_hole} object {ball_hole rotate y*-25} object {ball_hole rotate <-18,-12.5,0>} texture { Ball_Tex finish { diffuse 1 ambient 0 //brilliance 2 specular .4 roughness .01 //metallic } normal { dents .15 scale .05 } } hollow //no_shadow // uncomment to speed things up; media will appear brighter than it should translate <-1,0,-.5> } // bowling pins? // needs more work if we keep it #macro bowling_pin(pin_color) cylinder { -y*5,y*1000,.3 pigment {rgbt 1} interior { media { emission 1.3*pin_color density { cylindrical poly_wave .2 scale .3 } } } hollow } #end #declare pinseparation = 2; union { object { bowling_pin(1.4) } object { bowling_pin(<1,.8,.8>*1.4) translate } object { bowling_pin(<1,.8,.8>*1.4) translate } object { bowling_pin(<1,.6,.6>*2) translate } object { bowling_pin(<1,.6,.6>*2) translate } object { bowling_pin(<1,.6,.6>*2) translate } object { bowling_pin(<1,.4,.4>*2.5) translate } object { bowling_pin(<1,.4,.4>*2.5) translate } object { bowling_pin(<1,.4,.4>*2.5) translate } object { bowling_pin(<1,.4,.4>*2.5) translate } translate x*10 rotate y*-30 }