A normal user's look into the world of 3D Stereo Technologies

When talking about stereo 3D gaming one of the most common issue we are all facing is crosstalk or more often referred to as just ghosting or with other words when some part of the image intended for one of the eyes “leaks” into the image the other eye is seeing. The result we see is in the form of semi transparent double of some objects, shadows or halos around objects and that is making the stereo 3D experience less pleasant and comfortable for longer use. And as you should know one of the major reasons for having ghosting is when on the screen we have highly contrasting objects – for example a very bright object on a dark background is quite likely to have ghosting. So in theory not having highly contrasting objects displayed at the same time should greatly help to reduce ghosting and I’ve tried putting that idea into practice a few days ago when I’ve written some tips about the game Portal. In Portal I’ve found some convenient console commands to play with the in-game gamma levels in order to reduce ghosting and the results were good, so I decided to dedicate some time trying to replicate the same effect on a wider level. The results after a days work were good, but not that good as I’ve expected and the reason for that was some kind of unexpected issues I’ve ran into and the lack of a clear solution for them at this point, although I’ve practically tried every idea I was able to stumble into. Anyway, let me get to the point and share some interesting results that actually do help reduce the ghosting in 3D photos, 3D videos and even in some games when played in stereo 3D mode with 3D Vision (should also work with other 3D setups)…

The general idea I’ve had and uses with success in the game Portal was to modify the gamma levels by cutting down the brighter colors over a certain level and thus reducing the level of contrast that can be achieved when displaying dark and bright objects at the same time. Going further with this idea I’ve tried to implement the same approach with the 3D Vision Video Player when playing a stereo 3D video in order to reduce the visible ghosting in it. So I went to the quite easy to use and at the same time quite powerful tool AviSynth and more specifically to the Levels function that is available in it to replicate the same result as within the game Portal, but this time with a stereo 3D video. With the following simple AviSynth script all that was needed was done and the results can be clearly seen if you play the Fly me to the Moon 3D trailer that has some easily noticed ghosting when played normally. Of course the reduction of ghosting works with other videos to some extent, just have in mind that the following simple script does not remove ghosting completely, just helps in lowering it.

You just need to copy the two lines of code above in a text file and rename the file extension to AVS (AviSynth needs to be installed on your computer). Then you need to open the AVS script file in the 3D Vision Video Player instead of directly opening the video file (the Fly_Me_to_the_Moon_Trailer-720p-S3D.avi in the example code above) and choose the right format (Over/Under for the above example). You’ll notice a slight decrease in the overall brightness of the video, but it should still be completely comfortable to watch and the ghosting you’ll notice should be much less than when opening the video file directly.

But going further I’ve decided to directly modify the graphics adapter gamma LUT (Look Up Table) to reduce the maximum brightness in theoretically every application – being a photo viewer, video player or a game. So again we are going to cut the brighter colors over a certain level to reduce the level of contrast when displaying darker and brighter objects on the screen at the same time and thus reduce ghosting. The process here is similar to creating a custom color profile for your computer when calibrating the color reproduction of the display. And after some experimenting I was able to get the desired result, but then I also faced a problem that turned out to be still unsolvable for owners of Nvidia-powered graphical adapters and we all know that 3D Vision requires you to have such (ATI owner seem to be luckier in this situation). What I’m talking about is the fact that when you run some games in full-screen they reset and totally ignore your custom color profile (your color calibration becomes useless) as well as any custom LUT gamma settings, but luckily not all games do that. There were some tools that supposedly could help you force you settings even over these games, but I was not able to find even a single one that worked on recent Nvidia-based GPUs (if you know about some solution please share it!), only some solutions that seem to be working on the newer ATI GPUs. So have in mind that the solution below will NOT work in all games, but it does work in some games and in the titles it works it can help reduce ghosting, although the final ghosting reduction effect may vary from very good to not so significant in the games it works.

I was able to make things work with a few different applications – free and commercial, but only to some extent as neither of them was able to override the gamma resetting that some games force when switching to full-screen. Finally I’ve settled to use the free Monitor Calibration Wizard by Mike Walters with two custom profiles made by me to achieve the desired effect. You’ll find all the needed files in the archive below, you just need to download and extract them into a convenient folder as there is no need to install anything. Then you just run the MCW.exe file and from the Load Profile dropdown menu choose the reduce-ghosting-192 profile and hit the Load button. This will change the color reproduction making your desktop colors look a bit dull and not so good looking, but don’t worry, this is normal you just need to run a game now and inside it you’ll hardly notice any difference, except for the fact that there should be less visible ghosting (if it is not forcing its own gamma settings, totally ignoring the custom profile). When you finish playing the game and exit back to the desktop you can select the default profile from the dropdown box and hit the Load button to return to the default color setting that should be comfortable again for use in the Desktop.

Here is a short list of games that I was able to test and confirm that work with this method, reducing the ghosting when being played back with the custom LUT gamma and in stereo 3D mode with 3D Vision:
– Assassins Creed II
– Battlefield: Bad Company 2
– Bioshock 2
– Borderlands
– Torchlight

And a few games that do not work as they force their own color settings when opened in fullscreen mode:
– Dragon Age Origins
– Need for Speed Shift
– Portal
– Tomb Raider: Underworld
– X-Blades

For some of these games, like Portal for example there are alternatives to get the same result, but for other games that force their own color settings it might not be possible, so there is more to be done to improve this solution for reducing the ghosting. The above approach should work well on all currently available 120Hz 3D-capable LCD monitors, but with a more direct product related color profiles it is possible to achieve even better results. The idea is to create custom color profiles where we not just cut the bright colors over a certain level, but to adjust only the “problematic” colors by the level it is needed to reduce the visible ghosting. The end result might be something similar to the “ghost busing” method used by the RealD-equipped movie theaters to reduce the ghosting in 3D movies being projected by compensating for the left and right image colors that may cause ghosting. Unfortunately that is probably out of my level of expertise. ;)

So back to the method I’ve described above, if you decide to give it a try by download the archive below and following the instructions I’ve given out, then please don’t forget to leave your comments below. you can report games that you’ve tried, is it working or not and if it is how good is the ghosting reduction working.