How To: Improve Image Quality in Pre-DX10 Games with NVIDIA Inspector - Overclock.net - An Overclocking Community

Forum Jump: 

How To: Improve Image Quality in Pre-DX10 Games with NVIDIA Inspector

Reply
 
Thread Tools
post #1 of 29 (permalink) Old 08-08-2016, 06:20 PM - Thread Starter
PC Gaming 1337 Enforcer
 
boredgunner's Avatar
 
Join Date: Jun 2009
Location: United States
Posts: 14,401
Rep: 842 (Unique: 543)
DMDsw9X.jpg

After seeing the response to this post of mine, I have decided to make this thread.

NVIDIA Inspector is a tool for editing driver settings on NVIDIA GPUs (as well as monitoring and overclocking, like RivaTuner and its derivatives). Like an expanded version of that section of NVIDIA Control Panel. Many people aren't aware that Inspector has a plethora of options for tweaking image quality. The tweaks I'm going over in this thread are forcing ambient occlusion and supersampling into games.
Preface

Without ambient occlusion, games look so much less realistic as light no longer seems to have much of an effect on the environment. And aliasing? It can make an otherwise great looking game look horrible. Most games today are heavily aliased even with their anti-aliasing setting maxed out, because they only have highly ineffective, overly simple post-process AA such as MLAA, FXAA, or SMAA. They attempt to blur out aliased edges after the scene is already fully rendered and fully aliased.

These games, even at 2560 x 1440 and often even at 4k, are so aliased that all objects will appear like distorted raw polygons or blobs with moving, white jaggy edges. Some of the biggest offenders include The Witcher 3, Assassin's Creed: Unity, Crysis 3, Mass Effect series, S.T.A.L.K.E.R. Shadow of Chernobyl, and numerous others.

Supersampling is the ultimate anti-aliasing method, and also the most demanding. You see, if we could play games at a large enough resolution (5k or higher from my experience) then aliasing wouldn't be an issue. This is the principle behind downsampling, supersampling's infant brother; simulate a larger resolution by rendering the image at a larger resolution and then scaling it back down with a rescaling filter (Lanczos being the best I know of, used by GeDoSaTo).

