instantreality 1.0

NVIDIA 3D Vision

Keywords:
tutorial, X3D, world, engine, stereo, active, NVIDIA 3D vision
Author(s): Johannes Behr
Date: 2009-12-01

Summary: This tutorial describes the configuration and setup of the NVIDIA 3D Vision System to be usable with InstantReality.

Preconditions for this tutorial

Please read the tutorials "Multiple Windows and Views" as well as "Active Stereo" in this category to get a good overview about stereo approaches and active stereo setups.

NVIDIA Hardware

Nvidia produces and sells a consumer active stereo system which is mainly targeted for games and entertainment applications. It's called "NVidia 3D Vision" and is available world-wide. It works out of the box with DirectX games. OpenGL applications need a standard Quadbuffer-context which is only available with professional quadro-cards.

The package includes the active shutter glasses, the emitter and necessary cables. There are different versions with and without the extra sync cable needed for the quadro-cards.

Image: NVidia 3D Vision shutter glasses and emitter

Hardware Setup

Quadbuffer is one of the basic features used for stereo rendering, which is needed to provide the separate images for the left and right eye. NVidia supports this feature only in the professional quadro-line.

You have to enable the stereo support following the NVIDIA 3D Vision for Quadro setup page.

There are two different ways to connect the stereo emitter: "Stereo VESA" or USB. If you use one of the professional boards (e.g. Quadro FX 4600) which provide an extra VESA connector you need to connect the emitter using this socket. Some boxes include the needed Stereo VESA to audio cable and some don't.

If you need to build an extra VESA sync cable follow the 3D Vision VESA cable setup guide.

Software Setup

InstantReality directly supports QuadBuffer rendering for stereo. You only need two Viewarea nodes layered onto each other and a Window with 4 buffers.

Please read the "Active Stereo" tutorial for details.

Code: Stereo configuration with Quad-Buffer

RenderJob { 
  windowGroups [
    WindowGroup {
      windows [
        LocalWindow {
        buffer 4
          views [
            Viewarea {
              leftBuffer TRUE
              rightBuffer FALSE
              modifier [
                ShearedStereoViewModifier {
                  leftEye  TRUE
                  rightEye FALSE
                }
              ]
            }
            Viewarea {
              leftBuffer FALSE
              rightBuffer TRUE
              modifier [
                ShearedStereoViewModifier {
                  leftEye  FALSE
                  rightEye TRUE
                }	
              ]
            }
          ]
        }
      ]
    }
  ]
}
	
Files: