Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,959 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoravaEngine

About

2D/3D graphics engine written in C++ language.

It currently supports the following graphics APIs:

  • OpenGL 4.5+
  • Vulkan 1.2
  • DirectX 11

Its current purpose is to experiment with various CG concepts and techniques:

  • Phong lighting model
  • Shadows (directional light, omni-directional shadows)
  • Physically based rendering (PBR)
  • Image based lighting (IBL)
  • Screen-space ambient occlusion (SSAO)
  • Particle systems
  • Instanced rendering
  • Surface reflection and refraction
  • Framebuffers
  • Post-processing
  • Level of detail
  • Scene editor
  • Perlin noise generator
  • Procedural landmass generation
  • Voxel based volumes
  • Marching cubes algorithm
  • Physics simulations
  • Skeletal animation

Credits

Installation

Build automation based on CMake (in progress)

Project setup:

$ git clone --recursive https://github.com/dtrajko/MoravaEngine.git
$ cd MoravaEngine
  • Build the MoravaEngine with CMake
$ mkdir ./MoravaEngine/build
$ cd ./MoravaEngine/build
$ cmake ..
  • Open the solution ./MoravaEngine/build/MoravaEngine.sln

  • Change Runtime Library from Multi-threaded DLL to Multi-threaded for the project glfw3
    Go to Properties > Configuration Properties > C/C++ > Code Generation > Runtime Library
    Change Runtime Library to either
    "Multi-threaded Debug (/MTd)" (Debug) or
    "Multi-threaded (/MT)" (Release)
    (All projects in MoravaEngine solution should have the Runtime Library option set to either /MTd (Debug) or /MT (Release))

  • Build projects DirectXTex and glfw3

  • Build the project MoravaEngine

Keyboard and Mouse shortcuts

  • Add Mesh or Model: Left CTRL + Left Mouse Button
  • Camera Rotation: Right Mouse Button
  • Camera Movement: W) forward, A) left, S) back, D) right, Q) down, E) up
  • Fast Movement: Left SHIFT + W|A|S|D|Q|E
  • Enable Gizmo: TAB + Left Mouse Button
  • Toggle Gizmo Modes: 1) Translate, 2) Scale, 3) Rotate, 4) Disable
  • Scene Save: Left CTRL + S
  • Scene Reset: Left CTRL + R
  • Scene Load: Left CTRL + L
  • Toggle Wireframe Mode: R
  • Copy scene object: Left CTRL + C

Images

image

image

image

image

image

image

image

image

image

About

2D/3D graphics engine written in C++ language. It currently supports the following graphics APIs: OpenGL 3.3+, Vulkan 1.2, DirectX 11. Its current purpose is to experiment with various CG concepts and techniques.

Topics

Resources

Stars

308 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages