Project
Snow Tracker
Real-time graphics simulation built in C++ and OpenGL, focused on terrain deformation, shader-based snow traces, and efficient large-scale scene management.
Snow Tracker is a real-time graphics project designed to simulate dynamic traces left in the snow by a moving vehicle. The project combines shader-based terrain deformation, chunk-based world management, and interactive rendering tools to create a scalable and responsive snowy environment.
My Contributions
- Implemented an infinite terrain system using reusable chunk-based scene management
- Developed Perlin noise-based terrain generation with vertex displacement in the shader
- Implemented a real-time snow trace system driven by a dynamic grayscale texture
- Built shader logic to deform the terrain surface based on trace data without changing mesh topology
- Developed a lightweight custom vehicle movement model with acceleration, braking, steering inertia, and friction
- Implemented multiple camera systems including free, follow, and orbit modes
- Integrated an ImGui-based debug and tuning interface for rendering and terrain parameters
- Structured the project with reusable rendering, transform, material, and terrain management modules
Rendering & Terrain System
The environment is built as an infinite terrain using a grid of reusable chunks repositioned around the vehicle. This avoids continuous geometry generation while maintaining the illusion of a large open world. Terrain elevation is initialized through a Perlin noise-based height map and applied through shader displacement, creating an irregular snow surface at runtime.
Dynamic Snow Traces
The core visual feature is a dynamic trace system that writes vehicle movement onto a grayscale texture in real time. This texture is then combined with the terrain height data in a custom vertex shader, flattening the snow surface where traces are present and creating convincing deformation effects without modifying the underlying mesh.
Tools & Modularity
The project also includes multiple camera modes, snowfall particles, skybox rendering, and an ImGui-based interface for live tuning of material, lighting, terrain, and trace parameters. Core systems such as shaders, materials, transforms, terrain handling, and trace processing were designed as reusable modules to support extensibility and debugging.
Use arrows to browse media