Project
FoxEngine
A DirectX 11 engine I started because I wanted to understand what sits behind a rendered frame.
View repositoryFoxEngine started with a fairly simple question: what would I understand differently if I built the pieces myself? It has since become a place to dig into rendering, physics, scene management, input, and the bits that connect them.
The value for me is in the process. I implement something, find the gaps in my understanding, and usually come away with a better question than the one I started with.
Rendering
The renderer uses a physically based forward pipeline. Along the way I have added image-based lighting, directional and point-light shadows, HDR rendering, tone mapping, screen-space ambient occlusion, screen-space reflections, and transparent materials.
Opaque objects are sorted front to back, transparent objects back to front, and the render queue handles frustum culling. Building these pieces myself has made their trade-offs much easier to understand.
Scenes and assets
Scenes use an entity/component structure with parent-child transforms and JSON scene descriptions. Assimp handles mesh imports, while DirectXTex and Windows Imaging Component handle textures.
There is a small resource cache and asset pipeline, but no full editor. ImGui provides the practical debugging and inspection tools I need while working on it.
Physics and input
The physics code covers basic rigid-body dynamics, raycasting, collision response, and narrow-phase tests for axis-aligned boxes, oriented boxes, and spheres. Input comes through Win32 raw input and XInput.
None of these systems tries to cover every use case. They are there because writing a smaller version is often the best way for me to understand what the larger one is doing.
