dtrajko / MoravaEngine

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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

License:Apache License 2.0


Languages

Language:C++ 81.7%Language:C 8.0%Language:GLSL 7.4%Language:C# 1.3%Language:CMake 0.7%Language:Haskell 0.7%Language:HLSL 0.2%