Opened 12 months ago

Closed 12 months ago

Last modified 12 months ago

#16380 closed enhancement (fixed)

Make crosseye and walleye camera start with good initial geometry

Reported by: Tom Goddard Owned by: Tom Goddard
Priority: moderate Milestone:
Component: Graphics Version:
Keywords: Cc: Elaine Meng
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

I tried helping Bob Stroud make a cross-eye stereo pair image yesterday and failed because there are 4 separate parameters that need to be set right to get a good result: eye separation, camera distance to model, field of view, and convergence. Would be useful if the "camera crosseye" and "camera walleye" command set these to reasonable defaults that depend on the size of the current scene.

Change History (3)

comment:1 by Tom Goddard, 12 months ago

Cc: Elaine Meng added
Resolution: fixed
Status: assignedclosed

Done in ChimeraX 1.10 daily builds, not in 1.9.

The cross-eye defaults for putting the virtual scene in cross-eye 30 cm in front of your eyes, with screen 60 cm away, so that the whole scene is visible are eye separation equal to 2x scene diameter, camera distance equal to 10x scene diameter, field of view 6 degrees, convergence 6 degrees.

The wall-eye defaults for putting the virtual scene in cross-eye 60 cm in front of your eyes, with screen 30 cm away, so that the whole scene is visible are eye separation equal to scene diameter, camera distance equal to 10x scene diameter, field of view 6 degrees, convergence 3 degrees.

In both cases the window size on screen should be about 12 cm (about twice the physical eye spacing). It is tempting to make wider windows but this makes for uncomfortable cross-eye and wall-eye viewing. In the cross-eye case a wider window will make the virtual scene closer to your face than the screen making it hard to focus, and for wall eye the wider window will make your eyes try to diverge which is also painful.

comment:2 by Elaine Meng, 12 months ago

Hi Tom,
Maybe I'm slow today but I had a really hard time parsing those sentences in your comment about the defaults. Hopefully I interpreted them correctly. May need to take a look (sorry):
<https://www.cgl.ucsf.edu/home/meng/chimerax/vdocs/user/commands/camera.html>

Default convergence for walleye was previously documented as -5 degrees. Is the new value of 3 really positive or should it be negative?

Is "scene diameter" how wide it is on the actual screen? My natural tendency is to think that it is measured in angstroms but that of course makes no sense in the description of the defaults.

Thanks,
Elaine

Last edited 12 months ago by Tom Goddard (previous) (diff)

comment:3 by Tom Goddard, 12 months ago

Hi Elaine,

You crosseye/walleye description looks fine. The convergence is really +3 degrees for walleye. I'm not sure why it was -5 before, probably because that worked best with the fixed default eye separation. But it was pretty nonsensical while the new defaults are much more reasonable. I agree there is some ambiguity about which numbers refer to Angstroms in the scene and which are centimeters in front of the user's face. The beauty is that it doesn't matter in terms of understanding the geometry. The geometry is the same in the scene coordinates in Angstroms or in the real world in centimeters modulo a scale factor. And the eyeSeparation parameter is clearly documented to be in Angstroms. The other physical distance is that from the camera to the scene center (10*d) and we actually don't have a ChimeraX command to set that, but the camera crosseye code sets it in Python in scene coordinates in Angstroms, computed from the scene diameter in Angstroms. I may at some point add to the zoom command an option to specify the distance from camera to scene center. For now that is done by zooming and there is no quantitative way to set that distance.

Tom

Note: See TracTickets for help on using tickets.