// 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. // various (mostly layered) wood textures // T_Wood1 - T_Wood35 #include "woods.inc" global_settings { ambient_light 0 } camera { location <10,7,-12> look_at <0,0,-1> } #if (useprettylights) light_source { <4,7,3>*2 rgb <1,.8,.8> spotlight point_at <1,0,1>*.5 radius 30 falloff 40 #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 40 #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> } declare mycone = union{ difference { sphere { <0,0,0> 1 scale y*4} box { <1,0,1> <-1,-5,-1> } box { <1,3.8,1> <-1,5,-1> } } sphere { <0,4.2,0> 0.6 } torus { 0.91 0.2 translate y*0.8 } torus { 0.8 0.2 translate y*1.8 } torus { 0.6 0.2 translate y*2.8 } texture { T_Wood10 rotate 22 finish {reflection 0.01 ambient 0.2} } } object { mycone translate <0,0,-3> pigment {rgbt<1.0,0.3,0,0.5>} } object { mycone translate <-10,0,1> pigment {rgbt<0.0,0.3,1.0,0.5>} } declare myhouse = union { prism {0,2,3, <0,0>, <0,2>, <1,1>} box {<0,0,0> <1.5,2,1.5> translate <-1.5,0,0.25>} rotate z*90 texture { pigment {rgb <0,1,0> } finish {ambient 0.8 reflection 0.1 phong 0.5} normal{bumps}} } object { myhouse scale 1.5 rotate y*-33 translate <2,1.5,-8> } object { myhouse scale 1.5 rotate y*30 translate <-10,1.5,-5> }