// Persistence of Vision Ray Tracer Scene Description File // File: Board.pov // Vers: 3 // Desc: Fanorona board covered with white pieces // Date: 15 June 1997 // Auth: David Eppstein, Dept. Inf. & Comp. Sci., UC Irvine // ==== Standard POV-Ray Includes ==== #include "colors.inc" // Standard Color definitions #include "textures.inc" // Standard Texture definitions #include "woods.inc" // set viewer's position in the scene camera { location <0.0, 20.0, -10.0> // position of camera direction 3.5*z // which way are we looking & zoom up y // which way is +up right 400/225*x // which way is +right and aspect ratio look_at <0.0, 0.0, 0.0> // point center of view at this point } // light sources light_source { 0*x // light's position (translated below) color red 1 green 1 blue 1 // light's color translate <-7, 40, 10> } light_source { 0*x // light's position (translated below) color red 0.5 green 0.5 blue 0.5 // light's color translate <-10, 0, -40> } // game board box { <-5, 0, -3> // one corner position <5, 1, 3> // other corner position texture { T_Wood11 } } // stripe parameters #declare stripe1 = texture { pigment { color red 0.4 blue 1 green 0.4 } finish { specular 0.7 roughness 0.05 } } #declare eps=0.05 #declare ht=0.001 // horizontal stripes box { <-4-eps,1,-2-eps> <4+eps,1+ht,-2+eps> texture { stripe1 } } box { <-4-eps,1,-1-eps> <4+eps,1+ht,-1+eps> texture { stripe1 } } box { <-4-eps,1,-eps> <4+eps,1+ht,+eps> texture { stripe1 } } box { <-4-eps,1,1-eps> <4+eps,1+ht,1+eps> texture { stripe1 } } box { <-4-eps,1,2-eps> <4+eps,1+ht,2+eps> texture { stripe1 } } // vertical stripes box { <-4-eps,1,-2-eps> <-4+eps,1+ht,2+eps> texture { stripe1 } } box { <-3-eps,1,-2-eps> <-3+eps,1+ht,2+eps> texture { stripe1 } } box { <-2-eps,1,-2-eps> <-2+eps,1+ht,2+eps> texture { stripe1 } } box { <-1-eps,1,-2-eps> <-1+eps,1+ht,2+eps> texture { stripe1 } } box { <-eps,1,-2-eps> <+eps,1+ht,2+eps> texture { stripe1 } } box { <1-eps,1,-2-eps> <1+eps,1+ht,2+eps> texture { stripe1 } } box { <2-eps,1,-2-eps> <2+eps,1+ht,2+eps> texture { stripe1 } } box { <3-eps,1,-2-eps> <3+eps,1+ht,2+eps> texture { stripe1 } } box { <4-eps,1,-2-eps> <4+eps,1+ht,2+eps> texture { stripe1 } } // first set of diagonal stripes box { <0,1,-eps> <2*sqrt(2),1+ht,eps> texture { stripe1 } rotate 45*y translate <-4,0,0> } box { <0,1,-eps> <4*sqrt(2),1+ht,eps> texture { stripe1 } rotate 45*y translate <-4,0,2> } box { <0,1,-eps> <4*sqrt(2),1+ht,eps> texture { stripe1 } rotate 45*y translate <-2,0,2> } box { <0,1,-eps> <4*sqrt(2),1+ht,eps> texture { stripe1 } rotate 45*y translate <0,0,2> } box { <0,1,-eps> <2*sqrt(2),1+ht,eps> texture { stripe1 } rotate 45*y translate <2,0,2> } // second set of diagonal stripes box { <0,1,-eps> <2*sqrt(2),1+ht,eps> texture { stripe1 } rotate -45*y translate <-4,0,0> } box { <0,1,-eps> <4*sqrt(2),1+ht,eps> texture { stripe1 } rotate -45*y translate <-4,0,-2> } box { <0,1,-eps> <4*sqrt(2),1+ht,eps> texture { stripe1 } rotate -45*y translate <-2,0,-2> } box { <0,1,-eps> <4*sqrt(2),1+ht,eps> texture { stripe1 } rotate -45*y translate <0,0,-2> } box { <0,1,-eps> <2*sqrt(2),1+ht,eps> texture { stripe1 } rotate -45*y translate <2,0,-2> } // the pieces #declare piece = cylinder { <0,1,0>, <0,1.25,0>, 0.35 pigment { color <1,1,1> } finish {// texture finish attribute brilliance 0.5 // tightness of diffuse illumination specular 0.3 roughness 0.05// texture finish attribute reflection 0.5 // amount of surface reflection (0...1) [0] } } #declare pcol = union { object { piece translate <0,0,-2> } object { piece translate <0,0,-1> } object { piece translate <0,0,0> } object { piece translate <0,0,+1> } object { piece translate <0,0,+2> } } union { object { pcol translate <-4,0,0> } object { pcol translate <-3,0,0> } object { pcol translate <-2,0,0> } object { pcol translate <-1,0,0> } object { pcol translate <-0,0,0> } object { pcol translate <+1,0,0> } object { pcol translate <+2,0,0> } object { pcol translate <+3,0,0> } object { pcol translate <+4,0,0> } }