HTTPS SSH

3D Math and Rendering Assignment 1

This assignment involved writing a basic software renderer written in C++ using only the OpenGL glVertex2i method to render the wire-frame/un-shaded representation of the scene. This project involved manually implementing techniques such as back-face culling, viewport clipping (using the Cohen-Sutherland algorithm), manual generation of tansform/view/projection matrices and support for multiple cameras/viewports. I also extended the assignment to parse and render Wavefront object files (.obj).

Controls

  • F1 Toggle axis visibility
  • F2 Toggle back face culling
  • F3 Cycle render modes (wire frame / flat shaded / vertex only)
  • Numeric Keys 1-5 Cycle render modes (wire frame / flat shaded / vertex only)
  • Numeric Keys 6-8 Begin auto rotation around local axis
  • W, A, S, D, U, J Move the camera around the world in all directions +ve / -ve
  • T, F, G, H, I, K Move the object around the world in all directions +ve / -ve
  • M Cycle through model files
  • X, Y, Z Rotate 1 degree about each axis respectively