/SimpleRenderEngine

Small C++14 render engine

Primary LanguageC++MIT LicenseMIT

GitHub license Build Status Codacy Badge

SimpleRenderEngine

The goal of SimpleRenderEngine (sre) is to provide easy way to get started with graphics programming in 2D or 3D without a deep knowledge about the low-level graphics APIs like OpenGL, DirectX and Vulkan.

SimpleRenderEngine currently depends on Simple Direct Layer 2.x (SDL2), SDL2-image, OpenGL Mathematics (GLM), and OpenGL 3.3 (or higher), Dear ImGui and runs on both Windows, macOS and Linux.

sre provides:

  • Virtual camera (perspective and orthographic)
  • Texture support (JPEG, PNG)
  • Cube map support
  • Mesh support (with custom vertex attributes)
  • Shaders (PBR, Blinn-Phong, unlit, alpha blending, and custom shaders)
  • Enforces efficient use of OpenGL
  • Forward rendering
  • Full C++14 support
  • Support for 2D or 3D rendering
  • GUI rendering (using Dear ImGui)
  • Emscripten support (allows cross compiling to HTML 5 + WebGL)
  • VR support (OpenVR)
  • Bump mapping
  • Shadowmap

To keep sre as simple and flexible as possible the following features are not a part of sre:

  • Scenegraphs
  • Deferred rendering
  • Dynamic particle systems

Getting started

First clone the library (git clone --recurse-submodules https://github.com/mortennobel/SimpleRenderEngine.git). You can use of the examples as starting point.

If you want to create new projects using SimpleRenderEngine you can use SimpleRenderEngineTemplate as a simple project template.

Also look into SimpleRenderEngineProject as starting point, which bundles all/most dependencies for Windows and macOS.

Examples

Example usage can be found in the examples folder.

MatcapPickingSkyboxRender to textureCloth_SimulationShadowsGLSL EditorPlatformerParticle systemImGUI integration

Documentation

API documentation is defined in header files.

Other resources