Mattéo Legagneux
Self-taught french programmer working on a custom game engine since 2022.
Resumes
-
-
-
EN ↗AppendixAugust 2026
Letters of recommendation
-
Quest Education Group (2026/05)
Letter from Emilie Seccia, Educational Director of the Gaming Campus GTECH school, where I tutored a programming class in developing a custom C++ engine for their end-of-year project.
FR ↗ -
Tecken (2024)
Letter from Hervé Crevan, Technical Director at Tecken and Educational Coordinator & Teacher at Diginamic, where I learned web, mobile and desktop application development.
FR ↗
Work
Lightmapper
-
Static geometry.
-
Generated lightmap atlas.
-
Custom model from PolyHaven.
C++ GPU lightmapper written with my RHI. There is no UV unwrapper, instead the lightmap UV are derived from the geometry's texture coordinates. The generated atlas is encoded as a QOI image and the UV are compressed into 2x 16-bit UNORM.
- Scene builder API for static geometry
- Custom model support
- Scene attributes (sky color, sun direction, sun intensity, etc.)
- Per-lightmap pixel scale
- Conservative rasterization using bias values
- Shadow leak fixing
- Two-pass bilateral filter
- Lightmap packing
- Fast bicubic interpolation
Programming language
-
Syntax for a simple vertex/fragment shader.
Custom C++ transpiler for a strongly-typed shader language. My goal is to have a unified solution instead of separate GLSL/HLSL shaders for everything.
- Lexical, syntactic and semantic analysis
- AST debugger
- GLSL code generator
- CLI tool similar to glslc
- LSP server with diagnostics and completion
- JSON parser
Physics engine
2D and 3D rigid body physics in C++.
- Sequential Impulses
- Semi-Implicit Euler integration
- Friction
- Collision detection with SAT and GJK
- 2D joint constraints
- 2D warm starting
- 3D polygon clipping with Sutherland-Hodgman
- Experiments in 2D CCD
SDF glyph map generator
-
Text rendered with an SDF glyph map.
-
Generated glyph map (spread factor = 7).
C++ building tool generating a signed distance field from a series of True-Type glyphs. Some artifacts are visible and there's still cleaning/optimizing work to be done.
- TTF decoder
- Compute glyph rasterizer
- Compute distance field generator
- Glyph packing
GUI
-
Various components.
-
A list of interactive buttons.
Immediate C++ GUI API used for debug screens and option menus.
- Automatic layout computation
- Easy component extension with functional-style API
- Text, images and tinted rectangles
- Hover, focus, click and mouse down/up events
- UTF-8 decoder
RHI
-
Models from PolyHaven rendered with a PBR shader.
C++ graphics abstraction of OpenGL 4.6, Vulkan 1.0 and DirectX 12. No external dependencies outside of the API headers. Supports graphics, compute, GLSL/SPIR-V/HLSL, 2D textures, samplers, storage/uniform buffers, blending, depth-testing, viewport, scissor, buffer/image copy, indirect draw/dispatch, vertex attributes, render passes, descriptor sets, SRGB, synchronization, etc.
I used the RHI to implement a path tracer, a Forward renderer, a Visibility renderer, a GUI, a 2D physics visualizer, a lightmap baker, a glyph rasterizer and many samples to showcase the API.
- Stateless and explicit design to maximize user control
- Argument validation similar to the Vulkan validation layers
- 'Batched' and 'quick' memory allocations for Vulkan and DX12
- Linkage with custom Win32 window abstraction
Logging library
Repository ↗ • Documentation ↗
Lightweight C++ library that supports console and file logging.
Maths library
Repository ↗ • Documentation ↗
C++ SIMD vector maths library for computer graphics.