View Issue Details

IDProjectCategoryView StatusLast Update
0001578Slicer4Core: Base Codepublic2017-06-07 23:27
Reporterclisle Assigned Tojcfr  
PriorityhighSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0001578: Make sure --stero command line option works
Description

Hi Curtis,

The stereo mode initialization is done in ctkVTKAbstractRenderView.cpp
(in Slicer-build/CTK/Libs/Visualization/VTK/Widgets)
The ui is controlled by qMRMLThreeDViewControllerWidget in
Slicer/Libs/qMRMLWidgets
and the chrystalmode is set to the renderer here :
vtkMRMLViewDisplayableManager::vtkInternal::UpdateStereoType
The arguments passed to the command line are processed here:
qSlicerCoreApplication.cxx

For some reasons, the chrystal eyes mode has never been enabled
(r14862). Jc, do you recall why ?
It might be worth trying to enable it
(qMRMLThreeDViewControllerWidget.cxx:116) again and see what happens.

julien.

On Wed, Nov 23, 2011 at 2:59 AM, Curtis Lisle
<curtislisle@knowledgevis.com> wrote:

Hi Steve and Julien,
I spent a few minutes trying to get the CrystalEyes Stereo option to come up running in Slicer4 on my Mac. It seemed to me that some of the initialization for the stereo option is missing from the core Slicer initialization routines.

Maybe I'm barking up the wrong tree, as I haven't been deep in this for a while, but I checked the svn trunk and didn't find any machinery to initialize the SlicerApplication->SetStereoEnabled() method. I poked a bit deeper in qSlicerCoreCommandOptions and didn't find methods in qSlicerCoreCommandOptions, that I think are needed. This is where I quit because I'm probably off the path of how Slicer4 is initialized now. My slicer4 build is out-of-date, but I could work on this a bit right after Thanksgiving if it would help. Please let me know if you want me to work on the initialization . Thanks.

Curt

Ron,
I would agree after we have fixed the Crystal Eyes mode. Probably we should put a disclaimer that active stereo doesn't work for Slicer4 yet. I'll update the wiki after I hear back from Steve.

If you start Slicer4 from command line with --stereo option, the CrystalEyes option should be displayed in the stereo pulldown menu. I found the code to add and remove the crystaleyes entry is still present, but Slicer is always coming up with stereo turned off regardless of the commandline option, so CrystalEyes doesn't show on the menu (at least in my somewhat-out-of-date version).

What about changing the name of this option to "ActiveStereo" since Crystal Eyes are an old product now?

Curt

On Nov 22, 2011, at 9:24 PM, Ron Kikinis wrote:

Curt,

should the 3D TV be added to the description?

Ron

On 11/22/11 9:02 PM, Curtis Lisle wrote:

    Hi Ron,
    You noticed my email to Steve and J2. I think the CrystalEyes mode is not being properly tested for during initialization. The documentation will be valid once the initialization is fixed.

    There 3D TV you asked about requires the CrystalEyes stereo mode. This is true for most (all?) of the new 3D TVs coming out. It is exciting to have affordable stereo display technology becoming available!

    Curt 
Additional Information

Hi Curtis,

The stereo mode initialization is done in ctkVTKAbstractRenderView.cpp
(in Slicer-build/CTK/Libs/Visualization/VTK/Widgets)
The ui is controlled by qMRMLThreeDViewControllerWidget in
Slicer/Libs/qMRMLWidgets
and the chrystalmode is set to the renderer here :
vtkMRMLViewDisplayableManager::vtkInternal::UpdateStereoType
The arguments passed to the command line are processed here:
qSlicerCoreApplication.cxx

For some reasons, the chrystal eyes mode has never been enabled
(r14862). Jc, do you recall why ?
It might be worth trying to enable it
(qMRMLThreeDViewControllerWidget.cxx:116) again and see what happens.

julien.

TagsNo tags attached.

Activities

kikinis

kikinis

2012-06-07 03:46

developer   ~0004785

Is there any motion on this?

jcfr

jcfr

2012-06-07 15:26

administrator   ~0004791

