A graphics engine developed using C++ and DirectX 12.
![](https://private-user-images.githubusercontent.com/790432/340043390-6caea4f2-64c6-4c9f-baea-9e59d53aba0e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwMzUzMzQsIm5iZiI6MTcyNjAzNTAzNCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkwLTZjYWVhNGYyLTY0YzYtNGM5Zi1iYWVhLTllNTlkNTNhYmEwZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMVQwNjEwMzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xMDJiNTNmZTRkM2E3N2RmZDYzMzg4ODY3MmFhYjcyMWUyM2VlODRkYzJhMzk5MDFlMjBmYTA0NTcxZGI5ZDYzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.QSQ7RX4g2dkY8zK2Lj5peJzIB2h5qPLAF_rulNdXx8M)
![](https://private-user-images.githubusercontent.com/790432/340043388-4bb91ea5-a8a2-4ab1-a2d1-448a2b3a9064.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwMzUzMzQsIm5iZiI6MTcyNjAzNTAzNCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzg4LTRiYjkxZWE1LWE4YTItNGFiMS1hMmQxLTQ0OGEyYjNhOTA2NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMVQwNjEwMzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zNGU5YTkyNWJkZTRkNWEzMTUxZDAwMzM0NDM2OTdlZWE5MGRiNmE3ZTMwZjZhNTI3YmQ2ZTQwZDM4Y2I1ZmEzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.x_KxolkYhbeTaQJDtp4dhoymOUFe689bRauyuC8-UN4)
![](https://private-user-images.githubusercontent.com/790432/340043393-023268cf-dfad-46b3-9a1b-74df7d20578e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwMzUzMzQsIm5iZiI6MTcyNjAzNTAzNCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkzLTAyMzI2OGNmLWRmYWQtNDZiMy05YTFiLTc0ZGY3ZDIwNTc4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMVQwNjEwMzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMWZlMjE2OTQ3MTE4YWRiNTlmNTAzOWFiM2U0YTMzNTM0NGQ0ZjNlYTA2MzQ1MmY3ZjA5OTQ1MWNmMWY5MWU3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.iTCwFLcpKxW8xIowGlRDNLgQlPaBW2KzO9-eUgfc-_M)
- PBR
- IBL
- Indirect draw
- Vertex pulling
- Bindless textures using unbounded array and dynamic indexing
- Basic abstraction with simple resource state tracking and easier barrier insertion
- Reverse depth
- Blinn-Phong
- Tonemapping
- MSAA
- Mipmap generator using compute shader
- Skybox from equirectangular HDR image
- Run CMake
- Set absolute paths for assets and shaders in
HelloDX12/Header/Configs.h
- That's it!
Dependencies: Agility SDK, assimp, D3D12MemoryAllocator, DXC, glm, imgui, stb