Making a twenty-plus year-old game look like a modern one while still having good performance can be tricky. Thankfully, OpenMW offers many different settings options for managing performance in various ways.
This page will discuss specific strategies for gaining those precious FPS.
Table Of Contents
- How To Test Performance
- Async Physics
- Field Of View
- Object Paging
- Viewing Distance
- Performance Data
It's good to establish a testing pattern that you can repeat in order to quickly change and test settings values. Something like this:
- Pick a busy scene to test against (Balmora and Ebonheart both have spots that are very demanding).
- Edit your settings as desired.
- Run OpenMW-Launcher.
- Under the "Advanced" tab, click "Testing".
- Check the box next to "Skip menu and generate default character", and enter the cell of your choosing in the box below that.
- Click "Play" in the launcher, and the game will load with your chosen scene.
- Repeat this process as you try different values.
After a bit of testing it's possible to arrive at settings that run well for your system, it just takes some patience.
async num threads under the
[Physics] section from
Advanced tip: If you know you've got multi-threading built into your bullet (this may require compiling it yourself), then you can go ahead and set that to the number of CPU cores you have, divided by two. This isn't a hard rule, but it is a decent starting point.
Personally, I love using a wide FOV in games that allow it. But I've found the performance cost can be significant, and actually nowadays just play with the default FOV.
If you've got a widened FOV, and want to get more performance out of your setup, then do try using the default FOV.
On this website, I suggest somewhat conservative values for groundcover settings but it may be possible to push that a bit further. For example: I've noticed that
distance = 2 doesn't have too much of an impact on most scenes, and the pop-in is greatly reduced.
You could also play with the
density value, to alter the visual appearance at some performance cost.
There are several modding projects that are dedicated to improving the performance of the vanilla Morrowind assets. These include Morrowind Optimization Patch and Project Atlas. These can especially help on lower-end systems.
OpenMW's object paging system is very powerful, and highly configurable. It gives you fine-grained control over how much distant stuff you see in-game. In order to maximize performance with it, you need to find the right amount of distant objects your system can handle.
The most powerful option for controlling this is
object paging min size, which sets the size of things that will get paged (and thus, rendered in the distance). On my system with a powerful GPU, I set this to
0.025, but you could raise it higher for more serious gains (at the cost of more pop-in, and less distant objects overall).
I've had the most success with
maximum shadow map distance for getting performance out of shadows. I play with
4096, which is half the default value. It's worth tweaking this one for potential gains.
Last but not least, the
viewing distance setting will have a major impact on your performance (combined with object paging).
I've found that a value of
71680, or 10 cells, is about as far I can go without having major drops in the busier scenes. If you have a less powerful GPU, experiment with 7 cells or lower, and a higher value for
object paging min size.
A collection of benchmarks I've done, with visuals provided by Flightless Mango and the excellent mangohud software. Right now just one.
- OpenMW 0.47 (b286397dd4): Vanilla Morrowind vs Vanilla + MOP vs Vanilla + Project Atlas vs Vanilla + MOP + Project Atlas