Stereo: Difference between revisions

From CCP4 wiki
Jump to navigation Jump to search
(→‎Linux: "composite" "disable" no longer works - thx Mario!)
(24 intermediate revisions by 4 users not shown)
Line 8: Line 8:
# '''3D Vision Pro''' is ''not'' what you want, this is for professional CAD/CAM applications, and is expensive.
# '''3D Vision Pro''' is ''not'' what you want, this is for professional CAD/CAM applications, and is expensive.
# The quality of Nvidia 3D Vision 2 is better than that of Zalman, because Zalman stereo means halved vertical resolution.
# The quality of Nvidia 3D Vision 2 is better than that of Zalman, because Zalman stereo means halved vertical resolution.
# The Nvidia 3D vision emitter that requires connection via USB and Quadro 3-pin connector only works on Windows, not Linux!
# The Nvidia 3D vision emitter must be connected to both USB and Quadro 3-pin DIN Stereo socket. This setup works on Windows and nowadays Linux (consult this [http://cismm.cs.unc.edu/core-projects/visualization-and-analysis/setting-up-a-simple-stereo-system/ link], and [http://us.download.nvidia.com/XFree86/Linux-x86_64/346.35/README/xconfigoptions.html search this link for the word "USB"]. The cheapest (2018+) Nvidia Quadro with 3-pin DIN Stereo connector is the P4000 (http://www.nvidia.de/object/quadro-desktop-gpu-specs-de.html) which starts at ~ €780; cheaper and older ones can be found e.g. on EBay; they may require one of the [http://www.nvidia.com/object/unix.html long-term Legacy (Long Lived) Linux drivers]. For specific products, see also [http://www.nvidia.com/Download/index.aspx] .
# Linux traditionally needs the DIN 3-pin connector found on the high end Quadros and [http://www.nuvision3d.com/the60gx.html NuVision] or [http://www.reald-corporate.com/scientific CrystalEyes] stereo glasses. The cheapest (2014+) Nvidia Quadro with 3-pin DIN Stereo connector is the K4200 (http://www.nvidia.de/object/quadro-desktop-gpu-specs-de.html) which starts at ~ €700.
# For Linux, a Nvidia 3D vision emitter "workaround" requires the DIN 3-pin connector found on the high end Quadros and [http://www.nuvision3d.com/the60gx.html NuVision] or [http://www.reald-corporate.com/scientific CrystalEyes] stereo glasses and emitter. The 3-pin DIN cable is difficult to find if you do not have one, and it is recommended that you splice your own. This author purchased a 3-pin mini-DIN connector here: [http://www.vetco.net/catalog/product_info.php?products_id=6588], spliced it onto a 2.5mm stereo audio cable like from here: [http://www.vetco.net/catalog/product_info.php?products_id=6952], using information adapted from this page explaining how to adapt connections for the older VESA standard for stereo here: [http://www.stereo3d.com/vesa3.htm] (it works quite well). The Figures on [https://forums.geforce.com/default/topic/411219/3d-vision/3d-vision-vesa-cable/7/] or [https://forums.geforce.com/default/topic/513899/3d-vision/link-nvidia-3d-vision-kit-with-dlp-display-projector-connection-problem-with-vesa-stereo-cable-ir-tr/] show details on connecting the plugs. Note that the 5V power line does ''not'' need to be connected as the receiver is powered by USB.  
# Compatible stereo monitors (120 or 144Hz), without build-in emitter and thus for Windows only, are [http://www.nvidia.com/object/3d-vision-displays.html listed] but this website has not been updated for years.
# The most affordable NVIDIA 3D Vision solution on Linux used to be a monitor with built-in IR emitter (for example BenQ XL2420TX or ASUS VG278HR), and a cheap Quadro, e.g. the K420 or FX380. The latter has a Dual-Link DVI (DVI-D) and a Displayport outlet, so can drive the stereo monitor, and an additional monitor. This solution avoids the USB/3-pin hassle altogether. See below for xorg.conf! GeForce cards (instead of Quadro) ''do not give openGL Quad Buffered Stereo'' on Linux (on Windows neither). Unfortunately, monitors with built-in IR emitter are seemingly no longer produced (2017).
# The currently (2013+) most affordable NVIDIA 3D Vision solution on Linux is to buy a monitor with built-in IR emitter (such as BenQ XL2420TX or ASUS VG278HR), and a cheap Quadro, e.g. (2013) the FX380 or (2015) K420. The latter has a Dual-Link DVI and a Displayport outlet, so can drive the stereo monitor, and an additional monitor. This solution avoids the USB/3-pin hassle altogether. See below for xorg.conf! GeForce cards (instead of Quadro) ''do not give openGL Quad Buffered Stereo'' on Linux (on Windows neither).
# [http://www.nvidia.com/object/3d-vision-displays.html The Nvidia page that names monitors with built-in emitter] is not up-to-date; in particular, monitors with built-in emitter are no longer being produced (potentially can be bought on EBay or so). http://geizhals.eu/?cat=monlcd19wide has a "3D-fähig" (3D-capable) attribute.
# [http://www.nvidia.com/object/3d-vision-displays.html The Nvidia page that names monitors with built-in emitter] also has not changed for years. http://geizhals.eu/?cat=monlcd19wide now has a "inkl. 3D-emitter" attribute. This currently only returns the Asus 278HR which can only be bought in Poland, or through EBay.
# Cheap Quadros (e.g. K420) with DVI-I Dual-Link Connector (DVI-I DL / DVI-D) or DisplayPort work well. Make sure the card can do dual-link DVI if your monitor has only DVI-D input. Any card (including the "Windows only" ones!) [http://www.nvidia.com/object/3d-vision-pro-requirements.html#Quadro listed] should work if a) it can do dual-link DVI if the monitor has only DVI-D input, and b) if the monitor has built-in emitter. The DisplayPort 1.2 (Quadro) to DisplayPort 1.2 (monitor) connection works well (e.g. with the BenQ XL2420TX).
# Cheap Quadro cards with DVI-I Dual-Link Connector (DVI-I DL or DVI-D) or DisplayPort work well. Make sure the card can do dual-link DVI if your monitor has only DVI-D input. Any card (including the "Windows only" ones!) [http://www.nvidia.com/object/3d-vision-pro-requirements.html#Quadro listed] should work if a) it can do dual-link DVI if the monitor has only DVI-D input, and b) if the monitor has built-in emitter. DisplayPort works well with the BenQ XL2420TX.
# To connect a DVI-D monitor to ar Quadro with DisplayPort 1.2, you will need a Club-3D CAC-1051 active DisplayPort/Dual-Link DVI Adapter 330MHz (110 €: do not buy the cheaper 270 MHz model, it will not work because the bandwidth is too low for 1920x1080@120hz) or for cards with miniDisplay ports, the Club-3D CAC-1151 active miniDisplayPort/Dual-Link DVI Adapter 330MHz.
# If the Quadro has DisplayPorts 1.2 only, you will need a Club-3D CAC-1051 active DisplayPort/Dual-Link DVI Adapter 330MHz for about 110 € (do not buy the 270 MHz model, it will not work as the bandwidth is too low for 1920x1080@120hz) or for cards with miniDisplay ports, the Club-3D CAC-1151 active miniDisplayPort/Dual-Link DVI Adapter 330MHz.
# specs of latest ("Maxwell") and previous ("Kepler") generation of Quadro cards are at http://www.nvidia.com/object/quadro-desktop-gpus.html . A comparison of all PCIexpress Quadro cards is at http://en.wikipedia.org/wiki/Nvidia_Quadro#PCI_Express . Latest (2014+) with prices are at http://www.heise.de/preisvergleich/?cat=gra16_512&asd=on&asuch=quadro&xf=3312_2014&sort=p . Currently (2015), the K620 is the entry system with the best price/performance ratio; in the middle range the K2200 still seems affordable.
# specs of latest ("Maxwell") and previous ("Kepler") generation of Quadro cards are at http://www.nvidia.com/object/quadro-desktop-gpus.html . A comparison of all PCIexpress Quadro cards is at http://en.wikipedia.org/wiki/Nvidia_Quadro#PCI_Express . Latest (2014+) with prices are at http://www.heise.de/preisvergleich/?cat=gra16_512&asd=on&asuch=quadro&xf=3312_2014&sort=p . Currently (2015), the K620 is the entry system with the best price/performance ratio; in the middle range the K2200 still seems affordable.


