// POV-Ray pong. Slime vs Grumble - March 2002 #version 3.5 #declare usearealights = yes; #declare useprettylights = yes; #declare usescatteringmediafloor = yes; //NOTE: render with "+SP64" when using the media and not doing a final version - you can see more faster. //Don't bother with the area lights except for the final version. global_settings { ambient_light 0 } camera { location <0,7,-11> look_at 0 } #if (useprettylights) light_source { <4,7,3>*2 rgb <1,.8,.8> spotlight point_at <1,0,1>*.5 radius 30 falloff 33 #if (usearealights) area_light x,y,7,7 adaptive 0 circular orient #end } light_source { <-4,8,-5>*2 rgb <0,.8,1>*1.4 spotlight point_at <-1,0,1>*.5 radius 30 falloff 33 #if (usearealights) area_light x,y,7,7 adaptive 0 circular orient #end } #else // dummy light source, just for better overview. light_source{ <-1,1,-1>*100 1.3 } #end //ground plane plane { y,0 pigment {rgb 1} } //mirror plane plane { z, 7 rotate 20*y // just to fool people into thinking we're not really looking head on at it =) texture{ pigment{rgb 1} normal { bozo .05 scale .5 } finish{reflection 0.3} } hollow no_shadow } // foggy floor plane #if (usescatteringmediafloor) plane { y,1 pigment {rgbt 1} interior { media { scattering {1, .4} method 3 // default, but i specify it anyway. whatever. samples 5,1000 // second number ignored with method 3 aa_level 3 aa_threshold .1 density { planar color_map { [0 rgb 0] [.2 rgb .35] [.5 rgb .8] [.7 rgb .87] [1 rgb 1] } } } } scale 2 hollow } #end #declare mysphere = sphere{<0,0,0> 0.2} #declare diesize = 1.5; // half the dimensions of the die #declare die = difference { superellipsoid { <.2,.2> } #declare scaleamnt = 0.3; // squish the dots this much #declare distfromcenter = .45; // dots offset from the center of their face of the cube should be this far from the center #declare awayfromside = 0; // this makes the holes smaller by moving them away from the cube before cutting them out // the six object {mysphere scale z*scaleamnt+x+y translate < distfromcenter, distfromcenter, 1+awayfromside> } object {mysphere scale z*scaleamnt+x+y translate <-distfromcenter, distfromcenter, 1+awayfromside> } object {mysphere scale z*scaleamnt+x+y translate < distfromcenter, 0, 1+awayfromside> } object {mysphere scale z*scaleamnt+x+y translate <-distfromcenter, 0, 1+awayfromside> } object {mysphere scale z*scaleamnt+x+y translate < distfromcenter, -distfromcenter, 1+awayfromside> } object {mysphere scale z*scaleamnt+x+y translate <-distfromcenter, -distfromcenter, 1+awayfromside> } // the five object {mysphere scale x*scaleamnt+y+z translate <1+awayfromside, distfromcenter, -distfromcenter> } object {mysphere scale x*scaleamnt+y+z translate <1+awayfromside, distfromcenter, distfromcenter> } object {mysphere scale x*scaleamnt+y+z translate <1+awayfromside, 0, 0> } object {mysphere scale x*scaleamnt+y+z translate <1+awayfromside, -distfromcenter, -distfromcenter> } object {mysphere scale x*scaleamnt+y+z translate <1+awayfromside, -distfromcenter, distfromcenter> } // the four object {mysphere scale y*scaleamnt+x+z translate < distfromcenter, 1+awayfromside, distfromcenter> } object {mysphere scale y*scaleamnt+x+z translate < distfromcenter, 1+awayfromside, -distfromcenter> } object {mysphere scale y*scaleamnt+x+z translate <-distfromcenter, 1+awayfromside, distfromcenter> } object {mysphere scale y*scaleamnt+x+z translate <-distfromcenter, 1+awayfromside, -distfromcenter> } //the three object {mysphere scale y*scaleamnt+x+z translate < distfromcenter, -(1+awayfromside), -distfromcenter> } object {mysphere scale y*scaleamnt+x+z translate < 0, -(1+awayfromside), 0> } object {mysphere scale y*scaleamnt+x+z translate <-distfromcenter, -(1+awayfromside), distfromcenter> } //the two object {mysphere scale x*scaleamnt+y+z translate <-(1+awayfromside), -distfromcenter, -distfromcenter> } object {mysphere scale x*scaleamnt+y+z translate <-(1+awayfromside), distfromcenter, distfromcenter> } //the one object {mysphere scale z*scaleamnt+x+y translate <0,0,-(1+awayfromside)> } scale diesize texture { pigment {rgb <1,.5,.5>*.4} finish { reflection .4 specular 1.5/.4 roughness .08 metallic } } } object { die rotate 25*y translate <-3,diesize,0> } object { die rotate 180*z rotate 180*y translate <3,diesize,-1.5> }