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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE3MzE0ODUsIm5iZiI6MTcyMTczMTE4NSwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkwLTZjYWVhNGYyLTY0YzYtNGM5Zi1iYWVhLTllNTlkNTNhYmEwZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyM1QxMDM5NDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01MjU4MmFhMzEyZmVmNWFiOTQ3YmNlZGQ2OThiNjBjYzViNTgxZjAyZmE1YjZmNzlmMjZjNTYxMjllMGU4MDY2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.AE5LUdjCUL8oVjubAs0S98z8cJU3aAug5yXPu7QT7hE)
![](https://private-user-images.githubusercontent.com/790432/340043388-4bb91ea5-a8a2-4ab1-a2d1-448a2b3a9064.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE3MzE0ODUsIm5iZiI6MTcyMTczMTE4NSwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzg4LTRiYjkxZWE1LWE4YTItNGFiMS1hMmQxLTQ0OGEyYjNhOTA2NC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyM1QxMDM5NDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jNDI5MmI1MWEzZDA0OTc4NGZiZjZjNTIyZGI3MDY3MWMyOTRmNmVjNDY2YWZmNGFhNzY2YzIyNGNiMDk0OWJkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.1BUE4o8dmE7it9J6A_76vBmTYODrR9KtIcOPLDi5LR4)
![](https://private-user-images.githubusercontent.com/790432/340043393-023268cf-dfad-46b3-9a1b-74df7d20578e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE3MzE0ODUsIm5iZiI6MTcyMTczMTE4NSwicGF0aCI6Ii83OTA0MzIvMzQwMDQzMzkzLTAyMzI2OGNmLWRmYWQtNDZiMy05YTFiLTc0ZGY3ZDIwNTc4ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyM1QxMDM5NDVaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zNGM4ODBhYTcyZWIyZWE5YWVjOGIyYmFjNzc5OGNhNTAxYzZjOGY4NjJjNzJkMDQxYTRmZDhmZjg1YzY1MDcxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.wM88Vp13Gb8BKozG51kns8fIzBmzPsV-21KgKBEmiuo)
- 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