SWTOR and Graphics – Part 1

I have been playing Star Wars The Old Republic for some time now, well almost 12 months, since I received my first beta invite and I have seen the game go through many changes over that time.  But the one thing that I haven’t seen a great deal of change in has been graphics.

I have been performing some tweaks, trying to get this working just right.  Surprisingly the game does look good, but I have found that it can use a lot of resources for its look.  But, this isn’t for me to decide, I need to work out how to have the game working the best, smoothest and also looking as good as it can be.

Now, the information I am providing below is from my own experiences and from my own machine.  They may or may not work on your particular machine.  I will be providing these settings for a Windows 7 and Windows 8 machines.  I am sorry any older than that I am do not have a working version that runs the same setup.  I will also be providing a laptop perspective for Windows 7.

I will start with Windows 8, maintaining the theme I have been using.

If you are going to tweak your settings to get the most out of the game, in terms of performance and looks.  You need to start with a baseline.  My recommendation is to turn all graphics options off, or set them to their performance modes.  I will try and go through each of the settings and explain how this can impact on the game, of if it has no baring whatsoever.

The Specs

The specs of my machine, it isn’t cutting edge, but it is decent.

  • Intel Core2 Quad @2.4GHz
  • 8GB DDR2 800 RAM (not great could be better but my motherboard at the moment can only support 4GB of DDR3)
  • 1 x NVIDIA GeForce 570
  • Sound Blaster X-Fi Fatal1ty Titanium Sound Card
  • 2 x 512GB RAID0 HDD
  • 1 x 1TB WD Velociraptor 10K HDD
  • 1 x 128GB SanDisk Extreme SSD

So as you can see, this is not top of the line but, it is decent.  My Windows 8 is running from VHD, which is on the 10K drive, SWTOR is running on the SSD.

I will go through the steps I did to get these settings, which I turned on first an so on.  If you are performing this yourself, I recommend taking the time, have a notepad so you can remember values when you are switching between application or card properties.

NOTE:  I do not know the implementation by BioWare of the settings within the game.  Dependant on the engine they are using, but also what they have done to it as well.  Sometimes the game will use the hardware implementation of a setting, or they will have their own way of performing these tasks.  But due to this, I can make hard facts based on which is a better way of implementing one method over another.

The Information

What do each of the settings mean.  I will admit I am not an expert in this matter, but each setting I will put down here I will state I do not know if I don’t know.  But I will see provide information to all of these through references at the bottom.  I will go through each of these settings from the Mange 3D settings box in the NVIDIA control panel.

Ambient Occlusion

NVIDIA – Ambient occlusion adds realism to scenes by reducing the intensity of ambient light on surfaces blocked by surrounding objects.  It enhances depth perception by providing soft shadow effect for objects based on their placement in the scene.

Basically it is what it says.  Light is a tricky one to work out how is it bounced around the place and what is being lit or not though am ambient light or what merely reflects light to enter the eye.  Many surfaces will reflect light but if that light is not entering your eye is may not be as bright as other objects that have the light hitting your eye.  This is a real life scenario.  Implementing it on screen, is different since you are needing to shade areas that are not sending the light in the right direction, based on the light that is surrounding the area.

Turn this setting off to start with.

Anisotropic Filtering

NVIDIA – Anisotropic texture filtering affects the crispness of textures.

I would go one step further, it is the crispness of textures at distances.  When a surface is rendered, it is having the same texture applied to it, whether you are close or far away.  But obviously how close you are to a texture will affect how clear it will look.  There is a distance at which the texture is not being filtered and is as it is meant to be seen.  But get closer or further away and it will change.

I will show this with a crude example.

filtering

To explain this bluntly, the one without filtering is blurry, it is the application best guessing how the square texture will fit at that perspective there is nothing done other than merely applying the texture.  When filtering is applied, the changes are made to the texture and an approximation of the texture is done, using a variety of methods.  There are different levels for this, 2x to 16x, but those values will depend on the video card, obviously the higher the value the more processing required.  There is also an application controlled option, which enables the applications to control it, duh.

Turn this setting off to start with.

Anti-aliasing

There is a host of options in this and I will go through each of them, some will drastically affect the look of the image while also drastically affecting the performance.  This is the one area that is often poorly implemented and one of the biggest bottle necks as it has really become more and more prevalent as the processing power of GPUs has increased.

Anti-aliasing – FXAA

NVIDIA – FXAA is a fast shader-based post-processing technique that can be applied to any program, including those which do not support other forms of hardware-based anti-aliasing.  FXAA can be used in conjunction with other anti-aliasing settings to improve overall image quality.

This stands for Fast approXimate Anti Aliasing.  It is means to enable a best of both worlds approach to anti-aliasing (AA).  It still gives softer edges of lines that aren’t vertical or horizontal but maintain some semblance of performance.  Though it isn’t as good as the Multi Sample Anti Aliasing (MSAA) or Coverage Sampling Anti Aliasing (CSAA) versions, but the trade off in looks it makes up for in performance gains.

