camera{ location <0,10,-17.5> look_at 0 } light_source{ <0, 0,-100> rgb 1 } light_source{ <0, -100,-100> rgb 0.75 } light_source{ <0,14, 0> rgb 1 } #declare BoxRadius=10 #declare BoxDepth=2 #declare RimDepth=0.2 #declare InsetRadius=BoxRadius-2 #declare InsetDepth=0.2 #declare NumSpokes=6 #declare SpokeWidth=3 union{ cylinder{ <0,-(BoxDepth/2),0>,<0,0,0> BoxRadius } difference { cylinder{ <0, 0,0>,<0,(BoxDepth/2),0> BoxRadius+0.1 } difference { cylinder { <0,(BoxDepth/2)-0.1,0>, <0,(BoxDepth/2)+0.1,0> InsetRadius} union { #declare Count=0 #while(Count<(NumSpokes/2)) box { <-(SpokeWidth/2),(BoxDepth/2)-InsetDepth,-(InsetRadius+0.01)>, <(SpokeWidth/2),(BoxDepth/2)+0.01,(InsetRadius+0.01)> rotate y*Count*(360/(NumSpokes/2))} cylinder { <-(SpokeWidth/2),(BoxDepth/2)-(InsetDepth/2),-(InsetRadius+0.01)> <-(SpokeWidth/2),(BoxDepth/2)-(InsetDepth/2),(InsetRadius+0.01)> InsetDepth } cylinder { <(SpokeWidth/2),(BoxDepth/2)-(InsetDepth/2),-(InsetRadius+0.01)> <(SpokeWidth/2),(BoxDepth/2)-(InsetDepth/2),(InsetRadius+0.01)> InsetDepth } #declare Count=Count+1 #end torus { InsetRadius, InsetDepth translate <0,(BoxDepth/2)-(InsetDepth/2),0> } } } } torus{ BoxRadius+0.01, RimDepth/2 } torus{ BoxRadius, RimDepth/2 translate ((BoxDepth/2)-(RimDepth/4))*y } pigment{ rgb<.97,.98,1> } finish{ metallic ambient .3 diffuse .1 reflection .12 specular 0.75 roughness .01 brilliance 2 } rotate y*15 } sky_sphere{ pigment{ gradient y color_map{ [0 color rgb 1] [1 color rgb <0.196,0.6,0.8>] } } pigment{ bozo color_map { [0 color rgb 1] [.5,.55 color rgbf 1 color rgb 1] [1 color rgbf 1] } scale 2 } }