Skip to content

mortennobel/SimpleRenderEngine

Repository files navigation

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