NVidia 3D Vision on Linux

This page contains some notes and status about the NVidia Vision 3D on Linux. To put it simple the problem is that the monitor is receiving frame sequential images, and without a Quadro the Emitter is synchronised via USB with some visible ghosting effects. The main point is that it is needed a quite high-end NVidia Card because DIN has been dropped in low-end Quadro.

Why do we need it? Because of the setup in the context of the FP7 ReMeDi project in which we use 3D Display with Haptic interaction for Remote Ultrasonography and Palpation [IROS15 Paper]

The key issue is the support of Quad Buffering for non-Quadro devices and the Driver automatic interface to the USB IR Emitter. Windows supports this since 314.07, while Linux is still locked.

NVidia forum discussions: 2017 (375 regresses over 367), here and previously here.


Windows API

Under Windows the API stays in nvstereo.h of the SDK and as seen from one of the project in the resources the API controls the glasses directly (when using USB), and introduced by NVidia (PDF).

The stereo Direct3D API works by creating a side-by-side 3D with the addition of one row at the end with NVSTEREOIMAGEHEADER. This structure contains signature, width, height, bpp and flags.

The OpenGL-Direct3D technique is also used by H3DAPI under Windows


Recent Programs with Support for NVidia Vision

  • CloudCompare: OpenGL Quad Buffer (GL_STEREO)
  • H3DAPI: OpenGL-D3D bridge with special row
  • PyMol
  • Coot
  • Chimera