Just rebased and pushed the work-in-progress topic I initiated a while back. See https://github.com/jcfr/Slicer/compare/1578-enable-active-stero

jcfr

jcfr

2012-10-30 07:43

administrator   ~0006904

Rebased topic: https://github.com/jcfr/Slicer/compare/1578-enable-active-stereo

blowekamp

blowekamp

2013-07-03 07:35

developer   ~0008821

I am very interesting in getting this stereo mode working again as it did in Slicer 3. We had to use the "--stereo" command line option and select crystal eyes mode to get it working with our projector system with Slicer 3. Despite the documentation, this mode is needed to passive stereo with Nvidia Quattro cards too. Also with stereo HD TV over HDMI becoming common it would be great it this would work there too.

Using stereo to understand the complex shapes of segmented microscopy data is imported when we are presenting results for discussion.

What is the status of the proposed patch?

clisle

clisle

2013-07-03 08:09

developer   ~0008822

I do not have access to a passive or active stereo display anymore, so I cannot test anymore. The NLM projector display should be render 3D successfully if the mode is working again.

blowekamp

blowekamp

2013-07-03 09:43

developer   ~0008824

I rebased the JC's patch on to the current master r22131. It compiled OK, but during start up the following warning occurred:

$ Slicer-build/Slicer --stereo
Number of registered modules: 122
Number of instantiated modules: 122
Warning: In /home/blowekamp/build/Slicer/VTK/Rendering/vtkXOpenGLRenderWindow.cxx, line 491
vtkXOpenGLRenderWindow (0x452bfc0): Requesting a StereoCapableWindow must be performed before the window is realized, i.e. before a render.

The "Active" option was disabled in the pull down menu for the 3D render window.

blowekamp

blowekamp

2013-07-03 10:47

developer   ~0008825

OK, when I an the new "--active-stereo-support" command line option I get the same vtk RenderingWindow warning on my system but I get the "Active" option and....

It Works for me! I want it :)

But this is enabling my passive stereo system, so perhaps it's a poor name. Technically, I believe this enable the OpenGL quad buffer stereo, which can be utilized by the OpenGL driver in a variety of ways. Active/Passive/Interlaced etc... Typically these option are available on NVIDIA's Quardo level boards.

I am curious how this NVIDIA add on works:
http://www.nvidia.com/object/3dtv-play-overview.html

I am going to try these option out with a windows build ( at some point) and see if I could plug a laptop into a TV to get Stereo.

I think this will be a great thing to add for the next release, hopefully this little warning can easily be addressed.

jcfr

jcfr

2013-07-24 17:09

administrator   ~0009184

@Brad: I renamed the option to QuadBuffer and remove the need for the command line option. Could you review/try the following topic ?

See https://github.com/jcfr/Slicer/compare/1578-enable-quad-buffer-stereo

Thanks
Jc

jcfr

jcfr

2013-07-25 05:45

administrator   ~0009186

Fixed in r22234
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=22234

Re-open if there are still issues. Thanks

blowekamp

blowekamp

2013-07-26 04:49

developer   ~0009206

The nightly download works perfectly without any warning on our Linux Nvidia Quadro stereo passive system.

blowekamp

blowekamp

2013-07-26 05:09

developer   ~0009207

Last edited: 2013-07-26 05:12

Also updated the wiki:
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/SlicerApplication/StereoViewing#Stereo_Modes_Explained

Undid change to legacy 3.6 I made:
http://www.slicer.org/slicerWiki/index.php/Modules:StereoViewing-3.6#Stereo_Modes_Explained

jcfr

jcfr

2013-07-26 06:03

administrator   ~0009208

@Brad: Thanks :)

jcfr

jcfr

2014-03-06 04:56

administrator   ~0010818

Closing resolved issues that have not been updated in more than 3 months

jcfr

jcfr

2017-06-07 23:27

administrator   ~0014625

Fix committed to 2145-support-for-installing-extension-from-file branch.

Related Changesets

Slicer: 2145-support-for-installing-extension-from-file 6a4d14df

2013-07-25 09:42:29

jcfr

Details Diff
ENH: Add QuadBuffer stereo support

