A lightweight, simple, and performant 3D game engine library, being developed in OpenGL 3.3 (contexts < 3.3 are not officially supported, but can be requested and worked with).
Note: When viewing this repository's source on GitHub's web interface, add
?ts=4
to the URL to have it use the correct tab spacing (4).
Note:
le3d-demo
requires OpenGL 3.3
Supported environments:
- x86/x64 Windows (MSVC / clang); CRT required
- x86/x64 Linux (g++ / clang)
Quickstart:
- VS2019/Ninja:
- Open root directory in Visual Studio 2019
- Select Build > Build All
- Run le3d-demo (or custom executable target)
- Others (CMake GUI):
- Run CMake
- Select root directory as source
- Select an output directory (
out/...
is ignored) - Click Configure and pick your build environment; ensure no errors are thrown
- Click Generate
- Open project and build
- Run le3d-demo (or custom executable target)
- Shell:
cmake -G <generator> . -B out/<build_dir> -DCMAKE_BUILD_TYPE=<build_config>
cmake --build out/<build_dir>
LittleEngine3D uses an OpenGL 3.3 Core context by default, with GL_ARB_texture_filter_anisotropic
loaded, and uses forward rendering with a fixed number of point and directional lights. Each Mesh
contains one Material
which supports diffuse and specular textures and various built-in uniforms as defined in env::g_config
(entire struct can be overridden).
- Perspective and orthographic projections
- 2D view and quad drawing
- Model loading
- Text rendering
- Debug primitives (cube, sphere, cone, etc)
- Threaded Renderer
- Async manifest loader
- Particle systems (using instancing)
- Shadows (directional lights)
- ImgUI integration
- Trivial collision system
Public (use via #include <libName/.../header>
):
Private: