I built a C++ ray tracer from scratch and progressively improved it over the course of a semester at DigiPen. It supports numerous shapes, reflection and refraction for various surface materials, and additional rendering modes. Shadows, soft-shadows, and anti-aliasing features are available too. The UI and renderer run in separate threads, so any part of the rendering process can be toggled mid-render.
Features
- Rendering and UI in separate threads
- Flat shading
- Depth rendering
- Normal vector rendering
- Reflection
- Refraction
- Soft shadows
- Anti-aliasing
- Custom orthorhombic pyramid shape