Tuning your Graphics Settings
ETW is built on a brand new rendering engine, internally code-named “Warscape”. The Engine is DirectX9-based, supporting both Shader Model 2 and Shader Model 3 graphics hardware. Supporting Shader Model 2 hardware has proven to be very challenging, requiring scalable content, SM2-optimized alternate shader paths, and a host of careful optimizations to squeeze out the most from SM2 cards. The result is an Engine that scales down to hardware ~4 years old – no mean feat for a game of this complexity.
The focus of this article is on tuning your graphics settings, so I won’t go in-depth on Engine features, unless doing so helps communicate the impact of each setting.
So let’s talk about the Settings UI. Keen players will have already noted that the In-game graphics settings UI (i.e. the UI shown when in a battle or the campaign) is a subset of the Front-end graphics UI, with some options missing from the in-game UI.
Here’s a handy table showing you where these wee beasties live.
Graphics Settings Availability
Resolution – Front End and In-Game
Windowed - Front End and In-Game
Vertical Sync. – Front End and In-Game
Gamma – Front End and In-Game
Brightness – Front End and In-Game
Shader Model – Front End
Texture Quality – Front End and In-Game
Texture Filtering – Front End and In-Game
Anti-Aliasing – Front End and In-Game
HDR – Front End and In-Game
Shadows – Front End and In-Game
Hardware Shadows – Front End and In-Game
Volumetric Effects - Front End and In-Game
Depth Of Field – Front End and In-Game
SSAO – Front End and In-Game
Distortion Effects – Front End and In-Game
Unit Size - Front End
Unit Detail – Front End
Trees – Front End
Grass – Front End
Water – Front End and In-Game
Sky – Front End and In-Game
Building Detail – Front End
Ship Detail – Front End
Particle Effects – Front End
The reason why some options are missing from the in-game graphics settings UI is due to internal engine limitations – in some cases we don’t retain enough internal data to switch settings on-the-fly in-game e.g. for buildings on low quality settings we discard the highest level-of-detail for buildings at scene load, making it difficult to reload efficiently with high Building Detail setting.
So let’s look at each setting and review how it impacts the game.
As you all probably know already, the more pixels you draw per frame, the more GPU-power you need, so as a general rule, pick the lowest screen resolution that you can.
The minimum resolution we support is a humble 800×600, clearly this resolution is of no interest to most gamers, but if you’ve got a SM2 card with barely enough texture memory to meet the min spec (256MB) then you may find that playing in 800×600 rez gives you a much smoother frame rate. For most folks though this low rez is of little interest.
Windowed resolutions are pre-picked, full screen resolutions are determined by your graphics hardware. Out of the Box we’ll run in full screen and default to your desktop resolution. We support all common widescreen formats.
Top Tip: Most monitors have a ‘native resolution’, a resolution at which the screen pixels map 1-to-1 with the elements of the display. At this resolution, running in full screen, your game will look crisp; at other resolutions the display hardware will need to scale pixels to map onto the screen elements, which may impact the crispness of the resulting image – though typically you will only notice this on UI text. So have a dig around for details of your monitor and see if you can see any difference at the monitor’s native resolution.
Windowed (Check Box)
I strongly recommend that you run the game in full screen always, you’ll generally get better performance versus windowed mode, and your graphics card will have exclusive access to the available video memory, not such an issue on Vista, but generally recommended and very significant on XP.
If you do run in Windowed mode, then kill off any other DirectX apps in case they’re stealing precious video memory resources.
Vertical Synchronisation (Check Box)
When you are full-screen, enabling this option limits the frame rate to the monitors refresh rate, avoiding tearing that you may see with this option disabled. My recommendation is to run with this off, as the tearing is usually only occasional and minor, and you should get higher frame rates with this disabled.
These are standard controls that allow you to balance the game’s colour response to better match your monitor or personal preferences.
Shader Model (Drop-down, Shader Model 2, Shader Model 3 (Low), Shader Model 3 (High))
In short, a card that supports Shader Model 3 is capable of rendering many instances of the same geometry very efficiently, compared to Shader Model 2.
If you have Shader Model 3 support then don’t use Shader Model 2; Shader Model 2 is slower, less efficient, and visually less pleasing. If the two Shader Model 3 options are disabled, you have a relatively old graphics card that doesn’t support SM3 – if you can find spare cash then a wise investment would be an upgrade to a SM3 card – of which there are many options to choose from. I won’t make any recommendations as it’s a matter of budget and personal preference.
We’ve provided two flavours of SM3 for your enjoyment. The Shader Model 3 (Low) setting runs the high performance Shader Model 3 instancing path, but does so with a set of light weight Shader Model 2 shaders, so you benefit from the enhanced performance of instancing, but with less visually complex detail across-the-board, so you win on fame rate – sometimes by as much as 8-10fps, depending on your rig. The Shader Model 3 (High) setting runs with instancing and our high quality shader path, which delivers the most realistic in-game graphics, but uses the most GPU horsepower.
Texture Quality (Drop-down: Low,Medium,High,Ultra)
This is a key setting both in terms of visual fidelity but also for your texture footprint.
By setting this to anything but Ultra you are telling the engine to throw away detail from the texture maps. A Texture is comprised of a set of 2D images, from the highest detail e.g. 256×256 pixels in size down to the lowest detail – 1×1. Each level of detail is known as a “MIP”, and each MIP Level is a power-of-2 smaller in each dimension e.g. a 256×256 texture has 9 MIP Levels: [256x256,128x128,64x64,32x32,16x16,8x8,4x4,2x2,1x1]. The highest resolutions are seen close up, the lowest resolutions far in the distance. Your Texture Filtering setting determines how the hardware interpolates between MIPS.
So, with this in mind, each Texture Quality level corresponds to throwing away one or more MIP Levels. At Ultra you see the best textures, nothing is thrown away. High settings causes the highest Level to be discarded – the [256x256] level in the example above. Medium discards 2 levels e.g. [256x256 ,128x128] Low discards 3 levels.
Discarding Textures in this manner can free up considerable video resources, but comes at a cost of visual richness – as the lower MIPS can look blocky and very SNES-like.
Texture Filtering (Drop-down Bilinear, Trilinear, Anisotropic 2x, Anisotropic 4x, Anisotropic 8x, Anisotropic 16x)
This setting impacts how your graphics card interpolates a texture across the surface of an object in 3D space. In short, the higher the setting, the better the quality of the resulting interpolation. Of course, like chocolate, there’s a price to pay for over-indulgence, as the higher settings can hit your frame rate.
I recommend that you stick with Trilinear unless you can personally see a qualitative difference in the game visuals when you turn on Anisotropic. The positive visual impact of Anisotropic Filtering is most visible on the Terrain, so the way to figure this out is to run a land battle and look at the terrain in Trilinear vs Anisotropic – with Aniso. on you should see visually cleaner terrain textures, if you don’t see a difference, then leave this option on Trilinear, which modern hardware can handle with little performance hit.
Anti-Aliasing (Drop-down, values None,2x,4x,8x,16x)
Anti-aliasing is the first setting that I recommend you should tweak to claw back performance.
Anti-aliasing has a big impact on game visuals as enabling it causes the hardware to smooth out the edges of images on screen, so otherwise jagged lines become softer and less noticeable.
The 2x, 4x notation, for simplicity, can be thought of as the additional size of the texture required to enable the effect. e.g. 2x means a texture twice the size, 4x four times etc.
Depending on your other settings turning on AA can have a major impact on your video memory footprint. At 4x setting any full screen render targets are 4x the size in each dimension, which equates to roughly 16x the video memory required, per anti-aliased surface.
HDR – High Dynamic Range Lighting (CheckBox)
This is a big button to push – by which I mean that turning on HDR has significant impact on the performance of the game, especially if you’ve also chosen to enable Anti-Aliasing.
If your hardware supports HDR, and not all hardware does, then you can benefit from the enhanced lighting that enabling this setting provides. HDR delivers ‘bling’ by simulating the eyes response to bright lights – these areas of over-brightness, e.g. the sun glinting from a raised sword, cause a sudden flash of bright light that bleeds into the surrounding area – much the same way as bright light seen through a window appears to bleed around a window frame. The effect is cool, but subtle.
HDR is very spendy on video memory, especially if you’ve also enabled Anti-Aliasing, so spend some time to get the optimum setting for your PC.
Shadows (Drop-down: Off,Low,Medium,High,Ultra)
Rendering shadows of all objects in the scene requires us to render them from the light’s perspective into a texture, which is then sampled when computing occlusion for any object in the scene.
The Quality setting controls two factors, the size of the shadow-map texture (which on the highest setting is 2048×2048, on lowest is 512×512), and it also impacts the range over which the shadows fade out in the scene: 1000 scalemeters on Ultra, 100 meters on Low ( the playable area is 2Kx2K meters).
Shadow artefacts are very visible on the lowest setting – mitigated somewhat by turning on Hardware Shadows.
Hardware Shadows (CheckBox)
Enabling this option causes the engine to use hardware-accelerated texture sampling to improve the visual quality of shadows – effectively softening the edges, and reducing visible blocky artefacts. This works on most recent ATI & NVIDIA hardware, and should be enabled if it’s not too costly on your frame rate.
Volumetric Effects (CheckBox)
A catchy name for a family of graphical effects in the game, which all require a separate render pass for all screen objects to compute and record their depth in the scene. Yep, that means rendering all the scene objects twice per frame, once to record depth, then again to render the lit scene (and a third time to compute shadows!). Clearly this has a significant impact on performance – though the depth pass is heavily optimized and comparatively light weight.
Why do we do this? Well, once we have the depth information we can do cool things. Think back to most games you’ve played where these cool explosions are spoilt by the hard line the particles make with the ground. With depth information at-hand we can alpha out the edges of particles when they intersect with surfaces – leading to a very soft edge with no VPL (Visible Particle Lines).
Building on this effect are Depth Of Field (DOF) and Screen Space Ambient Occlusion (SSAO), both of which require a readable depth buffer to work their magic.
Depth of Field (CheckBox)
This effect simulates the focal range of a camera, objects inside the focal distance are sharp, objects outside are blurred.
You’ll see this in action in the Campaign and also in Battles, where distant objects are out-of-focus. I personally find this very useful, as it helps me focus on the action, and particularly on the campaign map leads to a nice table-top-gaming feel. This is not to everyone’s taste, so take it for a spin.
SSAO (ambient shadow) (CheckBox)
SSAO stands for Screen Space Ambient Occlusion. This is very much a high end feature, it’s the most computationally intensive of the in-game effects, but the results add significant realism to the scene.
Simply put, enabling this option – which is enabled if Volumetric Effects are enabled, and your card is beefy enough – causes the engine to compute local shadowing of objects in the scene.
Imagine you are looking into a white cardboard box in daylight. The inside corners of the box will be slightly darker than the sides, because the sides effectively shadow the corners as light bounces around on its merry photonic journey around the box.
So that’s what SSAO simulates, and the results are instantly noticeable in-game, where subtle shadows appear under objects grounding them to the scene, and shadows appear in the folds of soldier uniforms and in the nooks and crannies of buildings.
In short it’s a big switch that you should throw if you can. The results are a much richer scene, with noticeably more realistic lighting.
Distortion Effects(heat haze) (Checkbox)
This full screen visual effect simulates the effects of drinking 6 pints of Sussex – also creating a hazy distortion affect around heat sources.
It’s relatively cheap to implement too, so you’ll notice the effect on explosions in game, especially the concussion impact of grenadiers doing their stuff – where a shockwave of distortion ripples out from the impact. It’s all very satisfying, and quite cheap to enable.
Unit Size (Drop-down: Small,Medium,Large,Ultra)
This is one of the key settings that you should play with to tweak your performance. Unit Scale is more than just a graphical effect, as it affects the campaign game as well.
Simply put, the lower you put this setting, the fewer soldiers are used to represent your units. As rendering hundreds or thousands of units is one of the trademarks of Total War, and our primary performance bottleneck (closely followed by trees & grass) you should spend some time playing with this setting; and I apologize for this being available only in the Front End (technical limitations), which makes playing with it very time-consuming.
Unit Detail (Drop-down: Low,Medium,High,Ultra)
The close Banjo-playing cousin of Unit Scale, the Unit Detail setting has a huge impact on the game’s performance and visual look.
Units in ETW are hugely improved over Med2, each unit can have variants of each body part modelled- torso, legs, arms, head, hat, cross-belts, hair, cuffs, face hair, and hands. It’s a huge number of variations to render and a challenge to efficient instancing.
The higher your Unit Detail setting the more variation you will see in your units, from coarse level detail such as two chaps with different coloured tunics, to fine detail such as different beard styles close-up.
There are literally hundreds of unique animations for each unit, and Unit Detail setting impacts how we cull out these variations with distance – as units recede into the distance we start sharing their animations, so we have less unique animations to render.
Trees (Drop-down: Low,Medium,High,Ultra)
This setting controls the distance at which those lovely 3D trees turn into billboards. Rendering thousands of 3D trees is very costly, and so arriving at a good setting for Tree quality can have a big impact on you frame rate (and enjoyment).
The lower this setting, the closer those pesky distant billboards become. The sharp-eyed observer will spot that each tree has a number of discrete levels of detail (3 to be precise) that it transitions through on the way to billboards, which helps smooth the transition.
This setting also covers shrubs, which have 3 levels-of-detail, but never render as billboards – you’ll notice that they “fizzle out” as they recede into the distance, disappearing long before the trees billboard.
Lowering the setting also causes as to cull far billboard trees from the outfield (the area outside the playable area) which helps keep frame rates up.
Grass (Drop-down: Off,Low,Medium,High,Ultra)
Grass adds texture and richness to the scene, and the higher you can set this setting, the further away from the camera we draw grass – it’s that simple. Grass clumps are rendered as camera-facing billboards, and pick up the colour of the terrain they sit on.
A note on over-draw as relates to Grass and Trees
When you’re low down to the ground, looking through the grass, or looking through a clump of trees, your frame rate will suffer due to “over draw”, where many screen objects are visually overlapped and the same screen pixel is written to multiple times.
This is going to hurt your frame rate. We do what we can to alleviate this with sorting and culling, but this is only going to go so far. If your rig can handle Volumetric Effects, then enable it because doing so accelerates the process of culling out objects that would otherwise render on top of each-other – I won’t bore you with the details of how/why.
Water (Drop-down: Low,Medium,High,Ultra)
This setting affects the campaign map sea surface rendering as well as rendering of the sea in sea battles, and the river surfaces in land battles.
The 3 features that this setting controls are reflection, refraction and foam effects (sea battles only).
Setting Reflection Refraction Foam
Low Off Off Off
Medium Off On Off
High On On On
Ultra On On On
Note that you only see foam effects on sea battles at high wind settings, so to experiment with the impact of enabling foam, start a custom sea battle with gale-force winds.
Sky (Drop-down:Low ,Medium,High,Ultra)
At Low setting the sky is rendered at scene load to create a classic sky cube rendered at 512×512 resolution. With this setting, clouds are pre-rendered into the sky cube and the sky has a rather grainy old-school look.
At any higher setting than Low the sky is rendered using a high resolution pre-computed sky cube overlaid with high res clouds, the resolution of the sky cube and clouds goes up with quality level, to a max of 1024×1024 per face at the highest resolution.
Building Detail (Drop-down: Low,Medium,High,Ultra)
All that geometry in those Star Fort battles and Town battles can put quite a strain on your graphics card. By dialling down your Building Quality you control the maximum level of detail that we load for each building, and you also control the distance at which buildings lose detail.
Like tress, buildings are created with a number of detail levels (typically 3), the lowest detail level being basically a box with some gross detail. Dialling down this setting causes us to throw away detail levels, and decreases the distance to the lowest detail level – making that boxy-building more noticeable.
This setting is perhaps misnamed, it should read “all non-animated objects quality” – but you can see why we decided to simplify the name. The setting effects farm props such as carts and hay bales, as well as buildings.
Ship Detail (Drop-down: Low,Medium,High,Ultra)
This option is currently not wired in, as of the first release, we will be wiring this in as part of a future patch.
Particle Effects (Drop-down: Low,Medium,High,Ultra)
This setting controls our Particle System, which I mentioned earlier in the context of Volumetric Effects. When we talk about Effects, we’re talking about the smoke, dust and fire effects that add so much atmosphere to a battle.
On low quality settings we limit the total number of particles emitted, and we reduce the emission rate of particles. Put more simply you see less dense smoke. On the lowest setting you will probably notice particles disappearing when they hit the budget, otherwise the culling with quality is not that noticeable. Rendering particles introduces loads of over-draw (which I mentioned earlier in the context of grass & trees). Loads of overlapping particles means lot of overdraw, so play with this setting to fine tune performance.
Appendix: a note on Presets – Automatic, Low, Medium, High, and Ultra
The five preset configurations are selected to give a simple coarse-level performance tuning.
The Automatic Setting sets your graphics to a very conservative configuration, which are the settings selected the first time you run Empire.
The higher presets will only be available if your hardware has sufficient video memory.
I hope that you all found the above walk-through useful, and it helps guide your tune-up session. There’s no single right way to approach performance tuning, as different rigs can perform quite differently. I leave it to the enthusiasts on the forums to formulate and share strategies that may work for others.
Graphics Lead, Empire Total War. The Creative Assembly