Third-Party Libraries and Tools
OpenMW currently uses the following libraries:
- OpenSceneGraph - OpenGL rendering toolkit
- SDL2 - input and windowing
- MyGUI - GUI toolkit
- Bullet - physics engine
- OpenAL or OpenAL soft - sound playback
- FFmpeg - sound decoding and BINK video playback.
OpenMW additionally uses the following tools:
General notes on dependencies
By default, MyGUI will build with the Ogre3D platform enabled, but Ogre3D is not a hard dependency. If you do not want to have Ogre installed, then configure MyGUI with the dummy platform, and disable tools & demos:
cmake .. -DMYGUI_RENDERSYSTEM=1 -DMYGUI_BUILD_DEMOS=OFF -DMYGUI_BUILD_TOOLS=OFF -DMYGUI_BUILD_PLUGINS=OFF
It is recommended to use the OpenMW/osg fork of OpenSceneGraph. OpenMW still works with "vanilla" OpenSceneGraph, but may run at slightly lower frame rate.
Keep in mind the official OpenSceneGraph 3.6.3 release has a critical regression which causes major instabilities in OpenMW. It appears that 3.6.4 release may have severe issues as well. Even if you don't want to use our fork, make sure to use a build linked against an older or a newer stable release (e.g. 3.4.1 or 3.6.5).
OSG comes with numerous plugins, most of which are not required by OpenMW. If you install OSG from a package manager, then you will have tons of bloat on your system that OpenMW does not need (another reason to build your own).
Only the following plugins are required for OpenMW to function properly:
TrueType fonts support (used for profiler):
.osg format support:
Note, the jpeg/png plugins will not be built unless you have 'libpng' and 'libjpeg' headers installed on your system.
If you are creating a release package, the library files for the plugins need to go in
When using the OSG git master (to be 3.6), or the OpenMW OSG fork, you can use the following cmake arguments to avoid unneeded plugins from being built:
-DBUILD_OSG_PLUGINS_BY_DEFAULT=0 -DBUILD_OSG_PLUGIN_OSG=1 -DBUILD_OSG_PLUGIN_DDS=1 -DBUILD_OSG_PLUGIN_TGA=1 -DBUILD_OSG_PLUGIN_BMP=1 -DBUILD_OSG_PLUGIN_JPEG=1 -DBUILD_OSG_PLUGIN_PNG=1 -DBUILD_OSG_PLUGIN_FREETYPE=1 -DBUILD_OSG_DEPRECATED_SERIALIZERS=0
S3TC texture compression support
OpenMW requires S3TC texture compression support. If you are using a proprietary video driver, you will usually have S3TC support out of the box. With open-source drivers on Linux, you may need to install S3TC support separately. An indicator for missing S3TC support are completely white or pink textures.
If you're using Ubuntu, you can install
libtxc-dxtn-s2tc0 to fix the issue.