notebook3 I am not going to go into the differences between the different types and what is better.  I am looking at performance and looks.  I can turn on full 16xQ CSAA and watch my frames per second (fps) grind to a halt.   I will provide references to help explain in great detail how each of these are implemented or work.

One down side to this is, text can be adversely affected by this setting.  Since many applications don’t implement this as a standard, it means all data rendered on screen will have this affect applied to it, so text can appear strange.  But we will get to this in time as we tweak and look.

Turn this setting off to start with.

Anti-aliasing – Gamma correction

NVIDIA – Gamma correction enables gamma correction for anti-aliasing.  This setting only affects OpenGL programs.

Since SWTOR is using Direct3D then this will not be used.  And I will not go into any more detail other than, gamma correct changes the brightness of the image to help improve or emulate a little more closely the way the human eye will see details under normal lighting conditions.  With anti-aliasing, the gamma correction is applied to the anti-aliasing portion not the rest of the scene.

Turn this setting off to start with.

Anti-Aliasing – Mode

NVIDIA – Anti-aliasing mode allows you to determine how anti-aliasing is applied in your 3D applications.

Not much to say here.  Other than it is Off, One, it is enhancing the applications settings or it is overriding the applications settings.  I will get into more details when we start the tweaking.

Turn this setting off to start with.

Anti-aliasing – Setting

NVIDIA – Anti-aliasing is a technique used to minimise the “stair step” effect sometimes seen along the edges of 3D objects.

When the above setting, Mode, is set to anything other than off.  It provides the ability to set how much anti-aliasing is applied.  The higher the value, the better the image, but also it will decrease the performance.

Because we have turned off Anti-aliasing – Mode.  This will be disabled.

Anti-aliasing – Transparency

NVIDIA – Allows you to minimize the visible aliasing on the edges of images with transparent textures.

Because anti-aliasing only applies to the edges of 3D objects.  There are times, and in SWTOR this is common, where textures have transparent areas on them.  Because the texture is one flat image, the areas where there is alpha channel information will still be rendered with the jagged edges, this option helps smooth these areas.

Turn this setting off to start with.

CUDA – GPUs

NVIDIA – Allows you to specify which GPUs can be used by CUDA applications, including PhysX.

This is an option that will not really affect processing too much, that said, PhysX uses this and it really puts this into affect when using SLI mode.

Set this setting to None to start with. – Click the drop down and uncheck the checkbox/es you see in there.

Extension limit

NVIDIA – Extension limit indicates whether the driver extension string has been trimmed for compatibility with particular applications.  Some older applications cannot process long extension strings and will crash if the extensions are unlimited.

This is used for OpenGL applications.

Turn this setting off to start with.

Maximum pre-rendered frames

NVIDIA – Maximum pre-rendered frames limits the number of frames the CPU can prepare before the frames are processed by the GPU.  Increasing this value can result in smoother game play at lower frame rates.

This is how the card internally deals with frames.  The game engine will often perform a lot of this task, as it can perform any other additional elements prior to processing.

Turn this setting to Use the 3D application setting to start with.  I will provide more information with this as it can help when frame rates drop below usable.

Multi-display/mixed-GPU acceleration

NIVIDIA – Multi-display/mixed-GPU acceleration determines advanced OpenGL rendering options when using multiple displays and/or graphics card based on different classes of NVIDIA GPUs.  Note that this setting is not related to multi-GPU rendering technology.

This only relates to having a non-SLI configuration and multiple video cards or multiple displays.  Though this setting will be dependant on the configuration of you system, often I would not recommend multiple displays for games, unless you are running a screaming rig.

Turn this setting to Multiple display performance mode to start with.

Texture filtering – Anisotropic sample optimisation

NVIDIA – Anisotropic same optimisation limits the number of anisotropic samples based on Texel size.  This setting only affects DirectX programs.

Another anisotropic texture filtering option.  Basically this option helps improve the filtering performance.  But this can cause artefacts of the process it applies.  If Anisotropic filtering is off, then this should be off.

Turn this setting off to start with.

Texture filtering – Negative LOD bias

NVIDIA – Some applications use negative LOD bias to sharpen texture filtering.  This sharpens the stationary image but introduces aliasing when the scene is in motion.

This is only used when using anisotropic filtering.  Level of detail (LOD) has a setting for every texture.  This tells the graphics card what to do with any filters that might need to be applied to it.  From my understanding of this is, as the texture moves in the scene, the value is given a positive or negative value.  Obviously the negative values are for textures that are a long way off, this is also based on the draw distance of the game as well.  Setting to Allow will not apply the filtering to textures that are have a negative LOD.

These images, provide I believe a good example of what I am talking about with anisotropic filtering and certainly this setting to LOD bias.

No tweaks

Negative LOD no filtering

Negative LOD with 8x Anisotropic filtering

notweaks

noaa-3lodnoaniso

noaa-3lod8xaniso

1

2

3

Negative LOD clamped and 8x Anisotropic filtering

4xaanolod8xaniso

