Name: Anonymous 2010-09-22 2:14
THE CHALLENGE:
I) Write three functions,
Which perform the respective set operations on their input, a list of closed intervals of the form
II) Use your functions from I to implement a simple CSG raytracer. Your raytracer should support the following features:
• Spheres
• Diffuse surfaces
• Specular surfaces
Upon completion, post your source code here, along with one (1) example rendering, showcasing your raytracer. The example render should include an example of each set operation performed on two spheres, for a total of six spheres. A single directional light source should be used to light the scene.
Submissions close on
Each winner is entitled to claim ownership of two (2) /prog/ memes of his choice, with the exception of SICP, HMA, and UMH.
I) Write three functions,
union :: [(Float,Float)] -> [(Float,Float)], difference :: [(Float,Float)] -> [(Float,Float)], intersection :: [(Float,Float)] -> [(Float,Float)]Which perform the respective set operations on their input, a list of closed intervals of the form
(min, max). Your functions need not support sentinel values such as NaN or infinity. The number of intervals returned should be minimized where possible.II) Use your functions from I to implement a simple CSG raytracer. Your raytracer should support the following features:
• Spheres
• Diffuse surfaces
• Specular surfaces
Upon completion, post your source code here, along with one (1) example rendering, showcasing your raytracer. The example render should include an example of each set operation performed on two spheres, for a total of six spheres. A single directional light source should be used to light the scene.
Submissions close on
2010-10-04 at 00:00. Programs will be marked in three categories: efficiency, conciseness, and quality of implementation.Each winner is entitled to claim ownership of two (2) /prog/ memes of his choice, with the exception of SICP, HMA, and UMH.