Tag Archives: 3D Vision

Introducing the CtrlAltStudio Viewer: Second Life and OpenSim in Stereoscopic 3D

Configuring Stereoscopic 3D in the CtrlAltStudio Viewer

Configuring stereoscopic 3D in the CtrlAltStudio Viewer

The CtrlAltStudio Viewer provides stereoscopic 3D display of Second Life and OpenSim. It is based on the Firestorm Viewer and uses OpenGL quad buffered stereo for display. I’ve provided a beta version for you to try out if you’d like. It works on Windows with an NVIDIA GeForce graphics card and 3D Vision, and it should also work with a variety of other graphics cards.

On Windows with an NVIDIA GeForce graphics card and 3D Vision, here’s what you need:

  • GeForce GTS 250 or better should work.
  • GeForce driver 314.07 or later.
  • Display set to 120Hz.
  • Stereoscopic 3D enabled in the NVIDIA Control Panel.
  • 3D Vision set up and working with active shutter glasses.
  • Viewer configured to be full screen, with basic shaders off, and stereoscopic 3D output.

The viewer should, in theory, also work with NVIDIA Quadro cards (possibly in windowed mode even), plus AMD Radeon HD 6000 or better, and AMD FireGL V7600 or better with recent drivers. I don’t yet have any information on which of these setups it works on or not but would love to hear your experience.

Though I’ve only provided a Windows version of the viewer, if you have a Mac or Linux and the know-how, you can grab a copy of the CtrlAltStudio Viewer source code and update it to compile a version for your system. If you do this and would like me to include your updates in the repository, let me know.

This beta version has a number of limitations as noted in its release notes; I’ll be updating the viewer to address these in the days to come. More news soon!

A Proof-of-Concept Stereoscopic 3D Second Life Viewer

Second Life in Anaglyph 3D

Customized Firestorm viewer running in stereoscopic 3D. SLURL

Now that quad-buffered OpenGL stereoscopic 3D is enabled for NVIDIA GeForce graphics cards, can Second Life be viewed on these graphics cards in stereoscopic 3D? Indeed it can.

I did a quick proof-of-concept custom Windows build of the Firestorm viewer 4.3.1. Well, it wasn’t quick in that it took a while to get my build environment set up but the code changes made were minimal:

  • Requested stereo mode at start-up.
  • For each frame, render separate views for left and right eyes:
    • Offset the camera to the left and render into the OpenGL left back buffer.
    • Offset the camera to the right and render into the OpenGL right back buffer.

When run on my Windows laptop which has NVIDIA 3D Vision built in, its “3D” IR emitter light comes on straight away at the login screen (which still displays in 2D the same as before). Then, when you log in and enter Second Life or OpenSim the world is displayed in stereo: your avatar in normal camera-over-the-shoulder view is around 2.5cm / an inch in front of the screen; the UI including name tags is at screen depth; the world renders partly in front of and partly behind the screen. Thus proving that stereo can be made to work.

Prerequisites for running my proof-of-concept build in stereo:

  • GeForce driver 314.07 or later.
  • Display set to 120Hz.
  • Stereoscopic 3D enabled.
  • 3D Vision set up. *
  • Viewer configured to be full screen.
  • Viewer configured with basic shaders turned off.

To make a releasable viewer there are a number of further code changes that would need to be made, including:

  • UI configuration of stereo on / off and parameters like eye separation.
  • Handling of incompatible viewer graphics settings.
  • Implement a proper asymmetric frustum for each eye to get the correct parallel axis stereo geometry.
  • Render name tags and the like at the correct perceived distance.
  • Review each step in the graphics pipeline and adjust as required.

Quite a few changes but not insurmountable. Now I’m thinking that maybe I should make a third-party viewer with stereo support. Hmmm.

* Note, however, that it doesn’t work with 3D Vision Discover anaglyph.

Revisiting Second Life and Stereoscopic 3D

Second Life in Anaglyph 3D

Kirsten’s Viewer in anaglyph 3D, March 2013. SLURL

Recent NVIDIA graphics driver changes mean that perhaps a Second Life / OpenSim viewer could again be programmed to display in stereoscopic 3D on consumer-level GeForce + 3D Vision hardware.

There was some activity on stereoscopic 3D Second Life viewers in the past. In 2007 there was the University of Michigan patch and Dale’s Viewer, but active shutter glasses support never made it into a mainstream viewer. Second Life uses OpenGL as its graphics programming language and in 2008 both NVIDIA and TriDef unfortunately removed OpenGL stereoscopic support for GeForce and AMD graphics cards. Note, however, that NVIDIA did continue to support OpenGL stereoscopic 3D in their more expensive, professional-level Quadro + 3D Vision solutions. Also, the code was never really removed from their GeForce drivers: NVIDIA specially enabled stereoscopic 3D for a select few stereo OpenGL games like Doom 3 BFG!

This unfortunate state of affairs changed in February 2013 with NVIDIA’s 314.07 GeForce driver. An unannounced change meant that OpenGL stereoscopic 3D started working for full-screen stereo programs on GeForce for at least some computer configurations. For example, it works on mine: Windows 8 64-bit, GeForce GTX 680M, laptop with built-in 3D Vision IR transmitter. Additionally, while it currently may not be possible to make OpenGL stereoscopic 3D work on AMD systems, it should work on at least some Mac and Linux systems. If you want to test whether it works on your Windows PC there’s a simple test program provided in the MTBS3D forum thread.

This is all good but a worry is that because it was unannounced it might be an unintentional change by NVIDIA; apart from perhaps not working on all GeForce systems, NVIDIA might disable OpenGL stereoscopic 3D again in a subsequent driver version. (Happily, it remained enabled in March’s 314.22 GeForce driver.) However, if they do disable it again there is a fall-back solution whereby OpenGL stereoscopic output can be converted to Direct3D for display with NVIDIA 3D Vision.

So perhaps it’s time to revisit adding stereoscopic 3D support for Second Life / OpenSim? If you want a taste of what could be and happen to have a pair of red-green glasses, it’s well worth your while downloading Kirstens Viewer which, while not actively maintained, still works in anaglyph 3D. (Make sure to turn lighting and shadows off.) The screen capture above was taken using Kirstens Viewer.

UPDATE: Enabing quad-buffered OpenGL stereoscopic 3D support on GeForce was an intentional change by NVIDIA. [Reference] 9 Apr 2013

UPDATE: It appears that OpenGL quad buffered support is now available with AMD Radeon HD 6000 or better graphics cards. I don’t know when this was enabled. 20 Jun 2013