An Educational Exploration of Direct3D 12 Graphics Programming in C++
Overview

Learning DX12 is an educational project built while working through Frank Luna’s Introduction to Game Programming with DirectX 12. The project focuses on understanding how low-level GPU pipelines work, implementing core rendering systems from scratch and developing practical confidence with the DX12 API through guided examples.
My Role
I implemented each module covered in the learning resource, including device setup, command structures, descriptor heaps, resource loading, shaders and rendering workflows. I adapted the book’s examples into a clean, modular codebase to support further experimentation and personal learning.
Key features
- DX12 setup: device, command queue and swap chain
- Vertex, index and texture resource management
- Descriptor heaps, root signatures and pipeline state objects
- Basic geometry rendering with HLSL
- Modular layout for continued learning and experimentation
Technical Highlights
- Reusable abstractions for device, command lists and resources
- GPU synchronization via fences and resource barriers
- Flexible pipeline setup for testing shaders and render targets
- Learning modules structured to follow the book’s progression
Tools and Technologies
C++, Direct3D 12, HLSL, Windows API, GPU pipeline fundamentals, Git.