Project
Snow Tracker
Real-time graphics simulation developed in C++ and OpenGL, designed to demonstrate advanced rendering techniques through the dynamic visualization of traces left in the snow by a moving vehicle.
The project focuses on simulating surface deformation in real time while maintaining performance on a large, seemingly infinite environment. At the core of the simulation is an infinite terrain system built from a grid of reusable chunks. Instead of generating new geometry as the player moves, terrain chunks are repositioned around the vehicle, creating the illusion of an endless snowy landscape while keeping memory usage and rendering costs under control. Terrain elevation is generated at startup using a Perlin noise–based height map, which is applied in the vertex shader via displacement mapping to create an irregular snow surface.
The defining feature of the project is the dynamic snow trace system. As the vehicle moves, its position is continuously written onto a grayscale trace texture, acting as a brush that paints the traveled path. This texture is combined with the terrain height map in a custom vertex shader, flattening the snow surface where the trace is present. The result is a visually convincing deformation of the terrain that reacts in real time to player movement without modifying the underlying mesh topology.
Vehicle movement is implemented using a lightweight, custom kinematic model that simulates acceleration, braking, steering inertia, and friction. While not physically accurate, the system provides smooth and responsive control suitable for interactive exploration and visualization. Player input directly affects both movement and trace generation, tightly coupling interaction and visual feedback.
To enhance realism and usability, the simulation includes multiple camera modes (free, follow, and orbit), a particle system used to simulate falling snow, and a skybox for environmental immersion. An integrated ImGui-based interface allows real-time tuning of rendering parameters such as material properties, lighting, terrain height influence, and trace intensity, making the application a flexible tool for experimentation and debugging
Beyond the visual result, the project emphasizes modularity and reusability. Core components such as shaders, materials, camera, transform system, terrain management, and trace handling are implemented as general-purpose utilities that can be reused in other OpenGL projects.
Overall, Snow Tracker serves as a technical showcase of real-time terrain deformation, shader-based surface manipulation, and efficient scene management, demonstrating practical solutions to common challenges in interactive graphics programming.
Use arrows to browse media