A cross-platform C++ rendering library that abstracts over Direct3D, Metal, OpenGL, Vulkan and WebGL so you can bring your own engine.
OGRECave/ogre
OGRE is a modular C++ rendering engine that abstracts Vulkan, Direct3D and OpenGL for building 3D applications in C++ and Python.
- Stars
- 4,692
- Forks
- 1,044
- Open issues
- 167
- Last commit
- 11 hours ago
What is it?
OGRE (Object-Oriented Graphics Rendering Engine) is a C++ rendering backend for custom engine development. It abstracts Vulkan, Direct3D and OpenGL behind a single interface, so engine programmers can focus on game or simulation logic rather than per-API graphics code.
The engine covers common rendering needs: physically based shading, stencil and texture-based shadows, hardware and software skeletal animation, particle systems, multi-layer terrain with LOD, and a compositor for post-processing effects such as bloom and HDR. Dear ImGui can be used for in-game UI, and Bullet Physics can supply rigid body dynamics.
Bindings for Python, C# and Java are available, and the Python package ogre-python includes a high-level HighPy API for loading glTF, OBJ or Ogre meshes quickly. A WebAssembly demo runs in the browser, and the project is used in robotics tools such as rviz and Gazebo.
Key features
- 01Abstracts Vulkan, Direct3D and OpenGL behind one rendering API.
- 02Physically based shading with dynamic stencil and texture shadows.
- 03Hardware and software skeletal animation with particle systems.
- 04Compositor pipeline for post-processing such as bloom and HDR.
- 05Multi-layer terrain with LOD, plus bump and offset mapping.
- 06Python, C# and Java bindings, including a high-level Python API.
Use cases
- Building a custom 3D game engine in C++.
- Developing industrial simulation or visualization tools.
- Prototyping 3D scenes quickly in Python.
- Creating robotics visualization tools that render 3D robot models.
Quick start
- 1
Install the Python bindings with pip
pip install ogre-python - 2
Run the HighPy example script from the README
- 3
Download the pre-compiled Windows SDK from the README link
- 4
Follow the Building OGRE guide to compile from source
In collections
Topics
FAQ
- What is ogre?
- OGRE is a modular C++ rendering engine that abstracts Vulkan, Direct3D and OpenGL for building 3D applications in C++ and Python. OGRE (Object-Oriented Graphics Rendering Engine) is a C++ rendering backend for custom engine development. It abstracts Vulkan, Direct3D and OpenGL behind a single interface, so engine programmers can focus on game or simulation logic rather than per-API graphics code.
- Is ogre free to use? What license does it have?
- ogre is open source under the MIT license. Check the license terms before using it in commercial products.
- Is ogre still maintained?
- Actively maintained. The last commit to ogre was on Nov 7, 2026.
- What can I use ogre for?
- Building a custom 3D game engine in C++. Developing industrial simulation or visualization tools. Prototyping 3D scenes quickly in Python. Creating robotics visualization tools that render 3D robot models.
- How do I install ogre?
- Install the Python bindings with pip: pip install ogre-python Run the HighPy example script from the README Download the pre-compiled Windows SDK from the README link Follow the Building OGRE guide to compile from source
- Where can I get ogre?
- The source code and installation instructions are on GitHub: https://github.com/OGRECave/ogre
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows and WebGL2, designed to be small and efficient on Android.
Stride is a free, open-source cross-platform game engine written in C# for realistic rendering and VR, with a visual editor called Game Studio.
A cross-platform C++17 UI framework with GLFW/SDL2 window backends and OpenGL/Vulkan rendering, built around a declarative DSL.
An open-source, MIT-licensed C++20 game engine with a Vulkan/Metal/WebGPU renderer, an ECS, a cross-platform editor and a WebGPU build for the browser.
A loader-generator that produces C/C++ and other language bindings for OpenGL, Vulkan, EGL, GLX and WGL from the official specifications.