Hello. I am a Senior Visualization Researcher with The Renaissance
Computing Insitute at UNC-Chapel Hill (www.renci.org). I have recently
begun working with a couple of groups at UNC, including Brian Kuhlman's
in conjunction with the Rosetta protein design and prediction project,
to enable them to run PyMOL on our Ultra-high resolution stereo
display. Our display consists of 2 Sony 4k (4xHD resolution) projectors
set up for rear projection. The projectors fully overlap, and use
circularly polarizing filters to achieve passive stereo. We are running
on Windows XP.
So far, without touching any code, I can get it running in our
environment by dragging the window to the top-left corner of the display
(would prefer a borderless window positioned at (0,0), but moving the
left edge just off the screen works), and calling viewport 7860,2160
(the total resolution of the two projectors, side-by-side). I can then
turn on wall-eye stereo, load a file, and view it in stereo.
There are a number of issues with this approach, however:
1. I need to manually move the window just off the left edge of the
screen. I'm aware that I can set the window position as a command line
argument, but this will set the window border to the top-left corner,
which is not quite what I want. Glut will not let us get a borderless
window (it supports fullscreen mode, but this will only fullscreen to
the primary monitor on windows, and the 2 projectors are seen as 8
monitors by Windows). However there is a hack to get around this.
Calling glutPositionWindow(0, 0) after creating the window will move the
client area of the window to (0, 0), which is what we want (I have
tested this with p_glutPositionWindow(0, 0) from within PyMOL).
2. The internal gui is problematic. We basically need need both
projectors to project the same image, except for the difference in
viewpoint for the stereo model. Pushing the internal gui off the side
of the display gives correct stereo rendering, but makes the gui
unusable. Bringing the internal gui back onto the screen by changing
the view width moves the stereo images out of alignment. The ideal
solution here would be to fully replicate the internal gui in both the
left and right halves of the screen. This way, the two stereo images
would line up correctly, and both the left and right eyes would see a
consistent view of the internal gui. It would be nice if both copies of
the interal gui could be manipulated, as then it wouldn't matter which
half of the screen your mouse happened to be on. A similar thing
(replicate for left and right views) could also be done for the command
line at the bottom of the screen.
3. A lesser problem is the fact that due to the ultra-high resolution
of our displays, the text (both in the guis and in the 3D view) can be
hard to read. It would be nice to be able to adjust this.
I was hoping to get some feedbackregarding what you think might be the
best approach to tackle these issues (especially #2) and integrate these
changes into PyMOL. I think such a stereo mode could be a nice
contribution to PyMOL, as this type of dual-display stereo is quite
common, and I'd be happy to make any changes available to the PyMOL
community.
I hope this all makes sense, and thanks in advance for any feedback.
David Borland