Last year I published the first release of my stereoscopic image viewer, SIV here. At the time it was the first viewer for Linux supporting jps files and quad buffered stereo. As far as I know it is still the only one with support for the headtracking of the VR920 head mounted display. Currently I am working on a new and better version which will have the following additional features:
native support for the MPO file format (used by Fujifilm stereo cameras)
adjustments for -parallax -brightness -contrast -gamma
Improved OSD
Filters -black/white -sepia
In the current development stage most of the features are basically working so expect the new version of the viewer to be released soon. I hope to get it ready for Christmas, for those of you who have their new 3D camera under the Christmas tree.
One year ago I provided a gentoo ebuild for mplayer which included support for quad-buffered stereo, enabling mplayer to display stereoscopic movies like the great movie Avatar3D I watched in cinema today. To learn more about the movie look here and here. Sadly the patch I referenced there does not apply over newer mplayer versions. So I had to modify the original patch from Stuart Levy to work again with newer mplayer versions. You may download the updated patch from here:
The patch should work at least with nvidia quadro boards, probably with some others. It can be used with CRT and generic shutter glasses or HMDs like the Vusix VR920. Some stereoscopic sample movies for trying it out can be found on www.3d.wep.dk.
For Gentoo users I also modified the mplayer ebuild from portage to include the patch. The modified ebuild is available here:
To use the ebuild it just copy it to /usr/local/portage/media-video/mplayer and copy the the patch to the “/usr/local/portage/media-video/mplayer/files” directory. You probably have to create these directories. Then run
I’m proud to present a new version of SIV, the stereoscopic jps viewer for Linux I published first in SIV – a stereoscopic jps viewer for Linux. SIV is capable of displaying jps stereo images in different stereo modes. I tried it in fullscreen/windowed mode with anaglyphic and quad buffered stereo mode. Different output devices I tested were my Vuzix VR920 and relevator shutter glasses on Nvidia Quadro FX 350M and FX 3400. It should also work with an Ati FireGL, but I never tried this. The new version fixes some segfaults, that occured when needed libraries were missing. Furthermore I added a slideshow mode and the possibility to specify a default distance and therefore the possibility to set a default zoom factor. The coolest feature I added to the viewer is the headtracking support for the Vuzix VR920 HMD. For this you will need (in addition to the device 😉 ) the headtracking driver, I published in VR920 headtracking driver for Linux. You may watch a video (demo_siv_headtracking_vr920) of me using the viewer with enabled headtracking to view some photos of NASA’s Apollo missions downloadable from nvidia forums.
Usage changes:
New commandline options are:
-s Enable slideshow mode
-t delay Delay for slideshow mode, defaults to 10 sec
-d distance (values between 0.0 and 1.0 are senseful)
These new options control the new headtracking support:
–vr920 enable headtracking support for the vuzix vr920 hmd
-m non default multicast ip
-p non default multicast port
For detailed information on the -m and -p options see the article about the headtracking driver : VR920 headtracking driver for Linux. They have the corresponding meaning. If you want to try out the headtracking, enable the headtracking support with the –vr920 option. You may want to specify the distance to the image with the -d option. Values between 0.25 and 0.5 seem to have a nice effect when using the headtracking. When headtracking is active you may press Z to set the zero view so that with your current head position you will see the center of the image. If you want to manipulate the view manually press 2 to enable the trackball manipulator and use i.e. the right moue button and up or down movements (with the mouse) to control the distance (zoom in or out). Afterwards press 1 to activate headtracking again.
I decided to publish the viewer under the creative common noncommercial license. Make sure you have the OpenSceneGraph library installed before trying to compile or run the viewer. You may download the full source (Eclipse Project) from here:
. More binary formats may be available in the future. Fore the x86_64 binary you’ll need OpenSceneGraph-2.8.
Binaries for most linux distributions can be downloaded from www.openscenegraph.org. Instructions on how to build OpenSceneGraph on gentoo can be found on PlopByte.
Building from source:
For building from source unpack the zip and cd to siv/Release and run make.
Footnote:
If you like the viewer, feel free to link to www.mygnu.de. To request commercial licenses contact us at info(at)mygnu.de. Well, if you just want to support our work on MyGNU.de use the donate button 😉
As promised in JPS-viewer for linux, here comes the very first release of SIV, the first available Stereoscopic Image Viewer for Linux supporting quad buffered stereo. Well this is not 100% correct, since it is build upon OpenSceneGraph it is somewhat platform independant and schould compile well on windows, mac and unix platforms. However, I only tried with linux since there are enough alternatives available for most other platforms.
SIV is capable of displaying jps stereo images in different stereo modes. I tried it in fullscreen/windowed mode with anaglyphic and quad buffered stereo mode. Different output devices I tested were my Vuzix VR920 and relevator shutter glasses on Nvidia Quadro FX 350M and FX 3400. It still lacks some convenience functions like a diashow mode.
Screenshot of the viewer as window in anaglyphic mode:
A note about the name SIV, SIV stands for Stereoscopic Image Viewer, but as I found out Siv is also the name of the wife of the god Thor in the norse mythology. See: Wikipedia: Sif and Behindthename: Siv. Sif and Siv are the same name, both writings are possible. Once I found out this, I thought that’s a cool name for this piece of work.
Usage:
./siv [options] jpsfile(s) Options: –CullDrawThreadPerContext Select CullDrawThreadPerContext threading model for viewer. –CullThreadPerCameraDrawThreadPerContext Select CullThreadPerCameraDrawThreadPerCo- ntext threading model for viewer. –DrawThreadPerContext Select DrawThreadPerContext threading model for viewer. –SingleThreaded Select SingleThreaded threading model for viewer. –accum-rgb Request a rgb accumulator buffer visual –accum-rgba Request a rgb accumulator buffer visual –cc Request use of compile contexts and threads –clear-color <color> Set the background color of the viewer in the form “r,g,b[,a]”. –display <type> MONITOR | POWERWALL | REALITY_CENTER | HEAD_MOUNTED_DISPLAY –rgba Request a RGBA color buffer visual –samples <num> Request a multisample visual –screen <num> Set the screen to use when multiple screens are present. –serialize-draw <mode> OFF | ON – set the serialization of draw dispatch –stencil Request a stencil buffer visual –stereo Use default stereo mode which is ANAGLYPHIC if not overriden by environmental variable –stereo <mode> ANAGLYPHIC | QUAD_BUFFER | HORIZONTAL_SPLIT | VERTICAL_SPLIT | LEFT_EYE | RIGHT_EYE | HORIZONTAL_INTERLACE | VERTICAL_INTERLACE | CHECKERBOARD | ON | OFF –window <x y w h> Set the position (x,y) and size (w,h) of the viewer window. -O <option_string> Provide an option string to reader/writers used to load databases -e <extension> Load the plugin associated with handling files with specified extension -h or –help Display this information -l <library> Load the plugin
You may notice that most of the options come from osgViewer, which is the base class for the viewer. This gives the advantage, that one can use the “normal” osgViewer controls such as flying around the scene. Try holding the right mouse button and moving the mouse up or down for zooming out or in. Or press F for toggling fullscreen mode or press S for toggling the stats (fps, etc.) display.
You may supply multiple .jps files at the command line. I.e. ./siv *.jps will display all jps files in the current folder 😉
Once the first image of the list is being displayed you may use CURSOR_UP/DOWN or the mouse wheel to select a different image for being displayed. In future versions I may implement a diashow function…
When displaying an image the filename of the image is displayed in the lower left corner.
As default SIF starts in fullscreen quad buffered stereo mode. Thus if your graphics hardware does not support this mode, the viewer will exit with the following error:
Error: Not able to create requested visual. GraphicsWindow has not been created successfully. Viewer::realize() – failed to set up any windows
In this case try anaglyphic mode or the apropiate 3D mode for your hardware (see the –stereo option).
You may experience the application segfaulting. Most possibly the reason is that your OpenSceneGraph lacks the library osgdb_jp2.so in the lib/osgPlugins folder. If you strace the application and the last thing it tries before segfaulting is to access osgdb_jp2.so, this is the reason. The Problem will be corrected in the next version of SIV. For now install Jasper and rebuild OpenSceneGraph.
Download:
Do not download these files anymore unless you explicitely want this version. New version is available at: SIV-1.0 released
I decided to publish the viewer under the creative common noncommercial license. Make sure you have the OpenScenegraph library installed before trying to compile or run the viewer. You may download the full source (Eclipse Project) from here:
. More binary formats may be available in the future. Fore the x86_64 binary you’ll need OpenSceneGraph-2.8.
Binaries for most linux distributions can be downloaded from www.openscenegraph.org. Instructions on how to build OpenSceneGraph on gentoo can be found on PlopByte.
Building from source:
For building from source unpack the zip and cd to siv/Release and run make.
Future plans:
For the future I’d like to implement a diashow function and to integrate the VR920 headtracking into the viewer. It would be really cool to view a sea panorama image in 3D by turning the head This is the reason why the image is not being displayed plain, but on a cylinder segment. For the tracking I’ll have to write a driver for the VR920 headtracking first, to get the camera viewmatrix for the viewer. Since in Vuzix Forums I found a non working driver, from which I was able to learn how to read the sensor data, I only have to implement the neccesary calculations and calibration methods.
Well, I hope you enjoy the 3rd dimension. If you like the viewer feel free to link to MyGNU.de.
Experimenting with my VR920 3D stereo glasses I found a patch to enable stereoscopic support in mplayer (thanks to Stuart Levy). With this patch I can now watch 3D movies on my eyewear under linux. Let me tell you, it’s a really cool experience.
The patch should work at least with nvidia quadro boards, probably with some others. It can also be used with CRT and generic shutter glasses. You can download the patch from here:
To use it just copy the mplayer subtree from the portage tree to /usr/local/portage/media-video/mplayer and remove the ebuilds. Copy the new ebuild to that directory and the patch to the “files” directory. Then run