← All projects
DirectX 11 C++ HLSL Dear ImGui Visual Studio GitHub
Case Study
Custom Graphics Engine
Overview: A fully functional real-time 3D graphics engine built from scratch in C++ using DirectX 11, developed over the course of an advanced graphics programming course. The engine supports a complete rendering pipeline including physically-based shading, dynamic lighting, shadow mapping, and a custom content pipeline. Constructed incrementally from a blank Visual Studio project to a playable, hardware-accelerated build.
View on GitHub
Key Features
- DirectX 11 rendering pipeline
- Custom OBJ mesh loader
- PBR shading & gamma correction
- Normal & cube map support
- Shadow mapping
- Real-time camera system
- Box blur post-processing
- Multi-mode fog system
- Height-based fog
- Dear ImGui debug interface
- Playable build
Gallery
Contributions
- Architected a DirectX 11 rendering pipeline from scratch in C++, managing the full D3D11 object structure including devices, swap chains, and render targets.
- Implemented mesh loading and rendering via a custom OBJ loader, supporting textured 3D models with material assignments.
- Built a constant buffer system for efficient GPU data transfer, enabling per-object and per-frame shader data updates.
- Developed a scene camera system with configurable projection and view matrices, supporting real-time user-controlled navigation.
- Authored HLSL vertex and fragment shaders supporting albedo textures, normal maps, and cube map environment reflections.
- Implemented a physically-based rendering (PBR) shading model with gamma correction for perceptually accurate material response under multiple light types.
- Constructed a shadow mapping pipeline producing real-time dynamic shadows cast across scene geometry.
- Integrated Dear ImGui for a runtime debug UI, enabling live inspection and adjustment of scene parameters during development.
- Managed a full content pipeline including texture loading, sky/environment setup, and asset organization within Visual Studio.
- Implemented a box blur post-processing effect as a full-screen screen-space pass, with a runtime-adjustable blur radius exposed through the ImGui debug interface.
- Built a multi-mode fog post-processing system supporting linear, smoothstep, and exponential falloff modes, with runtime controls for fog color, start/end distances, and density. Extended the system with optional height-based fog driven by configurable vertical density and fog height thresholds.
Impact
- Built a complete, hardware-accelerated rendering pipeline from a blank Visual Studio project within a single course term.
- Demonstrates low-level graphics programming fundamentals (device/swap chain management, shader authoring, PBR shading, and post-processing) without relying on a pre-built engine.