Line 21: Line 20:
[[Zalman Stereo]] is supported by [[Coot]]; no drivers or other software must be installed.
[[Zalman Stereo]] is supported by [[Coot]]; no drivers or other software must be installed.


NVidia 3D Vision 2: Using NVidia's 346.35 driver on RHEL/CentOS/SL 7, I changed /etc/X11/xorg.conf (see http://us.download.nvidia.com/XFree86/Linux-x86_64/346.35/README/xconfigoptions.html) to have
NVidia 3D Vision and 3D Vision 2: Requires the appropriate hardware as detailed above. With the NVidia proprietary graphics drivers installed, 3D Vision will work with a few minor tweaks. The Xorg configuration file (usually located at /etc/X11/xorg.conf) must be adapted.
     Section "Device"
# It can be edited -- see [http://us.download.nvidia.com/XFree86/Linux-x86_64/346.35/README/xconfigoptions.html] for more information), or
      Driver      "nvidia"
# <code>nvidia-settings</code> could be run, or
       Option     "Stereo" "10"
# <code>nvidia-xconfig --stereo=10</code> (The value of 10 is specific to the 3D Vision system)
     EndSection
 
but there was no stereo (coot only shows a slightly rotated view), nor was there any hint in /var/log/Xorg.0.log that stereo is disabled. In fact, stereo ''is'' disabled, due to the Composite Extension (see http://us.download.nvidia.com/XFree86/Linux-x86_64/346.35/README/xcompositeextension.html). If this extension is itself disabled by
The resulting xorg.conf has an option for stereo mode under the section labeled "Device" in this minimal example:
     Section "Extensions"
<pre>
      Option    "Composite" "Disable"
Section "Device"
    EndSection
    Identifier    "Device0"
then the login screen (gdm) crashes (discussed at https://devtalk.nvidia.com/default/topic/556113/3d-vision-and-composite-option). The only way out is to install a different display manager, like documented at e.g. http://jensd.be/?p=125 (confirmed by Dirk Kostrewa in 9/2014). This works well - I'm now using lightdm and the MATE desktop with a NVidia Quadro K420 and a BenQ XL2420TX. The graphics performance is very good for electron density inspection and fitting.
    Driver        "nvidia"
    VendorName    "NVIDIA Corporation"
    Option "Stereo" "10"
EndSection
</pre>
The following is a longer example, for a dual-monitor setup - this was generated with <code>nvidia-settings</code> and has the stereo option in the "Screen" section::
 
<pre>
Section "Monitor"
    Identifier    "Monitor0"
    VendorName    "Unknown"
    ModelName      "BenQ XL2420TX"
     HorizSync      30.0 - 140.0
    VertRefresh    56.0 - 120.0
EndSection
 
Section "Device"
    Identifier    "Videocard0"
    Driver        "nvidia"
EndSection
 
Section "Device"
    Identifier    "Device0"
    Driver         "nvidia"
    VendorName    "NVIDIA Corporation"
    BoardName     "Quadro K420"
EndSection
 
Section "Screen"
    Identifier    "Default Screen"
    Device        "Videocard0"
EndSection
 
Section "Screen"
    Identifier    "Screen0"
    Device        "Device0"
    Monitor       "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "10"
     Option        "nvidiaXineramaInfoOrder" "DFP-0"
    Option        "metamodes" "DVI-I-1: 1920x1080_120 +0+0, DP-1: nvidia-auto-select +1920+0"
    Option        "SLI" "Off"
    Option        "MultiGPU" "Off"
    Option        "BaseMosaic" "off"
    SubSection    "Display"
        Depth      24
    EndSubSection
EndSection
</pre>
 
This should be enough to get stereo working. However, note that there is a major issue on linux with window compositing causing stereo images to display improperly. This is a problem with the window display manager, and is not inherent to Xorg or NVidia. If you try to turn on stereo in Coot in a display manager that makes use of the Xorg compositing extension (e.g., Gnome3, or Unity in Ubuntu) then what you will see when you activate hardware stereo is a slight rotation of the view, but stereo remains disabled. In order to get around this problem, you must use a display manager that does not make use of compositing as part of its eye candy. This author has found the MATE desktop to work quite well for this purpose (and may in fact be one of the few that still does not use software compositing by default). Note that you ''do not'' need to disable the Compositing extension in the Xorg configuration file to make this work -- this will allow you to switch back to Gnome3, Unity, etc when you don't need stereo if you prefer! Not disabling the window compositing extension globally allows for a more flexible setup depending on your preferred workflow.
 
The update of RHEL7 to 7.6 broke our /etc/X11/xorg.conf . It needs now
        Section "Extensions"
          Option     "COMPOSITE" "Off"
        EndSection
instead of
        Section "Extensions"
          Option    "Composite" "Disable"
        EndSection
The old version still works with KDE, but no longer with MATE. Thanks to Dirk Kostrewa for pointing this out!


===Mac OS X===
===Mac OS X===
The following command needs to be run for Macs to be able to support stereo in X11 programs, such as Coot [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/Installing_Coot_on_OS_X] :
The following command needs to be run for Macs to be able to support stereo in X11 programs, such as Coot [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/Installing_Coot_on_OS_X] :
     defaults write com.apple.x11 enable_stereo -bool true
     defaults write com.apple.x11 enable_stereo -bool true
===Windows===
There's some information at http://bernhardcl.github.io/coot/wincoot-faq.html#mozTocId910462 . This says:
'''WinCoot with NVIDIA and Win 10?'''
If you run into problems with stereo on Windows 10 (using an NVIDA card), you can try the following (thanks to Jose Brito):
# Open NVIDIA Control Panel --> Manage 3D settings.
# Go to Program Settings tab.
# Add the file you launch the program from by clicking on Add button.
# In the setting window, change the 'Power Management Mode' to 'Prefer Maximum Performance'. Also below settings as well:
# Vertical sync - off
# Threaded optimization - off
# Triple buffering - off
# Stereo enable on
# Run the program and check


==Ono==
==Ono==
Line 67: Line 142:


http://pymolwiki.org/index.php/Stereo_3D_Display_Options
http://pymolwiki.org/index.php/Stereo_3D_Display_Options
https://sbgrid.org/wiki/usage/stereo

Revision as of 16:35, 20 October 2019

Hardware

Zalman Stereo

has its own article.

Nvidia 3D Vision 2

  1. 3D Vision Pro is not what you want, this is for professional CAD/CAM applications, and is expensive.
  2. The quality of Nvidia 3D Vision 2 is better than that of Zalman, because Zalman stereo means halved vertical resolution.
  3. The Nvidia 3D vision emitter must be connected to both USB and Quadro 3-pin DIN Stereo socket. This setup works on Windows and nowadays Linux (consult this link, and search this link for the word "USB". The cheapest (2018+) Nvidia Quadro with 3-pin DIN Stereo connector is the P4000 (http://www.nvidia.de/object/quadro-desktop-gpu-specs-de.html) which starts at ~ €780; cheaper and older ones can be found e.g. on EBay; they may require one of the long-term Legacy (Long Lived) Linux drivers. For specific products, see also [1] .
  4. For Linux, a Nvidia 3D vision emitter "workaround" requires the DIN 3-pin connector found on the high end Quadros and NuVision or CrystalEyes stereo glasses and emitter. The 3-pin DIN cable is difficult to find if you do not have one, and it is recommended that you splice your own. This author purchased a 3-pin mini-DIN connector here: [2], spliced it onto a 2.5mm stereo audio cable like from here: [3], using information adapted from this page explaining how to adapt connections for the older VESA standard for stereo here: [4] (it works quite well). The Figures on [5] or [6] show details on connecting the plugs. Note that the 5V power line does not need to be connected as the receiver is powered by USB.
  5. The most affordable NVIDIA 3D Vision solution on Linux used to be a monitor with built-in IR emitter (for example BenQ XL2420TX or ASUS VG278HR), and a cheap Quadro, e.g. the K420 or FX380. The latter has a Dual-Link DVI (DVI-D) and a Displayport outlet, so can drive the stereo monitor, and an additional monitor. This solution avoids the USB/3-pin hassle altogether. See below for xorg.conf! GeForce cards (instead of Quadro) do not give openGL Quad Buffered Stereo on Linux (on Windows neither). Unfortunately, monitors with built-in IR emitter are seemingly no longer produced (2017).
  6. The Nvidia page that names monitors with built-in emitter is not up-to-date; in particular, monitors with built-in emitter are no longer being produced (potentially can be bought on EBay or so). http://geizhals.eu/?cat=monlcd19wide has a "3D-fähig" (3D-capable) attribute.
  7. Cheap Quadros (e.g. K420) with DVI-I Dual-Link Connector (DVI-I DL / DVI-D) or DisplayPort work well. Make sure the card can do dual-link DVI if your monitor has only DVI-D input. Any card (including the "Windows only" ones!) listed should work if a) it can do dual-link DVI if the monitor has only DVI-D input, and b) if the monitor has built-in emitter. The DisplayPort 1.2 (Quadro) to DisplayPort 1.2 (monitor) connection works well (e.g. with the BenQ XL2420TX).
  8. To connect a DVI-D monitor to ar Quadro with DisplayPort 1.2, you will need a Club-3D CAC-1051 active DisplayPort/Dual-Link DVI Adapter 330MHz (110 €: do not buy the cheaper 270 MHz model, it will not work because the bandwidth is too low for 1920x1080@120hz) or for cards with miniDisplay ports, the Club-3D CAC-1151 active miniDisplayPort/Dual-Link DVI Adapter 330MHz.
  9. specs of latest ("Maxwell") and previous ("Kepler") generation of Quadro cards are at http://www.nvidia.com/object/quadro-desktop-gpus.html . A comparison of all PCIexpress Quadro cards is at http://en.wikipedia.org/wiki/Nvidia_Quadro#PCI_Express . Latest (2014+) with prices are at http://www.heise.de/preisvergleich/?cat=gra16_512&asd=on&asuch=quadro&xf=3312_2014&sort=p . Currently (2015), the K620 is the entry system with the best price/performance ratio; in the middle range the K2200 still seems affordable.

Software

Linux

Zalman Stereo is supported by Coot; no drivers or other software must be installed.

NVidia 3D Vision and 3D Vision 2: Requires the appropriate hardware as detailed above. With the NVidia proprietary graphics drivers installed, 3D Vision will work with a few minor tweaks. The Xorg configuration file (usually located at /etc/X11/xorg.conf) must be adapted.

  1. It can be edited -- see [7] for more information), or
  2. nvidia-settings could be run, or
  3. nvidia-xconfig --stereo=10 (The value of 10 is specific to the 3D Vision system)

The resulting xorg.conf has an option for stereo mode under the section labeled "Device" in this minimal example:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option "Stereo" "10"
EndSection

The following is a longer example, for a dual-monitor setup - this was generated with nvidia-settings and has the stereo option in the "Screen" section::

 Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "BenQ XL2420TX"
    HorizSync       30.0 - 140.0
    VertRefresh     56.0 - 120.0
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro K420"
EndSection

Section "Screen"
    Identifier     "Default Screen"
    Device         "Videocard0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "10"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-1: 1920x1080_120 +0+0, DP-1: nvidia-auto-select +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

This should be enough to get stereo working. However, note that there is a major issue on linux with window compositing causing stereo images to display improperly. This is a problem with the window display manager, and is not inherent to Xorg or NVidia. If you try to turn on stereo in Coot in a display manager that makes use of the Xorg compositing extension (e.g., Gnome3, or Unity in Ubuntu) then what you will see when you activate hardware stereo is a slight rotation of the view, but stereo remains disabled. In order to get around this problem, you must use a display manager that does not make use of compositing as part of its eye candy. This author has found the MATE desktop to work quite well for this purpose (and may in fact be one of the few that still does not use software compositing by default). Note that you do not need to disable the Compositing extension in the Xorg configuration file to make this work -- this will allow you to switch back to Gnome3, Unity, etc when you don't need stereo if you prefer! Not disabling the window compositing extension globally allows for a more flexible setup depending on your preferred workflow.

The update of RHEL7 to 7.6 broke our /etc/X11/xorg.conf . It needs now

       Section "Extensions"
         Option     "COMPOSITE" "Off"
       EndSection

instead of

       Section "Extensions"
         Option     "Composite" "Disable"
       EndSection

The old version still works with KDE, but no longer with MATE. Thanks to Dirk Kostrewa for pointing this out!

Mac OS X

The following command needs to be run for Macs to be able to support stereo in X11 programs, such as Coot [8] :

    defaults write com.apple.x11 enable_stereo -bool true

Windows

There's some information at http://bernhardcl.github.io/coot/wincoot-faq.html#mozTocId910462 . This says:

WinCoot with NVIDIA and Win 10?

If you run into problems with stereo on Windows 10 (using an NVIDA card), you can try the following (thanks to Jose Brito):

  1. Open NVIDIA Control Panel --> Manage 3D settings.
  2. Go to Program Settings tab.
  3. Add the file you launch the program from by clicking on Add button.
  4. In the setting window, change the 'Power Management Mode' to 'Prefer Maximum Performance'. Also below settings as well:
  5. Vertical sync - off
  6. Threaded optimization - off
  7. Triple buffering - off
  8. Stereo enable on
  9. Run the program and check

Ono

You also need to set the environment variable STEREO for the stereo to work properly in ono: setenv STEREO on (tcsh) STEREO = on; export STEREO (bash) [9]

Stereo on conventional CRT monitors

Some of the NVidia Quadro cards support stereo. The cards that have an output called "stereo" under "Display Connectors" listed at Nvidia's Quadro overview page have a 3-pin DIN outlet that fits with NuVision or CrystalEyes stereo glasses.

The cheapest of these used to be the FX1400 (difficult to find these days, around 450 €), but now appears to be the FX3450 (around 750 €). These cards are by far fast enough for protein crystallography or modelling.

For stereo, the xorg.conf might need the following lines

       Section "Extensions"
         Option     "Composite" "Disable"
       EndSection

if the X log file (e.g. at /var/log/Xorg.0.log) says that stereo is not supported by composite.

Another option that will be required in xorg.conf by programs running stereo is

    Section "Device"
      Driver      "nvidia"
      Option      "Stereo" "3"
   End Section

For an example of how else to configure xorg.conf, see old versions of this article.

See also

Stereo on TFT: see Zalman Stereo

http://pymolwiki.org/index.php/Stereo_3D_Display_Options

https://sbgrid.org/wiki/usage/stereo