My initial inspiration for this was, in seeing reflections and refractions, I though it would be cool to show a scene with dice of many different materials.  When I learned about photon mapping, I later got the idea to have the semi-transparent dice filter the incoming light, to get a more realistic effect.  Further, a simple effect that I thought would add to the scene would be to add depth of field, so that dice in the distance would seem fuzzier.  And lastly I wanted to have procedural texturing so that the dice were not all solid textures.

What I implemented

I ended up implementing all that I hoped for, though, looking back, there were a few more things I would have liked to implement, but I didn't realize how helpful they would be until I got the final image, and it was too late to add more effects.  To reiterate the effects I implemented were:
Photon mapping, with the emphasis on filtering of specific colors of light.

Depth of field, with nothing to special about this.

Procedural texturing, which was done mostly the same way that the stone texture was, but with minor differences.  First, I had a threshold and after applying perlin, if the result was above the threshold then it was a certain color, and if it was below that it was a different color.  Secondly, instead of passing in x,y, and z into the perlin function, I played around with passing f(x),f(y), and f(z) into perlin, and tried several different functions f(x).

Final results

final Image:

What I hope to add over the summer

I hope to do several things with my renderer over the summer and beyond.  Firstly, for my image I would at least like to get frosty refraction so that it isn't completely transparent looking, this is one thing I should have thought of when planning out my scene.  Second, glossy reflection could look cool on some of the dice as well.  Lastly, I would like to make a much better model, the one I used for this was thrown together quickly, and I would like to make a much better one.  Also, a minor detail, is to play around more with the functions for the procedural texturing, and the parameters for photon mapping and depth of field to get better images.