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 Mme. 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 Mr. Hervé Crevan, Technical Director at Tecken and Educational Coordinator & Teacher at Diginamic, where I learned web, mobile and desktop application development.
FR ↗
Work
Lightmapper
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
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
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
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
C++ graphics abstraction of OpenGL 4.6, Vulkan 1.0 and DirectX 12. No external dependencies outside of the API headers. It 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.
Recently I added GPU ray tracing support for Vulkan/DirectX 12 as an API extension. This is only for build tools, such as the lightmapper (which'll need to handle larger scenes soon).
- 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.
Static geometry.
Generated lightmap atlas.
Same scene with dynamic shadows (the lightmaps store the indirect light from the sky).
Custom model from
Syntax for a simple vertex/fragment shader.
Text rendered with an SDF glyph map.
Generated glyph map (spread factor = 7).
Various components.
A list of interactive buttons.
Models from