4

  1. So what we see here is the floor gets blurry as it goes further down the corridor.
  2. By simply allowing a negative level of detail (LOD) the changes are very significant.  The grate is a lot sharper but there is a lot of aliasing.
  3. By adding the anisotropic filtering, things change again.  It looks better there is less aliasing on the grate but it is still there.
  4. No we do not allow a negative LOD and rely purely on the anisotropic filtering to improve the textures.

Note with these references, that the frame rate changes, in the top right corner.

Basically allowing negative LOD improves the quality of the image a little than not using it but if you are using anisotropic filtering clamp the LOD and the image quality would be better, but there is a performance loss due to this.

Turn this setting to Allow to start with.

Texture filtering – Quality

NVIDIA – This setting allows you to simple decide if your would prefer performance, quality or a balance between the two.

Adjusting this directly will affect the other texture filtering settings, as it is meant to provide a easy method of setting these values without understanding everything.

Turn this setting to High performance to start with.

Texture filtering – trilinear optimisation

NVIDIA – Trilinear optimisation improves texture filtering performance by allowing bilinear filtering on textures in parts of a scene where trilinear filtering is not necessary.  This setting only affects DirectX programs.

I will not go into the difference between the two.  But suffice to say, that trilinear looks better than bilinear but at a performance loss.  See the references below for more information.

Turn this setting On to start with.

Threaded optimisation

NVIDIA – Allows applications to take advantage of multiple CPUs.

This in essence distributes the load more efficiently when it come running threads across different CPUs or cores.  As it says in the options is that if you know the application is old chances are it is multi-threaded but not in a way splitting the computing on different CPUs or cores would have a benefit.  The OS does a lot of this, but when an application starts on one CPU/Core it will remain on that core.

Applications need to be written different in order to take into account running on many CPUs/Cores.  This doesn’t have a lot bearing on the graphics settings.  I have it in here for completeness.

Turn this setting to Auto to start with.

Triple buffering

NVIDIA – Allows you to enable or disable triple buffering.

Well that was self explanatory.  Well not really.  It mentions that it is for use with VSync.  Why, well it can improve performance when vertical sync is enabled.  It does this by enabling extra buffer space before the image is sent to the monitor for display.  Since VSync is used to lock off the number of frames, it can often inhibit performance as it needs to check this using that additional buffer can overcome that stutter than can happen from time to time with VSync.

This is really my opinion there is more information on this in the references.

Vertical Sync

NVIDIA – Vertical sync locks the frame rendering rate to the monitor refresh rate.  This improves image quality by eliminating horizontal tearing effects in the 3D image.

Horizontal tearing can be jarring if it is excessive.  Basically what it is, is when a screen is drawn, and the next one is so different to the next frame as the screen refreshes.  This happens more often with lower frame rates, well is more noticeable, since at higher frame rates the tears are smaller.

GGDSG_19s

The above shows an example of screen tearing.  This happens only in horizontal motion, so panning or strafing across the screen.  Now if you think that vertical sync will be the fix to all the problems, it won’t.  Yes it will lock the frame rate at the refresh rate of the monitor.  But if the frame rate is below that of the refresh rate it will not increase that.  The lock prevents the frame rate from going over the refresh rate not under.

Turn this setting off to start with.

End of part 1

Well there we have it.  I have gone through and tried to explain each of the settings to my best without going into too much detail. Now the true technicalities might be missing or may not really be true to what actually happens behind the scenes but the purpose this is not to explain in great detail what the GPU or code does to make these happen nor does it try to be too precise in the definitions and by that I mean if I go into that, it starts to become confusing to the average person.

If I am completely wrong, please by all means let me know and I will edit it.  I am not a master of this and I did some research on all of the items and this is me not only interpreting what is stated by also potentially paraphrasing.

See the references for more details on this.  I have referenced each of the sites I have used images from.

Part 2 will go into the settings of Star Wars The Old Republic and setting our baseline.

References

  1. http://en.wikipedia.org/wiki/Ambient_occlusion
  2. http://en.wikipedia.org/wiki/Anisotropic_filtering
  3. http://www.geforce.com/Optimize/Guides/AA-AF-guide/#1
  4. http://www.ngohq.com/images/articles/fxaa/FXAA_WhitePaper.pdf
  5. http://en.wikipedia.org/wiki/Multisample_anti-aliasing
  6. http://en.wikipedia.org/wiki/Spatial_anti-aliasing
  7. http://www.beyond3d.com/content/articles/69/
  8. http://en.wikipedia.org/wiki/Trilinear_filtering
  9. http://en.wikipedia.org/wiki/Bilinear_filtering
  10. http://gregs-blog.com/2008/01/16/whats-the-difference-between-bilinear-and-trilinear-filtering/
  11. http://www.tweakguides.com/Graphics_10.html
  12. http://www.tweakguides.com/NVFORCE_1.html
  13. http://www.tweakguides.com/Graphics_1.html
  14. http://developer.nvidia.com/game/nvidia-graphics-sdk-11
Advertisements

Posted on August 10, 2012, in Article, Star Wars, Tips and Tricks and tagged , . Bookmark the permalink. 1 Comment.

  1. This is a great tip particularly to those fresh to the blogosphere.
    Brief but very accurate information… Many thanks for sharing this one.
    A must read article!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: