Skip to content

This is a DirectX application with some basic Game engine features.

Notifications You must be signed in to change notification settings

PLenz/Small-DirectX-Game-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Small DirectX Game-Engine

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

Features

  • 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)
  • 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)

Key-Mapping

  • 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

Miscellaneous

  • Small Benchmark on startup

Screenshots

DXGE

Renderer

Renderer

Copyright

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