Lesson 0.5 - quick fix

From Bo3b's School for Shaderhackers
Jump to: navigation, search


Look for easy ways to fix effects, only do the hard stuff if you need to.

Level of difficulty: Easy
Time required: 20 minutes

This lesson does not have a video walkthrough, as the techniques are simple and well understood.


Learn three alternate techniques for fixing stereo glitches, that don't require HelixMod.
Adopt a fixing strategy to optimize your game-fixing time.


Find and enable the Unreal engine flag to fix 3D in The Ball.

Although it's incredibly rewarding, keep in mind that fixing games with HelixMod can also sometimes be tedious and time-consuming. Thus it's worth trying easy techniques first, as they can save significant time that can be spent on harder or more interesting problems.

There are three techniques that are nearly always worth trying first.

  • Change in-game settings to disable or improve the 3D.
Like we found early on, the dynamic shadows around the ball are broken in 3D, and the quickest technique by far is to simply bring up Setttings and disable shadows. For The Ball, this is a perfectly acceptable fix, because losing the shadows barely impacts the visuals, and actually fixing shadows is one of the very hardest, and hence time-consuming techniques.
Always play with the in-game settings first to get a feel for what might be easy fixes. Remember, you can always come back to improve it later.
  • Change configuration file settings to disable or improve the 3D.
For Unreal Engine 3 games, it is likely that setting the AllowNvidiaStereo3d=True can dramatically improve the game in 3D. As seen in shaders in The Ball, there is code specifically activated when the flag is enabled.
Depending upon the engine, there may be a wealth of parameters you can set to disable broken effects. Do Google searches for other similar games, or look for tweakguides like Unreal 3 or Valve Source Engine.
  • Switch NVidia profiles for fixes.
Sometimes it is possible to dramatically improve a game by switching to other profiles. NVidia seems to have trouble keeping the profiles correct. If a different profile can fix even some of the effects, those will be fewer shaders to disable or fix. Take a look at the guide to changing profiles.

With those quick-fix techniques in mind, let's take a look at a possible fixing strategy that can optimize your time.

There are no hard and fast rules for fixing games, since there are so many varieties of problems and that inescapable conflict between disabling effects for quick results, and fixing effects for the best quality. This strategy is optimized to save you time, not necessarily give you the best results.

However, with a game that is fully playable, you can always come back later and improve the fix.

  • Quiz: Find and enable the flag for Unreal engine games that automatically fixes 3D problems.
    1. Find the UDKEngine.ini file for the game.
    2. Change the setting to AllowNvidiaStereo3d=True
    3. Run the game, and look for the fog and lava effects to be fixed.
    4. Note that the heinous bloom effect is not fixed, but can also be disabled with Bloom=False
    5. Save a screen shot, using only these techniques.

In the case of The Ball, you will find that these techniques go a very long ways, but can't resolve the problem with water in the final round. The Unreal flag is very useful, but can't always fix everything.

You will probably also note that while enabling the flag fixes a lot of effects, it also hammers the performance to an unacceptable level. This is rarely the case with Unreal games, but for The Ball, it's not really a viable fix.

As a real world example of using these techniques, look at the Crysis fix on the Helix blog: Crysis fix