You must demo your final project results during the final exam period on Friday 6/15.
You must also submit a website detailing your project, results images, references, and software development process. This is due on Sunday 6/17.
There are four components to this project.
- Implement an additional feature for your raytracer or any interesting graphics technique. Some reasonable ideas can be found below.
- Provide 2-3
.povfiles of your own creation that show off your new feature (or are generally visually interesting)
- Create an HTML website that describes your project and shows some screenshots (and/or videos if appropriate)
- Demonstrate good software engineering principles in your raytracer
For that last bullet point you have two options:
Describe Existing Software Design
Describe an abstraction (e.g. set of functions or classes/interfaces) you used in implementing your ray tracer that was effective at organizing your code, allowing debugging, and/or promoting extensibility. Point out where this can be found in your raytracer code.
Refactor For Better Software Design
Refactor a messy part of your raytracer in a way that:
- Preserves functionality
- Reduces code redundancy
- Extracts functionality
- Improves testability
Any and all of those attributes are a plus. Anyone who writes unit tests using a unit testing framework (like Catch, my personal favorite) will score instant brownie points.
I expect to see some reasonable documentation in your
- What feature you chose and why
- What resources you used to research and implement the feature
- Explanation/description of your Software Design implementation
Past Projects & Ideas
Past final project directories:
Some general ideas:
- Ambient occlusion
- Depth of field
- Perlin noise
- Soft lighting
- Constructive Solid Geometry
- Participating media (volumes)
- Texture mapping
- Motion blur
- Glossy reflection
- Ray marching (mandelbulb)
- Photon mapping
- Path tracer