Exercise 2

On the cover of his 1980 Pulitzer Prize book Gödel, Escher, Bach: an Eternal Golden Braid, Douglas R. Hofstadter designed a trip-let suspending in space near a corner so that their shadows in three orthogonal directions are three different letters, G for Gödel, E for Escher and B - for Bach. Let us simplify Hofstadter's work a little. You are given a scene file in POV-Ray as shown below left. It consists of a yellow cube, three perpendicular wall meeting at the corner, and three spotlights generating three square shadows, one on each wall. You job is generating the scene shown in the right figure using Boolean operators. You only need to modify Initial_Block to become a new block and keep all other components unchanged.

The initial block is given as follows. This is the place for you to carry out proper "surgery" with Boolean operations so that it could generate the desired shadows.

#declare  Initial_Block =                    // the initial block
               box { < -5, -5, -5 >, < 5, 5, 5 > }

object {
     Initial_Block
     pigment {
          color  Yellow
     }
     finish {
          ambient    0.1
          reflection 0.4
          phong      1
     }
}
The walls are planes. You do not have to touch this part at all. If you change these walls, you may have to modify the spotlights as well.
//   the right wall (for E)

plane {
     x, 20
     pigment {
          color  NeonBlue
     }
     finish {
          ambient  0.2
     }
}

//   the bottom wall (for B)

plane {
     y, -20
     pigment {
          color  Pink
     }
     finish {
          ambient  0.2
     }
}

//   the left wall (for G)

plane {
     z, 20
     pigment {
          color  Cyan
     }
     finish {
          ambient  0.2
     }
}
The following are three spotlights. Please don't modify them.
//   the spotlight for E

light_source {
     < -10000, 0, 0 >
     color  White
     spotlight
     point_at  < 0, 0, 0 >
     falloff   0.07
     radius    0.05
     tightness 10
}

//   the spotlight for B

light_source {
     < 0, 10000, 0 >
     color  White
     spotlight
     point_at  < 0, 0, 0 >
     falloff   0.07
     radius    0.05
     tightness 10
}

//   the spotlight for G

light_source {
     < 0, 0, -10000 >
     color  White
     spotlight
     point_at  < 0, 0, 0 >
     falloff   0.07
     radius    0.05
     tightness 10
}
Finally, the camera has been properly positioned so that you do not have to make any change:
//   the camera

camera {
     location  < -400, 400, -400 >
     direction 15*z
     up        y
     right     4/3*x
     look_at   < 0, -3, 0 >
}

Click here for a complete copy of this initial scene.

By the way, Hofstadter's Gödel, Escher, Bach: an Eternal Golden Braid is a highly recommended book for computer science students.