Monthly Archives: April 2013

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.