MP 3
CS 296: Machine Problem 3
Due: May 2, 11:55pm
Rendering a Mesh
For your final programming assignment you will ray trace a triangle mesh.
Example Meshes
The OBJ format is a simple text file format for 3D surface meshes. You can reaqd about the format here:
Wikipedia: Wavefront .obj format
Here are a few example files:
We will go over how to parse the file in lecture. It will be useful for you to have a small OBJ file for debugging…you should consider creating a file containing a cube with 8 vertices which has sides at +1 and -1 on each of the XYZ axes. Each face of the cube should consist of two triangles.
Hand-in
You will hand in your code and at least 1 image showing a ray-traced mesh. Hand-in will be done on Compass.
Technical Details
You should use C++
You can use any image library you want (e.g. libpng) or write your own code to write a ppm file
You can use any math library you want (e.g. glm)
Keep in mind that if you use code you didn’t write, you must document the use of that code
Grading: Total of 30 pts
Each of the following items is worth 10 points:
Compiles and writes out an image!
Renders a recognizable triangle mesh
Mesh exhibits reasonable quality shading
Extra Credit !
For extra credit, you can create a more elaborate scene demonstrating one or more of these capabilities:
Mirror Reflection
Transparency
Constructive Solid Geometry
Each of these is worth 10 bonus points.
If implement any of these features, add a note on your submission indicating which ones we should look for.
In addition, I’m willing to award 10 more points to any rendering that is artistically awesome. This is totally subjective on my part, and will not