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, Raw)
- 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
To keep sre as simple and flexible as possible the following features are not a part of sre:
- Scenegraphs
- Deferred rendering
- Shadowmap support
- Dynamic particle systems
Example usage can be found in the examples folder.
More examples/projects can be found on https://github.com/mortennobel/SimpleRenderEngineProject which also contains all/most dependencies for Windows and macOS.
API documentation is defined in header files.
- https://www.libsdl.org Simple Direct Layer 2.x
- https://www.libsdl.org/projects/SDL_image/ Simple Direct Layer Image 2.x
- http://glm.g-truc.net/ OpenGL Mathematics (bundled)
- https://www.opengl.org/registry/ OpenGL Registry
- https://github.com/ocornut/imgui ImGui 1.53 (bundled)
- https://github.com/BalazsJako/ImGuiColorTextEdit ImGuiColorTextEdit (bundled)
- https://github.com/kazuho/picojson PicoJSON(bundled)