Library and example for using DLP stereo in OpenGL

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

MIT licensed and maintained by Brian W Bush

Functions for using DLP stereo with 3-D Ready Sync projectors and OpenGL

This Haskell package contains functions for rendering 3D stereo using DLP 3-D Ready Sync projectors and active-shutter stereo glasses. It also includes a sample application and notes regarding hardware setup for DLP. In particular, note that this technique does not require a graphics card that supports GL_STEREO.

The code conforms to the specification <> and is based on the implementation for the stereo movie viewer Bino <>.

Please report issues at <>.

Skeletal example illustrating the use of frame-sequential DLP

main :: IO ()
main = do
  _ <- getArgsAndInitialize
  initialDisplayMode $= [WithDepthBuffer, DoubleBuffered]
  _ <- createWindow \"DLP Stereo OpenGL Example\"
  depthFunc $= Just Less 
  idleCallback $= Just (postRedisplay Nothing)
  -- Use frame-sequential DLP encoding.
  dlpDisplayCallback $= def {dlpEncoding = FrameSequential, doDisplay = display}

display :: DlpDisplayCallback
display eye = do
  -- Shift the view slightly, depending on for which eye to draw.
  translate $ Vector3 (if eye == LeftDlp then -0.05 else 0.05 :: GLfloat) 0 0 
  -- All of the rendering actions go here.
  renderPrimitive . . .

Notes on hardware and software

This code has been validated with the following configuration of hardware and software:

  • Optoma ML550 WXGA 500 Lumen 3D Ready Portable DLP LED Projector, running 120 Hz at 1024x768 resolution
  • Optoma ZD302 DLP Link Active Shutter 3D Glasses
  • Ubuntu 15.04, 64-bit
  • NVIDIA Driver Version 340.93, with xorg.conf option Stereo set to 8
  • GHC 7.6.3
  • OpenGL ==
  • GLUT ==
Depends on 5 packages:
Used by 1 package:
comments powered byDisqus