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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMTY4MDAsIm5iZiI6MTcyMDMxNjUwMCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkwLTZjYWVhNGYyLTY0YzYtNGM5Zi1iYWVhLTllNTlkNTNhYmEwZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwN1QwMTQxNDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NzI3ZWQ5MjFjZGRmNTQzMTQ0ZDJkNzJlMzQ5MDU1ZTEwYjc1YTkyMmI0OTQxYTM2YTQ5N2RhNDUxMDRjYTkwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.BqjfZshF_GrTxnS5jwxRLPWdN8pyl3nb3AjUPgZfB88)
![](https://private-user-images.githubusercontent.com/790432/340043388-4bb91ea5-a8a2-4ab1-a2d1-448a2b3a9064.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMTY4MDAsIm5iZiI6MTcyMDMxNjUwMCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzg4LTRiYjkxZWE1LWE4YTItNGFiMS1hMmQxLTQ0OGEyYjNhOTA2NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwN1QwMTQxNDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lYWQwNDE0MDM2ZTMxMGM1NDhmYzlkYmI4OWFhYTcwYmU5OGJjYzVjYTk5NmZjNzM1ZDk5Y2ZjOWM3ZjAyNGM1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.hTISuEEvQmbeg8zY3_a-unPxKoxELF_ozOuaV8B1sxs)
![](https://private-user-images.githubusercontent.com/790432/340043393-023268cf-dfad-46b3-9a1b-74df7d20578e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMTY4MDAsIm5iZiI6MTcyMDMxNjUwMCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkzLTAyMzI2OGNmLWRmYWQtNDZiMy05YTFiLTc0ZGY3ZDIwNTc4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcwN1QwMTQxNDBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZGRlMTg1NTMzZjg5ZGExMDBjMDJjNzIxNDA0ZWUxNzJkMDU5ZDQxMmM5ZGI0MzQ2NTFjY2E0OTk1ODcxNjg5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.sJ5FWJgBdt6GlXpuV5THNLEB-bC-R6RgDPr9-vtGXKk)
- 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