I am becoming very positive about the prospect of using Shahzad's idea for my 120Hz LCD!
Please excuse the rambling to follow, I hope it is not an automatic TL:DNR
I received some components today, and started experimenting a bit. I will post some results - any comments are welcome! One of the things I received was the Schmitt-triggered photodetector that Shahzad referenced:
After considering a wide array of possibilities, many of them requiring expensive and complex hardware, with the help of you guys, the "silly" idea I had earlier is starting to make more and more sense...
The blue line code provided by the iZ3D driver is perfect. It provides a blue line over the last line or so of pixels at the bottom of the screen. The second half towards the right of the blue line will flicker to one eye perfectly.
All that needs done is to use one of these:http://uk.farnell.com/honeywell-s-c/sdp ... dp/1201208
Cheap. Simply, it is a light detector which will give a sharp square wave when put in front if this blue line to the right. The output from this will be 5v 50% duty cycle perfect square wave which can feed directly into the middle pin of the ELSA/ED wireless emitter. It can also drive the current drivers for wired glasses with a small modification, and pretty much anything that worked with the old nVidia driver.
I soon discovered that using the aforementioned photodetector was never going to work with an LCD. The built-in Schmitt trigger only flips on the detector when lots of light is detected (in my case, even the TL lighting of my room wasn't enough - I had to point a flashlight directly into it to trigger it). For a projector it probably works - after all, that's a whole bunch of light.
A different solution was needed for the LCD. I had a standard phototransistor (type bpw40) lying around. When a resistor is placed in series with these and the voltage over the resistor is measured, the output is dependent on the amount of light collected by the phototransistor. Higher resistance leads to higher sensitivity of the output to light.
When using a 100kOhm resistor and 5V power supply and taping the detector to my monitor, and then displaying white pixels to it, my oscilloscope showed a waveform that resembled a triangle wave at ~180Hz. With black pixels, the voltage was close to zero. The 180Hz wave probably has something to do with the inner workings of the monitor, so different models may lead to very different findings. This wave was about 2V in amplitude. I don't have a picture of it, but it definitely shows in the pictures that I do have.
I took a few pictures during the tests, which are in the attached zip. It's bunch of images from my oscilloscope. I will refer to them in the rest of the story. Also attached seperately is the end resulting square wave, for people who are not interested in the proceedings but just want to see whether it works
I then proceeded to use the 1.10 IZ3D drivers in Marked Shutter Mode. I made the shutter mode display an alternating black/white square in the top left corner of my monitor, where the phototransistor is located, using MarkingSpec.xml. Then I started Flatout 2 in 60Hz mode. The result can be seen in "60Hz_100kOhm.jpg". You can see the general shape of a square wave. This is due to the square changing color at 60Hz (measured to check this frequency). Superimposed on the square wave, you see the triangle wave I mentioned earlier - at about 180Hz. However, because the triangle frequency is not an exact multiple of the 60Hz wave, they constantly shift relatively to each other.
This can be seen more clearly when I increased the Flatout 2 refresh to 120Hz. The shifting of the square and triangle waves with respect to each other creates a sort of "bubbling" effect, as can be seen in 120Hz_100kOhm.3gp.
The next step was to turn this signal into a clean square wave for syncing to. First, I further increased the resistor in series with the phototransistor from 100kOhm to 820kOhm. This increased the sensor's sensitivity to light, making the triangle wave clip mostly to 5V and generally making the output look more like a square wave. The "bubbling effect" remained though, it could still be seen in the varying width of the square.
I then used an opamp as a comparator - with a fixed voltage, adjustable by a potentiometer, as reference signal. This turned the photodiode output into a clean square wave (120Hz_820kOhm_Comparator.jpg). Due to the same "bubbling effect", the duty cycle of the square wave varies slightly in a periodic manner, as seen in 120Hz_820kOhm.3gp.
At this point, I was really positive about the results - I could get a clean square wave perfectly synced to my monitor! However, "stereo mode" was still actually disabled in-game in Flatout 2. As soon as I turned it on, the software seemed to struggle to refresh fast enough, resulting in the same frame sometimes being displayed twice. This can be seen where the square wave is locally broader in 120Hz_820kOhm_HighSettings.jpg. Interestingly, only the frames for one eye (output "high") seem to be stuck sometimes. Anyway, once I lowered all graphics settings in Flatout 2, there were never double frames even in stereo mode.
In conclusion, I think that this method is highly likely to work on my Samsung 2233RZ, and maybe other 3d-capable 120Hz monitors as well! Also, this method would be considerably cheaper for Nvidea users considering 3D Vision - the electronics have cost me about 15 euros so far, and I have ordered some cheap chinese shutter glasses for 10 euros a piece (even though I had to buy 4 at once). It would especially cheap for people who still have old "random brand" shutterglasses still lying around.