By default there is always an attempt to enable stereo capability. This is
done in ctkVTKAbstractViewPrivate::setupRendering [1].

Then, following the test done within the different implementation of
vtkRenderWindow, in case the hardware doesn't support it, the flag associated
with StereoCapability will be turned off [2][3].

Finally, the action within the threeD controller widget is enabled
or disabled based on the state of the StereoCapability flag.

[1] https://github.com/commontk/CTK/blob/4e98d9a064bfe32a4c0cb28838a093e392dc3cc3/Libs/Visualization/VTK/Widgets/ctkVTKAbstractView.cpp#L102
[2] https://github.com/Kitware/VTK/blob/0e0674a3695fdeaf01ce87dfc04e32111b7402e0/Rendering/vtkXOpenGLRenderWindow.cxx#L351-401
[3] https://github.com/Kitware/VTK/blob/0e0674a3695fdeaf01ce87dfc04e32111b7402e0/Rendering/vtkWin32OpenGLRenderWindow.cxx#L734-738

See http://www.na-mic.org/Bug/view.php?id=1578

Fixes 0001578

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22234 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/Core/vtkMRMLViewNode.cxx Diff File
mod - Libs/MRML/Core/vtkMRMLViewNode.h Diff File
mod - Libs/MRML/DisplayableManager/vtkMRMLViewDisplayableManager.cxx Diff File
mod - Libs/MRML/Widgets/Resources/UI/qMRMLThreeDViewControllerWidget.ui Diff File
mod - Libs/MRML/Widgets/qMRMLThreeDViewControllerWidget.cxx Diff File
mod - Libs/MRML/Widgets/qMRMLThreeDViewControllerWidget.h Diff File
mod - Libs/MRML/Widgets/qMRMLThreeDWidget.cxx Diff File
mod - Libs/MRML/Widgets/qMRMLThreeDWidget.h Diff File

Issue History

Date Modified Username Field Change
2011-11-23 01:18 jcfr New Issue
2011-11-23 01:18 jcfr Status new => assigned
2011-11-23 01:18 jcfr Assigned To => finetjul
2011-11-23 01:19 jcfr Assigned To finetjul => jcfr
2011-11-23 01:21 jcfr Additional Information Updated
2012-06-07 03:46 kikinis Note Added: 0004785
2012-06-07 15:26 jcfr Note Added: 0004791
2012-06-07 15:27 jcfr Reporter jcfr => clisle
2012-06-07 15:27 jcfr Target Version => Slicer 4.2.0 - Sept 1st 2012
2012-08-20 10:01 jcfr Target Version Slicer 4.2.0 - Feature freeze Sept 1st 2012 => Slicer 4.2.5
2012-08-21 09:39 jcfr Target Version Slicer 4.2.5 => Slicer 4.3.0
2012-10-30 07:43 jcfr Note Added: 0006904
2012-10-30 07:43 jcfr Priority normal => high
2013-07-03 07:35 blowekamp Note Added: 0008821
2013-07-03 08:09 clisle Note Added: 0008822
2013-07-03 09:43 blowekamp Note Added: 0008824
2013-07-03 10:47 blowekamp Note Added: 0008825
2013-07-24 17:09 jcfr Note Added: 0009184
2013-07-24 17:09 jcfr Status assigned => feedback
2013-07-25 05:45 jcfr Note Added: 0009186
2013-07-25 05:45 jcfr Status feedback => resolved
2013-07-25 05:45 jcfr Fixed in Version => Slicer 4.3.0
2013-07-25 05:45 jcfr Resolution open => fixed
2013-07-26 04:49 blowekamp Note Added: 0009206
2013-07-26 05:09 blowekamp Note Added: 0009207
2013-07-26 05:12 blowekamp Note Edited: 0009207
2013-07-26 06:03 jcfr Note Added: 0009208
2014-03-06 04:56 jcfr Note Added: 0010818
2014-03-06 04:58 jcfr Status resolved => closed
2017-06-07 23:27 jcfr Changeset attached => Slicer 2145-support-for-installing-extension-from-file 6a4d14df
2017-06-07 23:27 jcfr Note Added: 0014625