This is a DirectX application with some basic Game engine features.
- Direct3D 12.0 (Feature Level: 11.0)
- Microsoft DirectX Graphics Infrastructure (DXGI) 1.4
- Use Warp Device by not DirectX supported device
- Toogle fullscreen at runtime (Modify buffers, SwapChain, camera, etc.)
- Draw triangle
- Draw quad
- Draw quads with depth information
- Draw dynamic triangles (triangle, quad, pentagon, hexagon, octagon, ...)
- Draw images
- Draw text
- Splash/Loading-Screen
- Vertex/Pixel-Shader (Shader Model 5.0)
- V-Sync
- Draw world
- Load mesh (.obj [Blender], Texture)
- Optimization of vertices and indices on load
- Load dynamic objects and meshes for level (Level-File)
- Load mesh once for all level objects (resource optimization)
- Load mesh (.obj [Blender], Texture)
- Camera First-Person
- Free look
- Movement (W,A,S,D)
- 85° restriction
- Quaternionen rotation (Mouse input)
- Update with frame delta
- Collision
- Axis Aligned Bounding Box (AABB)
- Object-oriented Bounding Box (OOBB)
- Two-step collision detection (1. AABB -> 2. OOBB)
- Exact static mesh collision
- Frustum
- Get Frustum from Camera
- Frustum culling (Draw only objects in frustum)
- Release mesh when not culled (Reload mesh if culled again)
- W: Move forward
- A: Move left
- S: Move down
- D: Move right
- H: Show help (console)
- I: Show current fps (console)
- F11: Toggle fullscreen
- ESC: Close application
- Small Benchmark on startup
Models: (Barrier, Floor, Wall) by Tobias Reimann
Textures: (Bake_Barrier, Bake_Floor, Bake_Wall) by Tobias Reimann
TextureLoader by braynzarsoft.net
dxdx12.h by Microsoft Github Microsoft/DirectX-Graphics-Samples