Below are some of my projects exploring the fascinating world of graphics, developed using OpenGL and C++.
Bouncing Circles Screensaver
Inspired by the classic DVD player screensaver, I designed a system where colorful circles bounce off screen boundaries. User interactions allow for adding new circles with randomized attributes like size, speed, and color. The project uses double buffering to ensure smooth animations.
Orbital Camera with Great Circle Paths
I created a dynamic 3D environment where cars traverse great circles on a planet’s surface. By designing a robust camera system with gluLookAt
and glPerspective
, I simulated a smooth orbital navigation, enabling users to explore the scene interactively.
Reflective Table with Texture Mapping
This project explores planar reflections using multi-pass rendering and texture mapping. I created a reflective tabletop by rendering the scene from an imaginary viewpoint and applying the captured texture to the table. The final result combines partial reflectivity with mipmapped textures for a polished look.
Recursive Ray Tracing Engine
I implemented a ray-tracing engine capable of simulating realistic lighting effects, including reflections, shadows, and specular highlights. Recursive ray intersection algorithms were used to compute these effects, with controllable recursion depth for fine-tuning visual realism. Made a snowman for the festive season!
Skybox and Enhanced Surface Details
This project features a skybox to render infinite backgrounds using cubemaps, creating a realistic environment for a 3D scene. I also enhanced surface realism through normal mapping, dynamically adjusting how light interacts with textures without increasing geometric complexity.
Shadow Mapping with Soft Shadows
I implemented a shadow mapping pipeline to project realistic shadows from light sources. By integrating percentage-closer filtering (PCF), I achieved smooth, anti-aliased shadow edges, eliminating harsh artifacts and improving the overall rendering quality.
Advanced Ray Tracer in GLSL
Using GLSL shaders in Shadertoy, I developed a real-time ray tracer capable of rendering recursive reflections and realistic lighting effects. By incorporating distributed ray tracing, I simulated soft shadows, depth-of-field effects, and anti-aliasing to achieve photorealistic visuals.
Global Illumination with Progressive Radiosity
I implemented the progressive refinement radiosity algorithm to simulate diffuse light interreflections, achieving realistic global illumination. The project included computing form factors with the hemicube method and iteratively refining light distribution, producing ambient lighting and soft shading for 3D environments.