GLEngine icon indicating copy to clipboard operation
GLEngine copied to clipboard

The goal of this repository is to build rendering focused game engine. Feel free to join me and extend this project.

trafficstars

GLEngine

Codacy BadgeBuild BCH compliance

Preview image of area light

Setup

git clone <https://github.com/RohacekD/GLEngine>
cd GLEngine
git submodule init
git submodule update
premake5 vs2019 (or whatever verison are you using)

Vulkan build

You can run both DirectX and OpenGL renderers side by side but in case of Vulkan you need to choose between OpenGL and Vulkan. If you would like to select Vulkan you need to set premake in this way:

premake5 --glfwapi=vulkan vs2019

Features

  • OpenGL rednerer
  • Entity component system (basic but working solution)
  • Shader preprocessor and loader
  • Scene, model and image loading

Experimental features

  • Vulkan renderer - WIP, not exactly clear build instructions (build only validated or MSVC)
  • Atmospheric renderer - Radiance working ok-ish, but Irradiance part is absolutelty wrong. This means nice sky picture, but aweful ligting model.
  • Skeletal animation - I haven't tested this for ages.
  • Path tracing - most of basic functionality implemented. Never tested biasness thou.

Documentation

Most of documentation can be found here on github/in code.

Some user/programmer documentation could be found here.

Contributing

This repository is open for contribution. You can start by reading this. If you have any question regarding code or feature feel free to contact me.

Architecure

Architecture

  • Red lines denote wrong dependencies
  • Blue lines denote opposite dependencies
  • The dashed line denotes planned dependency

PathTracing

CornellBox

Licensing

License can be found in LICENSE