3D graphics vector rendering and ray tracing course.
Both participated as student and tought course practicals. Project explores 3D rendering using both a rasterizer (OpenGL) and ray tracing.
Ray tracing most closely resembles how we perceive our world through beams of light. Beams of light are traced from a light source to a camera to create a 2D image. For performance reasons a ray of light is actually traced from the camera (but the logic still applies).
Individual pixels on the 2D image are colored by the material the rays hit, lights (and shadows) and reflections from other objects.
In practice most realtime 3D graphics are produced using a rasterization technique. OpenGL is a library that aids in the rendering of 3D scenes from vector graphics. This project explored rendering process and explored the programmatic rendering of vertices and pixels using the OpenGL shaders.