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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxMTEwMTAsIm5iZiI6MTcyMjExMDcxMCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkwLTZjYWVhNGYyLTY0YzYtNGM5Zi1iYWVhLTllNTlkNTNhYmEwZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyN1QyMDA1MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jN2Q4MTNhNzA5NTBkZTc1ODIzZmVmODQ4ZjYwODVhODc2MDQ1ODk2MzQ1M2ZjM2U4MGZjMGE1NWNhOGRiZmFiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.uJMeWKhKItWhRU_OzZouslF0N2S-xf0IaBN31e0JYkw)
![](https://private-user-images.githubusercontent.com/790432/340043388-4bb91ea5-a8a2-4ab1-a2d1-448a2b3a9064.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxMTEwMTAsIm5iZiI6MTcyMjExMDcxMCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzg4LTRiYjkxZWE1LWE4YTItNGFiMS1hMmQxLTQ0OGEyYjNhOTA2NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyN1QyMDA1MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02ZmU5M2JhYmFkNzU5MmUwZTFlNThmMDNmYmFlYjFmODgwMmQwMmE4YTc4MDg4YzMxMWMzMDIwYTVlZWZiMDA5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.bbN8Vmy0co9Tm7ZB9ixkIT41fgbB8GoUNot-kvEJQEo)
![](https://private-user-images.githubusercontent.com/790432/340043393-023268cf-dfad-46b3-9a1b-74df7d20578e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIxMTEwMTAsIm5iZiI6MTcyMjExMDcxMCwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkzLTAyMzI2OGNmLWRmYWQtNDZiMy05YTFiLTc0ZGY3ZDIwNTc4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyN1QyMDA1MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZmIwODE2YzA5YzM2ZWM2ZTg5NTI0YmFmZWI0YzZjYTgxYzJjMTMzZDk2NGE1YjM4NjMwNzg4OTMxMTdjMDJkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.8pF43fRowK6CNDajSSL09FLqmhxGEdhUPu8CLsrbO5k)
- 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