But supersampling doesn't just use a simple rescaling filters. The filters it applies are far more complex and effective at eliminating aliasing, and it gets rid of all kinds of aliasing whether it's geometry, shader, aliasing on transparent textures, temporal, you name it. Whereas MSAA is only good for removing aliasing on geometry, MLAA/SMAA/FXAA targets only shader aliasing but they're good for nothing, TAA is a good all around method but still not on supersampling's level (though it's not demanding at all so there is no good reason for MLAA/SMAA/FXAA to exist anymore).

Unfortunately these tweaks only work in pre-DX10 games, the ambient occlusion probably only working in DX9 (and maybe a few OpenGL titles). There are very few exceptions; it is possible to force ambient occlusion into Metro Redux using this method (a DX11 game), and it does improve image quality ever so slightly. Nonetheless, these tweaks are a primary reason as to why I stick with NVIDIA graphics cards; many of the best games ever made are DX9, and I like to make them look as good as possible. Plus I hate aliasing more than almost anything else.

Why don't these tweaks work in newer games? I suppose NVIDIA decided that compatibility isn't needed. Modern games always have their own ambient occlusion implementation, although they could really use the supersampling because modern games are more aliased than ever before. But then again, supersampling is very hard to run.

Speaking of performance, I can't speak for the performance impact of forcing ambient occlusion. The last time I felt an actual impact was in Skyrim using a GTX 680. With my current PC (see my system specs) I obviously can't really measure a difference.

As for supersampling, see this quote:
Quote:
In the situation where a game is bound by pixel shaders (usually the case in modern games) assuming no external bottlenecks the framerate after SSAA is applied will be 1/n of the framerate without SSAA where n is the number of samples. In other words 4xSSAA would give you 1/4th the performance of no SSAA, or a 75% drop in performance to put it another way.

Source

So 2x supersampling will give you a 50% performance penalty, 4x will give you a 75% drop, 8x will give you an 87.5% drop.

Procedure

1. Download NVIDIA Inspector from Guru3D. Link.

2. You must run "nvidiaProfileInspector.exe" to perform these tweaks. Not the regular Inspector application, which is the monitoring and overclocking tool.
3OWcWGP.jpg

3. Upon launching nvidiaProfileInspector, you are greeted with the global driver profile. It applies to all 3D applications, but anything you change in individual profiles will overwrite the global setting.
2BGDGFq.jpg

You should set some basic parameters in the global profile.

  • People with decent modern PCs should set texture filtering to High Quality, and just enable High Quality ambient occlusion.
  • Set your desired Power management mode (I prefer "Prefer Maximum Performance" so that my GPU never downclocks when it shouldn't).
  • Disable Shadercache since it might cause stuttering in some games.
  • Set "Texture filtering - Negative LOD bias" to Clamp, and leave LOD bias at 0. This will usually deliver the best image quality all things considered as you won't get shimmering. I only recommend using Allow and a negative value when using supersampling, which we'll go over later.
  • Set Preferred Refresh Rate to Highest Available. This may have to be changed in very specific scenarios, such as if you want to use a lower than maximum refresh rate in certain games (e.g. using 120 Hz ULMB in Source games on my 144 Hz monitor). In which case, set the appropriate setting for that game's driver profile.

4. Now we can look at modifying individual game profiles. See the dropdown menu in the image below. You can also type out your own game, and create your own profiles for unsupported games. Although if said unsupported game uses a common engine, it might be better to just add its executable file to an existing profile for a game using that engine (by choosing that game's profile and clicking one of the icons near the top that says "Add application to current profile").
siwrbvP.jpg

5. Since we're focusing on forcing ambient occlusion and supersampling into games, you need to use compatibility bits (save for DX8 games which don't need them). See the red box labeled 1. in the image below. Notice there is a separate field for anti-aliasing compatibility in DX1x games (DX10, DX11, DX12). Funny they put this because to my knowledge, there are no bits for any DX10/DX11/DX12 game.
E9Yun6D.jpg

To find proper compatibility bits, go here for anti-aliasing bits and here for ambient occlusion bits. If that Guru3D anti-aliasing thread says to either use or do not use "AA fix" then do as they say. If they say nothing (which is usually the case), do not use AA fix.

So let me go over the labeled red boxes in that image above. The numbers in the list below correspond to the image above.

  1. As I said earlier, these are the compatibility bits. Get them from those Guru3D threads, and if a game isn't listed find out what engine it uses and see if there are any bits for other games on that engine.
  2. Antialiasing - Behavior Flags - Set this to None every time, so that it doesn't screw with your AA.
  3. These are the actual anti-aliasing settings. Antialiasing - Mode allows for application-controlled (doesn't make any changes), Enhance the application setting (enhances the game's current AA), and Override the application setting (bypassing the game's AA and forcing its own). You can force or enhance multisampling (full screen or just transparent), sparse grid supersampling aka SGSSAA (full screen or just transparent), ordered grid supersampling aka OGSSAA (full screen or just transparent), and hybridsampling aka HSAA (full screen only). Read all about these different AA forms here, under "Nvidia" but do read the others too since it's good knowledge to have. Personally, I find that SGSSAA typically looks the best, when there is a bit that allows for all three. The image above showcases 2x full screen SGSSAA (aka FSSGSSAA). I rarely use Enhance, only using it if the game for some reason supports Enhance but not Override (e.g. KOTOR).
  4. "Texture filtering - Driver Controlled LOD Bias" should be set to On in the default profile, don't touch this. The other three settings in this box control your LOD or Level Of Detail settings. Ideal settings here depend on what kind of AA you're forcing. Unless it's supersampling or hybridsampling, leave it at Clamp and 0. If hybridsampling, set it to Allow and 0 since hybridsampling has auto LOD adjustment.
  5. Ambient occlusion settings. Always leave it as Enabled unless you can't run it at all, though the other setting does have three performance options: Performance, Quality, and High Quality (and Off, seems redundant given the other setting but whatever).

So those are the things you need to adjust, using the appropriate bits listed in those Guru3D threads. You might even discover working bits yourself, for a certain game.

Here are some examples of settings you may find yourself using. The last image above shows me forcing 2x SGSSAA into Half-Life 2: Episode Two (and any Source mod built on Source SDK Base 2007). Below is another example of SGSSAA, this time 4x:
XMqcA52.jpg

Notice the pattern? Below are the steps to apply full screen SGSSAA:

  1. Make sure AA Behavior Flags are set to None.
  2. Set Antialiasing - Mode to Override.
  3. Antialiasing - Setting must be set to either 2x multisampling, 4x multisampling, or 8xQ multisampling. I suppose 8x CSAA and 16xQ might work with 4x and 8x sparse grid supersampling respectively. The reason for this rule is, sparse grid supersampling gets its sample coordinates from the MSAA samples, thus they have to match numerically.
  4. Disable transparency multisampling.
  5. Set transparency supersampling to sparse grid and however many MSAA samples you chose in step #3.
  6. Set "Allow Negative LOD Bias" to Allow.
  7. Set the LOD Bias (the correct one; DX means DirectX, OGL means OpenGL) to -0.5 if using 2x SGSSAA, -1.0 if using 4x SGSSAA, or -1.5 if using 8x SGSSAA.
  8. Don't forget to hit apply!

So, following the above steps, the image below shows the correct settings for 8x SGSSAA. Alternatively, 16xQ might work as the antialiasing setting as well.
tCG788G.jpg

Now let's look at OGSSAA in the image below.
A7YzrKP.jpg

There are only a few differences on how to set this up over SGSSAA. The first being, multisampling is never used for the AA setting. Second, sparse grid is obviously not used for transparency supersampling; instead the regular supersampling is used (which is ordered grid). The LOD works the same way, I'll just quote that blog again here:
Quote:
Set negative lod to allow and set the lod bias as follows:
1x2 OGSSAA (2 samples): -0.5
2x1 OGSSAA (2 samples): -0.5
2xSGSSAA (2 samples): -0.5
2x2 OGSSAA (4 samples): -1.0
4xSGSSAA (4 samples): -1.0
8xSGSSAA (8 samples): -1.5
3x3 OGSSAA (9 samples): -1.58 (or as close as you can get)
4x4 OGSSAA (16 samples): -2.0

The formula for determining the correct lod bias is "y = -0.5 * log, base 2, of (n)" where n is the number of samples and y is the correct lod bias. Of course since some of you may have forgotten how to use logarithms I went ahead and typed out the correct values for each SSAA mode above.

Expanding on this, if using 1x2 or 2x1 supersampling, transparency supersampling should be set to 2x (just do the math, 2 * 1 = 2 and 1 * 2 = 2 and the goal here is to apply full screen supersampling). 2x2 supersampling should use 4x transparency supersampling. Thus, you can't apply full screen 8x or 9x OGSSAA, only 2x, 4x, and 16x!

It is of course possible to run into a scenario where your PC can handle 1x2 or 2x1 OGSSAA + 4x transparency supersampling. It's not going to look worse than 2x FSOGSSAA (which is 1x2 or 2x1 + 2x transparency supersampling) though it'll run much worse. In this case you might be better off running 2x2 OGSSAA and 2x transparency supersampling. Either way you are applying a different amount of supersampling to transparent edges compared to the rest of the image.

What is the difference between 1x2 and 2x1 you ask? 1x2 = 1 horizontal sample and 2 vertical, 2x1 is the opposite. Neither one is perfect, if 2x FSSGSSAA works instead it's bound to look better.

To enable HSAA, which is OGSSAA + MSAA + auto LOD adjustment, follow these steps:

  1. Set AA behavior flags to None.
  2. Set AA mode to Override.
  3. Set Antialiasing - Setting to one of the settings that ends in "xS". This indicates HSAA.
  4. Disable transparency multisampling.
  5. Set transparency supersampling to one of the regular supersampling options, matching the OGSSAA samples of your chosen "xS" option in step 3.
  6. Set LOD bias to 0.
  7. Set Allow Negative LOD Bias to Allow. Remember, HSAA has auto LOD adjustment.

Examples of it in action; the image below shows 2x HSAA, since 4xS includes 1x2 OGSSAA and 2x MSAA thus 2x transparency supersampling is used.
VKQN9EU.jpg

The image below shows 4x HSAA. 32xS = 2x2 OGSSAA (4x) + 8x MSAA, so 4x transparency supersampling is used.
SLlAcuI.jpg

Screenshot Comparisons (open them in new tab, then magnify by clicking on it)

Now let's look at some screenshot comparisons! Details provided below for each game comparison. For every before/after comparison, before shows the game with no driver tweaks. Remember, the differences are even more obvious in gameplay since aliasing is more obvious in moving images (the jaggies appear to move).

Unreal Engine 3 games

Unreal Tournament 3 (2007). Before = no driver tweaks, After = 4x SGSSAA and high quality ambient occlusion using the UT3 AO bits. Interestingly enough this is the one game I can detect an FPS drop caused by high quality HBAO+. Without it, and even with 4x SGSSAA, I get 120 FPS with V-Sync. With high quality HBAO+ my frame rate is dropped to 100-110. Be sure to open the images in a new tab and magnify them by clicking on them. Warning: Spoiler! (Click to show)
C0TLKR3.jpg
RmwawOh.jpg

M6jZKzu.jpg
IxwsEPV.jpg

PdHXpBy.jpg
RW803NW.jpg

Mass Effect (2007): Before = no driver tweaks, After = 2x SGSSAA and high quality ambient occlusion using Mass Effect AO bits. The changes are even more significant in practice due to the fact that the aliased edges move a lot. Warning: Spoiler! (Click to show)
Gc59ggy.jpg
AfDxAsE.jpg

uNQq5kb.jpg
MisBseL.jpg

As you can see even 2x SGSSAA isn't enough to get rid of all the aliasing, although it gets rid of a lot and prevents the edges from glowing white and moving like they do without it.

Mass Effect 2 (2010): Before = no driver tweaks, After = 4x SGSSAA and high quality ambient occlusion using Mass Effect AO bits. Warning: Spoiler! (Click to show)
HW1eGQp.jpg
xU2uxNa.jpg

6cyBhkq.jpg
sIO5I4j.jpg

wfP57nG.jpg
IqmTyJD.jpg

Dishonored (2012): Before = no driver tweaks and in-game FXAA, After = 2x SGSSAA and high quality ambient occlusion using Hawken AO bits. I'm actually shocked that the difference isn't as obvious in the screenshots, although the aliasing difference is still major to me just in the screenshots. Warning: Spoiler! (Click to show)
Ijw8Xuo.jpg
3ZdrV1B.jpg

5Tj66Te.jpg
QJFejH6.jpg

eZntnPU.jpg
mY1JTWR.jpg

Source Engine games/Source mods.

Underhell: Before = no driver tweaks and in-game 8x MSAA, After = 2x SGSSAA and high quality ambient occlusion using HL2 E2 AO bits. Warning: Spoiler! (Click to show)
jXLdw0C.jpg
0I75LER.jpg

Vs9EZ47.jpg
YHyj4KP.jpg

p1xXvfL.jpg
nUn3PUO.jpg

No More Room in Hell: Before = no driver tweaks and in-game 8x MSAA, After = 2x SGSSAA and high quality ambient occlusion using HL2 E2 AO bits. Warning: Spoiler! (Click to show)
vuvXk0a.jpg
rf9jcjJ.jpg

id Tech Games

Call of Duty: Before = no driver tweaks, After = 4x SGSSAA with 16x AF and forced ambient occlusion using Wolfenstein AO bits. The AO doesn't seem to work, but the other two things make a massive difference.
Warning: Spoiler! (Click to show)
2vCNII5.jpg
1bWdvrs.jpg

Other examples

Dragon Age: Origins: Before = no AA, since in-game AA doesn't work with the SweetFX I'm using. After = 4x SGSSAA. Warning: Spoiler! (Click to show)
tWdny7v.jpg
ySKrov9.jpg

WCIi3T1.jpg
mhEuarU.jpg

Other than performance, the possible downside to forcing supersampling is blur, which is caused by conflicting post-process shaders. This blur can be countered with post-sharpening injected by something like ReShade, SweetFX, or GeDoSaTo. Alternatively, it can be countered by using more than 2x supersampling. 4x and 8x will either blur a lot less or not have visible added blur at all because the blur is offset by the extra samples (rendering at 4x or 8x native resolution).

When forcing ambient occlusion, if you're using compatibility bits not listed for a game on that Guru3D thread above, you may notice flickering (ambient occlusion turning on and off). Also, in some engines like UE3, forced ambient occlusion will appear to shine through fog and volumetric effects.
boredgunner is offline  
Sponsored Links
Advertisement
 
post #2 of 29 (permalink) Old 08-08-2016, 06:29 PM
New001
 
Join Date: Feb 2016
Posts: 2,668
Great post, informative and well written.
I'll be trying this out at home tonight, see if I can improve the looks of a few old classics.
spinFX is offline  
post #3 of 29 (permalink) Old 08-08-2016, 06:35 PM
New to Overclock.net
 
LunaTiC123's Avatar
 
Join Date: Jan 2011
Posts: 196
Rep: 10 (Unique: 10)
thumb.gif Been forcing sgssaa through nvidia inspector in older games for a few years and it's great, make's older games look better by getting rid of jaggies, never tried forcing ambient occlusion though, however thanks to your post I'll try it smile.gif

Just lurking around, don't mind me.
LunaTiC123 is offline  
Sponsored Links
Advertisement
 
post #4 of 29 (permalink) Old 08-14-2016, 09:20 PM - Thread Starter
PC Gaming 1337 Enforcer
 
boredgunner's Avatar
 
Join Date: Jun 2009
Location: United States
Posts: 14,401
Rep: 842 (Unique: 543)
Updated with Unreal Tournament 3 and Mass Effect (first one, ME2 was already there) screenshot comparisons. It's interesting to note that UT3 shows perhaps the most drastic changes in the provided screenshots, due to its color palette and post-processing settings I guess. In practice, the improvement in all UE3 and Source games is similarly huge.
boredgunner is offline  
post #5 of 29 (permalink) Old 08-15-2016, 11:54 AM
New to Overclock.net
 
MythTFLfan29's Avatar
 
Join Date: May 2012
Location: Pacific NW
Posts: 349
Rep: 37 (Unique: 29)
Great guide, thanks for explaining this. Off hand question, would this work in conjunction with the MEUITM mod for the first Mass Effect game, or would there be conflicting code/programming from the mod? MEUITM pack has made it look much better than standard no-mod graphics but this looks like it might be a step up in terms of overall graphic quality. Thanks again thumb.gif

MythTFLfan29 is offline  
post #6 of 29 (permalink) Old 08-15-2016, 12:32 PM - Thread Starter
PC Gaming 1337 Enforcer
 
boredgunner's Avatar
 
Join Date: Jun 2009
Location: United States
Posts: 14,401
Rep: 842 (Unique: 543)
Quote:
Originally Posted by MythTFLfan29 View Post

Great guide, thanks for explaining this. Off hand question, would this work in conjunction with the MEUITM mod for the first Mass Effect game, or would there be conflicting code/programming from the mod? MEUITM pack has made it look much better than standard no-mod graphics but this looks like it might be a step up in terms of overall graphic quality. Thanks again thumb.gif

They should work fine, since mods are separate from driver settings like this. Worst case scenario is, with some mods in certain games, said mod might have its own shader-based ambient occlusion implementation which may conflict with driver forced AO. But I see on ModDB that someone (the creator?) showcases that very same mod with driver forced AO, so I'd expect no issues.
boredgunner is offline  
post #7 of 29 (permalink) Old 08-15-2016, 12:53 PM
New to Overclock.net
 
MythTFLfan29's Avatar
 
Join Date: May 2012
Location: Pacific NW
Posts: 349
Rep: 37 (Unique: 29)
Cool, I'll have to give this a try at some point. Thanks

MythTFLfan29 is offline  
post #8 of 29 (permalink) Old 08-15-2016, 01:56 PM
Gaming Addict
 
Somasonic's Avatar
 
Join Date: Mar 2014
Location: NZ
Posts: 771
Rep: 37 (Unique: 31)
Great guide, thanks! +REP thumb.gif

My Rig
(16 items)
CPU
Intel Processor i7-4770k
Motherboard
Z87-EXPERT
GPU
Asus ROG Strix GTX 1080 Ti OC edition
RAM
16GB (4x4) G.Skill TridentX DDR3 F3-2400C10D
Hard Drive
Intel SSD 335 Series 80GB
Hard Drive
A-Data XPG SX900 Solid State Drive, 512GB
Hard Drive
Samsung 850 Evo Series SSD 1TB
Optical Drive
Silverstone SOD02 DVD Writer
Power Supply
Fractal Design Newton R3 Series
Cooling
Enermax Liqmax II 240
Case
Corsair Carbide Air 540
Operating System
Windows 7 64 bit
Monitor
Dell U2715H
Mouse
Razer Deathadder Chroma
Audio
Creative Sound Blaster Recon3D Fatal1ty Professional Sound card
Other
Icy Dock MB994IPO-3SB, 2.5" SAS/SATA to SATA, SwapRack Enclosure
▲ hide details ▲
Somasonic is online now  
post #9 of 29 (permalink) Old 08-16-2016, 06:31 AM
Quad Core? Quad Damage!
 
XenoRad's Avatar
 
Join Date: Aug 2007
Posts: 671
Rep: 50 (Unique: 46)
So all in all nVidia Inspector allows more fine tuning of settings than possible in the regular nVidia drivers control panel, even though the major options (AF, AA, occlusion) are the same between the two applications, correct?

XenoRad is offline  
post #10 of 29 (permalink) Old 08-16-2016, 06:40 AM - Thread Starter
PC Gaming 1337 Enforcer
 
boredgunner's Avatar
 
Join Date: Jun 2009
Location: United States
Posts: 14,401
Rep: 842 (Unique: 543)
Quote:
Originally Posted by XenoRad View Post

So all in all nVidia Inspector allows more fine tuning of settings than possible in the regular nVidia drivers control panel, even though the major options (AF, AA, occlusion) are the same between the two applications, correct?

NVIDIA Control Panel doesn't have a "High Quality" ambient occlusion setting. I forget if it even has the on/off setting, since some games have a driver profile that disables it by default.

Inspector has much more AA settings. Probably double at least. Full screen SGSSAA isn't possible via Control Panel I believe. Originally NVIDIA meant to only include transparency SGSSAA, but an oversight allowed users to apply it to the whole scene and then NVIDIA took it away for some reason. Inspector adds it back. Many of the OGSSAA/HSAA options are exclusive to Inspector.
boredgunner is offline  
Reply

Quick Reply
Message:
Options

Register Now

In order to be able to post messages on the Overclock.net - An Overclocking Community forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.
User Name:
If you do not want to register, fill this field only and the name will be used as user name for your post.
Password
Please enter a password for your user account. Note that passwords are case-sensitive.
Password:
Confirm Password:
Email Address
Please enter a valid email address for yourself.
Email Address:

Log-in



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off