// POV-Ray pong. Slime vs Grumble - March 2002 #version 3.5 #declare usearealights = yes; #declare useprettylights = no; #declare usescatteringmediafloor = no; //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 "colors.inc" #include "woods.inc" global_settings { ambient_light 0 } camera { location <-4,2.5,-9>*1 look_at <0,0,0> } #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 <.3,.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{ <.5,2,-1>*100 1.3 } #end //ground plane plane { y,0 pigment {rgb 1} texture {T_Wood1 scale 2}} //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, .3} method 3 // default, but i specify it anyway. whatever. samples 7,1000 // second number ignored with method 3 aa_level 4 aa_threshold .1 density { planar color_map { [0 rgb 0] [.2 rgb .35] [.5 rgb .8] [.7 rgb .87] [1 rgb 1] } } density { bozo color_map { [0 rgb .3] [1 rgb 1.4] } scale .5 warp { turbulence .4 octaves 4 lambda 3 omega .6 } } } } 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_Wood7 rotate 22 finish {reflection 0.01 ambient 0.2} } scale .5 } 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>} } object { mycone translate <-4,0,-2.4> pigment {rgbt<1.0,0.3,0.0,0.5>} } object { mycone translate <-2,0,-3.5> pigment {rgbt<0.0,1.0,0.3,0.5>} } object { mycone translate <3,0,-4> pigment {rgbt<0.3,0.1,0.0,0.5>} } object { mycone translate <6,0,0> pigment {rgbt<0.3,0.7,0.7,0.5>} } object { mycone translate <5.3,0,-3.5> pigment {rgbt<0.7,0.3,0.7,0.5>} } object { mycone translate <0,0,-6> pigment {rgbt<0.3,0.0,1.0,0.5>} } object { mycone translate <-4,0,-5> pigment {rgbt<0.7,0.7,0.3,0.5>} } #declare myhouse = union { prism {0,1.9,3, <0,0>, <0,2>, <1,1>} box {<0,0,0> <1.5,1.9,1.5> translate <-1.5,0,0.25>} rotate z*90 } /*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> }*/ #declare housenum = 0; #declare numhouses = 30; #while (housenum < numhouses) object { myhouse rotate 90*y translate <-80+100*housenum/numhouses, 1.5, 5> texture { pigment {rgb <0,1,0> } finish {ambient 0.8 reflection 0.1 phong 0.5} normal{bumps .3 translate 100*housenum}} } #declare housenum = housenum + 1; #end sky_sphere { pigment { gradient y color_map { [0 rgb <0.5,0.6,1> ] [1 rgb <0,0,1> ] } } pigment { wrinkles turbulence 0.7 color_map { [0 rgbt <1,1,1,1>] [0.5 rgbt <0.98, 0.99, 0.99, .6>] [1 rgbt <1, 1, 1, 1>] } scale <.8, .1, .8> } } fog { distance 30 color rgb <0.4,0,0> fog_offset 1 fog_alt 2 fog_type 2 turbulence <0.4,0,1> turb_depth 0.4 } /* this is what i tried out first, but the water just didnt look realistic plane { y 1.2 texture { pigment { color red 0.1 green 0.07 blue 0.3 } finish { reflection 0.45 ambient 0.2 diffuse 0.6 phong 1.0 phong_size 80 } normal { ripples 0.8 frequency 0.08 translate <100,0,200> } scale .5 } } background {MidnightBlue} */