We just tagged the Ogre 13 release, making it the new current and recommended version. We would advise you to update wherever possible, to benefit from all the fixes and improvements that made their way into the new release.
This release represents 2.5 years of work from various contributors when compared to the previous major 1.12 release. Compared to the last Ogre minor release (1.12.12), however we are only talking about 4 months. Here, you will mainly find bugfixes and the architectural changes that justify the version number bump.
Table of Contents
For source code and pre-compiled SDKs, see the downloads page.
Changes
The 13 release focuses on preparing the codebase for future development and fixing architectural issues. Some obsolete parts were removed and certain APIs adapted to be more generic.
For an detailed overview of the changes see the New And Noteworthy Document. Among the highlights are:
Semantic Versioning
Ogre is now using semantic versioning as in MAJOR.MINOR.PATCH, where backwards-incompatible API changes require increasing MAJOR.
Historically, Ogre did not follow this rule – otherwise Ogre 1.2 would have become Ogre 2.0.
But that release predates the SemVer website and back then staying at 0.x forever was cool.
However, now that the Ogre/ OgreNext split has taken place, we can do the Java thing and drop the 1.x prefix. The SemVer scheme is what most users expect nowadays and resolves the confusion that the seemingly innocent PATCH bump would break ABI.
Note, that this is only a cosmetic change to reflect how Ogre development works.
For instance, Ogre 1.12.3 included new features back then and nowadays would have been called Ogre 12.3.
Despite the large version jump, porting 1.12>13 takes similar efforts to porting 1.11>1.12.
Improved API stability
To improve out API stability guarantee, many protected members were converted to private.
Historically, Ogre only used only public and protected visibility. While this made it easy to customise Ogre classes at will, it is not so great when it comes to committing to a stable API.
Previously, you could (accidentally) use a inherited class member that we would later need to change, causing your code to break. While we could exclude all protected members from our API guarantee, it would be even better if the compiler would check that you only use the stable API – thats exactly what private visibility does.
While at it, we also extend the API stability to shader code. As we dont have public/ private there, we use the @public-api
comment to annotate the API. Notably, this includes OgreUninifiedShader.h
.
RTSS additions
Re-usable Normal Map stage. Can now be combined with GBuffer rendering:
![](https://www.ogre3d.org/wp-content/uploads/2021/06/before-1024x576.jpg)
![](https://www.ogre3d.org/wp-content/uploads/2021/06/after-1024x576.jpg)
WBOIT: Weighted, blended, order-independent Transparency stage. Adds the respective algorithm to Ogre.
![](https://www.ogre3d.org/wp-content/uploads/2021/08/sort0-1024x768.png)
![](https://www.ogre3d.org/wp-content/uploads/2021/08/sort1-1024x768.png)
![](https://www.ogre3d.org/wp-content/uploads/2021/08/wboit1-1024x768.png)
Improved Glyph placement
Previously using italic fonts could lead to cut-off glyphs as Ogre did not consider glyph-overlap. See e.g the “j” and “T” in the following images:
![](https://www.ogre3d.org/wp-content/uploads/2021/07/before.png)
![](https://www.ogre3d.org/wp-content/uploads/2021/07/after.png)
Also starring
- Zero external dependencies
- Full Constant buffers support on D3D11
- GLSLang Plugin
- DotScene export
- New StaticGeometry Tutorial
For an overview of only the bugfixes, see the v1.12.13 changelog.
We continued removing the deprecated API with this release and together with the architectural improvements it means that your code might not compile any more. However we tried to keep API changes as non-invasive as possible.
Contributors
We would like to thank everyone who helped us make this release possible. The following list shows a list of contributors for Ogre 13 based on the git logs:
Pavel Rojtberg, Guillermo Ojea Quintana, Erik Ogenvik, Emily Mansfield, Jan Geyken, SNiLD, Simon Schmeisser, Eugene Golushkov, Joilnen, Andre Kampling, Kevin Gaudet, Oliver Old, Raymond W. Ko, Fabrice Fontaine, Felix Gorschlüter, Mikko Rytkönen, Natan, Tobias Schmidt, cread mefford, jvanlabeke, AndreKampling, Andrey Vasiliev, BenjaminPenz, ChristinaDickmann, Crashy, Edgar, Fan Jiang, Gleb Popov, JanGeyken, Jean-Baptiste Griffo, Jonathan Wakely, Kristupas Stumbrys, Martin Gaudreault, Matías N. Goldberg, Miss Yoshino, NancyLi1013, Natan Fernandes, Silvio Traversaro, Stoyanov Vlad, Tobias Fischer, Tárcio Vinícius, alasja, cdi, creadmefford, devinshine, gmanol, guster32, kPYKx7Ddw4n1aIKZ, nia, oberluz
Ogre 1.12.13
If you are currently deep in the development cycle using 1.12.12 and do not want any disruptions, I have good news for you: relevant bug-fix only commits were cherry-picked from master (13) to 1.12 and accumulated in the 1.12.13 release, which you can find here.