A small DirectX 12 rendering framework for experimenting with modern real-time rendering techniques on Windows.
Implemented features:
- custom window, message loop, and input handling;
- core DX12 setup: device, swap chain, command queue, and descriptor heaps;
objmodel loading with textures and materials;- deferred rendering with a
GBuffer; - directional, point, and spot lighting;
- cascaded shadow maps with PCF;
- PBR lighting with image-based lighting;
Sponzademo scene.
- Implemented a custom message loop.
- Implemented a
WndProcwindow procedure. - Created a window class that encapsulates WinAPI window management.
- Refactored input into a dedicated
InputDevicewith raw input handling.
- Built the application framework and timer.
- Initialized the
Device,SwapChain, and required base resources. - Implemented back buffer and depth buffer clearing.
- Added HLSL shader compilation and loading.
- Created constant buffers, root signatures, and PSOs.
- Added texture loading.
- Added
objmodel rendering with materials.
- Implemented the main rendering system.
- Implemented the
GBuffer. - Implemented deferred rendering.
- Added
Directional,Point, andSpotlights. - Added the
Sponzascene with multiple light sources.
- Added cascaded shadow maps.
- Added PCF shadow filtering.
- Switched lighting to PBR.
- Added IBL lighting and reflections.
- Added support for
irradiance map,BRDF integration map, andprefiltered environment map.
AGFramework is organized as a small rendering framework rather than a full game engine. Its current architecture aims to keep rendering responsibilities separated into practical modules while staying simple enough to evolve incrementally.
The framework does not follow one strict high-level pattern such as MVC or ECS. Instead, it currently uses a combination of:
- layered architecture
- subsystem decomposition
- facade-style entry points
- composition over inheritance
AGFramework/src/Core- window, timer, and input systems.AGFramework/src/Graphics/dx12- core DirectX 12 context and helper classes.AGFramework/src/Graphics- deferred renderer, lighting, shadows, materials, and scene code.AGFramework/shaders- HLSL shaders.Assets- models, textures, and demo materials.



