StereoDisplay

Hardware

You need a 3D TV or monitor to look at 3D content, obviously... or a pair of red/blue glasses and a willingness to look at everything in red/blue. I have thoughts on hardware at the bottom of this page.

(The glasses are red/cyan by the way, not red/blue as they're often called)

Software

For stereo photography, or watching 3D videos on YouTube (search for "YT3D"), you don't need any special software.For photo editing there's StereoPhotoMaker, which has a ridiculously old looking UI but it's the best software available for 3D editing. It's also free. It's not great for just viewing a 3D photo collection but I haven't really seen better. (I've tried to build better...)The 3D conversion software, and photo viewing software that comes packaged with 3D monitors, is not generally worth your time.

For 3D gaming and other software, you need 3D drivers.

  • I was using the iZ3D drivers, but iZ3D died.

  • NVidia has 3D drivers for free, but they only work with active-shutter battery-powered glasses.

  • I'm now using TriDef. They have a slightly confused range of software, but they also have "TriDef Ignition" which is what you want - awesome for gaming.

The TriDef Ignition drivers allow you to magically turn rendered 3D games and other software such as Google Earth into instant 3D happiness, without any special versions required.

Older games and software, and for that matter newer games and software which use OpenGL aren't supported natively by any of the drivers I've seen, which is why GLDirect (below) is so great.

Gaming in 3D

Is freaking awesome. For a game like Portal, 3D is close to necessary - actually being able to see what you're doing in 3D gives you a huge advantage playing generally, and an advantage against other players in multiplayer [evil grin]. I don't understand why 3D gaming isn't being pushed more - it's the killer-app for 3D, not photography or movies, however much I love 3D photography and movies.

You don't need my comments about it though, try for yourself. Srsly.

Open GL in Stereo

(I originally posted most of this information, without the pictures, here)

I've managed to get OpenGL games going through iZ3D, NVidia, and TriDef drivers, which is pretty exciting because I haven't seen anyone else get this going. Also because I get to play Quake3 in 3D...

In the Windows world everyone is dropping OpenGL for games and going to DirectX instead, so it gets more development and attention. In summary though:

  • Use GLDirect

    • (UPDATE: I tweaked GLDirect for newer Windows versions - here)

  • I got the Quake3 Demo going, as well as ioQuake

  • I even got Google Sketchup going!

GLDirect

It turns out that a thing called GLDirect exists! It intercepts OpenGL calls and makes them DirectX calls instead ("OpenGL -> DirectX", shortens to "GL->Direct", is "GLDirect"). I originally found two versions of GLDirect, an older commercial one, and a less-old open-source project. Both worked in Vista, the open-source one was better. I now use Win7, and neither worked, but I tweaked and recompiled the OpenSource one to get it working again! It's Source 3, below.

Source 1 - free no-longer-supported commercial product: v5.02 from 2007-03-25:

http://majorgeeks.com/GLDirect_d381.html

Once you install it, you get a control panel to alter different settings, and your OpenGL applications now become DirectX applications, and iZ3D/TriDef/NVidia3D now works for them! It takes some tweaking of the settings, but it works. It has a "Hardware" mode, but looked disabled at first, I needed to switch it off and on again to enable the hardware mode toggle button for some reason. It may have been related to the registration - make sure that you take note of the free registration code!

This doesn't seem to work on newer versions of Windows.

Source 2 - an open-source SourceForge project. You can get it at:

http://gldirect.sourceforge.net/ or

http://sourceforge.net/projects/gldirect/

This one gives you a replacement opengl32.dll which does the same as above. You put it in the same folder as the executable that you're trying to run in 3D. This seems generally to be a little faster and better.

This doesn't work on newer versions of Windows due to a technical bug - so see below.

Source 3 - Here! I tweaked GLDirect to get it going with newer versions of Windows. It only required changing four lines of code to tweak the relevant behaviour slightly, but it over a full day of hacking to get it to compile and run with the current DirectX SDKs and dependencies on headers and libraries that don't exist any more. It first took me over a day of reading and Windows hacking to find the actual problem and possible solution. It seriously took about four full days of effort (a weekend and four evenings) to change those four lines! You don't technically need to know this, I just want you to appreciate how hard it was. Here it is, and it has instructions inside on how to use it. You're welcome.

I've submitted my changes to the original GLDirect author Keith Harrison, who is SiO2 SourceForge. The bugfix will be integrated and he plans to update the project! Very exciting

Quake 3 / Quake3 (Demo only here, see below for full version)

These pictures are anaglyphs - they use red/cyan glasses - so you can do this too! With a 3D monitor of course, you're not limited to anaglyphs.I've got the Quake3 demo, I'm not much into gaming, but I pull it out every now and then - it's sort of my tetris, the thing I like to relax to, you know, blowing people up with grenade launchers.It works in proper 3D now. It is awesome.

For your reference and edification, I have the performance numbers from my Windows-Vista Dell laptop, they'll give you an idea of what's possible:

  • It's 80-90fps in 2D

  • GLDirect (open-source version) - 35-45fps in 3D.

  • GLDirect (commercial version) non-shader, hardware mode - 8 fps in stereo

  • GLDirect (commercial version) vertex-shader, hardware mode - ~50fps of garbled nothingness

  • GLDirect (commercial version) software modes - fail

Anything faster than 60fps is probably refreshing faster than your monitor.

ioQuake

These pictures are anaglyphs - they use red/cyan glasses - so you can do this too! With a 3D monitor of course, you're not limited to anaglyphs.ioQuake is an open-source project to keep the Quake engine alive - it was released under GPL and widely used. It's a bugger to install and get working IMHO, but once you have it running it's faster and more stable than the original, there are a few extra options, and some of the graphics are even updated (and you can get extra mods and even better graphics and textures and models). ioQuake is faster on my machine than the original Quake3 BUT there seems to be some kind of latency in the controls, so I use the original engine to play in 3D. ioQuake supposedly has built-in 3D support, but it doesn't work for me, and it seems to not work for many people at all from reading around. Now - it doesn't have to! As above for Quake3, just use GLDirect and 3D drivers . For your edification:

  • Normally 90fps on my old Windows Vista laptop,

  • GLDirect (open-source version) - 40-50fps in stereo, and not as laggy! But still enough to affect your aim.

  • GLDirect (commercial version) non-shader, hardware mode - 6-7 fps in stereo

  • GLDirect (commercial version) vertex-shader, hardware mode - 40-50fps but the display is screwed up.

  • GLDirect (commercial version) non-shader software emulation - s-l-o-w and buggy (3 seconds per frame)

  • GLDirect (commercial version) non-shader software API rendering - as above.

  • GLDirect (commercial version) vertex-shader software emulation - crash

More Win!

Good on the ioQuake guys! This is even better than the original demo for speed and lag, and it's prettier!

UPDATE: Quake 3 / Quake3 full version!

I got a hold of the full version of Quake 3 at a garage sale! I've spent a couple of hours playing it (I suck, but it's fun). I also spent a solid couple of hours tweaking the video performance and examining settings.

Point of advice: Update to the latest version of the executable if you plan to start messing with things or you'll just encounter bugs. See here, and if that doesn't work just Google "q3pointrelease_132.exe".

Point of advice (I knew this already, I just didn't say it before): Running at your native monitor resolution gives you a really significant performance boost. Running at a lower resolution means that your graphics card has to render an image anyway, but then resize a whole lot of pixels. Rendering at the right resolution to begin with, helps.

After playing with my graphics settings, these are the results for that Vista laptop:

(On my newer high-end PC everything is so fast that comparisons don't matter)

  • Ridiculous speeds in 2D (200+fps)

  • GLDirect (open-source version) - 30-35fps in stereo, which is slower than the demo, but the lag problem is almost gone!

    • The gameplay is not as smooth as in 2D, but playable. When I turned it off though, I was able to complete the level on my first try, by several frags.

    • I had an NVidia settings option to reduce the maximum number of pre-rendered frames, which really helped the lag.

    • Forcing off vertical sync also helps reduce lag a little.

    • No other performance options seem to affect the lag at all, and nothing that I tried affected the frame rate. There must be something render-independent happenings in the drivers.

  • GLDirect (commercial version) non-shader, hardware mode - 20 fps in stereo

  • GLDirect (commercial version) all other modes - crashed or went wrong in other ways.

    • Really, I'the Open-Source is better on every count that I've tested on my machine.

Google Sketchup

These pictures are anaglyphs - they use red/cyan glasses - so you can do this too! With a 3D monitor of course, you're not limited to anaglyphs.I love Sketchup (I last used it a lot back at version 7), I use it with a couple of plugins for designing my own models for 3D printing at Shapeways:http://sketchup.google.comhttp://www.shapeways.com Viewing in 3D as you build the models is way easier.

I had a lot of trouble getting it working though, so here's how.

I found instructions online, about getting Sketchup working in WINE and managed found a discussion on changing the registry settings for Sketchup. This and some useful error messages from it got me thinking and experimenting, and I eventually got it working!

WARNING!

In case you didn't know this, before reading any lower: Messing with the registry is an easy way to turn your expensive and much-loved computer into a tearful disaster of a paperweight. Be very careful when editing the registry, and if in doubt: DON'T!

  1. Turn on hardware acceleration in Sketchup (Window -> Preferences -> OpenGL -> Use Hardware Acceleration)

  2. While you're there select one of the rows from the capabilities box.

  3. Fire up Regedit, and open HKEY_CURRENT_USER\Software\Google\SketchUp6\GLConfig\Display

  4. Make sure HW_OK is 1, and set PixelFormat to 0 (it will be the number you chose from the capabilities box).

Only PixelFormat 0 worked for me. This seemed to be 32-bit colour and no antialiasing, which for Sketchup though is bloody perfect as far as I'm concerned.

I learned that if anything screws up, Sketchup changes the registry to erase all your modified values, so you'll have to redo steps 3 and 4. To take some human error out of the equation, you can instead make a text file, change the extension to .reg, and paste the following into it (with one trailing new-line). Then just double-click that file. Note the sketchup version - if you're not using version 7 like I am, then this won't work for you:

Repeated for the slow folks though: Messing with the registry is an easy way to kill your computer. Back-up your system and say a quiet prayer before changing the registry.

Windows Registry Editor Version 5.00

; This /should/ reset SketchUp's OpenGL support to be compatible with GLDirect.

[HKEY_CURRENT_USER\Software\Google\SketchUp7\GLConfig\Display]

"HW_OK"=dword:00000001

"PixelFormat"=dword:00000000

Expect extra awesomeness from my next Shapeways project.

Other 3D Projects

I actually started with various 3D projects. Exploring new uses and practicalities and surprises is the funnest part of all of this, but I make a fuss of GLDirect so I moved it up to the top, and I moved this further down the page.

Sinus CAT-Scans - My Skull!

The picture shown is an anaglyph - uses red/cyan glasses. With a pair of these, all you need is the 3D software (most of which is free in anaglyph mode), and FluxPlayer, and you can view my skull yourself! With a 3D monitor of course, you don't need to use anaglyph mode. I spent some time figuring out how to turn my medical scans into a 3D model. Using FluxPlayer, the 3D models can also be viewed in 3D!See here for more detail about how I made it all and to download the models yourself for viewing. CT scans - My shoulder

3D Models in 3D - Sketchup and FluxPlayer (and Shapeways)

I did the same for the scans of my shoulder after I broke it ice-skating.See here for more detail about how I made it all and to download the models yourself for viewing.

These pictures are anaglyphs - they use red/cyan glasses - so you can do this too! With a 3D monitor of course, you're not limited to anaglyphs. Sketchup, as above, can be tweaked to work in 3D! As part of another different hobby project, I decided to replicate the medallion from my favourite childhood television show - the Mysterious Cities of Gold. I've got a separate page about that.Significant in this, is that a stereo view really helps with 3D modelling, and good modelling these days can be made a reality with Shapeways! If you like my model for example, then you can order a 3D print of it yourself, right now! I sell a lot of these.

Thoughts On Hardware

3D monitors / TVs

3D monitors / TVs come in two basic flavours: Active, and Passive.Active = battery-powered glasses and an image that flickers between two images. You get the full resolution of the screen, but juddery motion. NVidia are backing Active tech. I'm very picky about the motion artefacts, I haven't liked any active 3D system I've seen yet.Passive = some way to get one eye to see one set of pixels, and the other to see another set, so each eye only sees half the pixels, so the image is half-resolution. There's no flickering though, and the glasses are just the small light plastic kind - no batteries. Passive is much better for 3D gaming and 3D action movies. What's surprising is you don't notice the loss of vertical resolution much at all. I'm a stereo photography enthusiast working in professional imaging - trust me - passive 3D is the way to go.

Cinemas use passive, generally with two carefully aligned and synchronised projectors, and they need a special non-depolarising screen (you can't just shine polarised light at a white surface and get polarised light back). It takes a hell of a lot of setup and calibration, but cinemas have it best. At the Sydney Stereo Camera Club we use twinned projectors and a silvered screen because we need a large display, but nobody takes that setup home between meetings, and it takes three people about half an hour to set up.

Personal experience with monitors

I started with a 23" Zalman MONITOR (M215W, 1920x1080 interlaced polarised, long since discontinued). Zalman were pretty much the first to get to consumer 3D monitors. The downside was a very narrow viewing angle - you had to be at just the right height. When the Zalman got older, the bottom left-hand corner seemed to slip to a different viewing angle from the rest.

I upgraded to an 23" LG monitor (D2342P, 1920x1080 interlaced polarised) - I bought it blind, for super cheap. I was hoping it would use the same tech as LG TVs! It had the same panel as the Zalman I think :-(

The LG aged better and it was a little brighter - probably just because it was newer. The tight viewing angle was still annoying. The construction was really cheap and crappy though, part of the bevel peeled away from the monitor.

I'm now using a 27" AOC monitor (D2757PH, 1920x1080 interlaced polarised) - viewing angle is much better (but still tight compared to 3D TVs), and I had to tweak the display settings and ended up borrowing a colour-calibrator from work. Calibrated it's awesome, but it wasn't so great out of the box.

49" LED LCD LG 3D 4K TV (49UB850T).

Gorgeous. Amazing. The firmware sucks but the panel itself is amazing. Viewing angle is very generous, ghosting is minimal, picture is sharp. Contrast is not great at all, but you can't have everything.

Future Hardware

The resolution wars are nearly over - 4K will be the next standard, it's just up to everyone to catch up. There won't be as much pressure to go beyond 4K in consumer panel displays; a healthy eyeball at the standard viewing distance can see up to 6K, someone very sharp-sighted and sitting closer for entertainment will still notice a difference until you get to 8K, but only for very sharp-focus content or very high quality rendering, and those will take a few more years to arrive. Do some reading on "retina displays" on small devices to get an idea of this all.

The framerate wars are nearly over, I personally hate the 60fps and above look but it's taking over. At 30fps humans mostly see changing pictures rather than moving content. By 48fps we perceive motion again - that's why the cinema release of The Hobbit stopped looking like magical cinema and started looking like a bunch of short actors in odd makeup under stage lights. Cinema and culture and our expectations will adapt over time I guess, I just can't get used to it. Around 72fps is the limit where we can't really tell the difference any more according to one BBC study I found.

The dynamic-range and colour gamut wars are next. Human vision goes to 14-16 stops of contrast. New SLR cameras are catching up and some special ones go to 18 stops now, better than human vision! Cameras were hovering around 12 stops for ages. Most current LCD monitors have around 9 stops of dynamic range - there is plenty of room for improvement. Keep in mind that one stop is one doubling of brightness, so 14 stops is 2^5 = 32 times more range than 9 stops. It's not just about brighter whites and darker blacks though, 8-bit-per-channel colour isn't enough to cover that range any more, and the colour range needs to be extended. I don't know what the next colour standard will be but I'm interested.

The 3D / free-viewpoint / holographic / lightfield / plenoptic wars haven't yet begun. It's all just tech demos and academic / commercial research. The Lytro might be an impressive and fun toy, but it's a toy. The next generation of 3D is a little while away still.