Difference between revisions of "ScreenMultiViewer"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
m
Line 8: Line 8:
 
Implementation 2:
 
Implementation 2:
  
Each screen is partitioned into multiple zones, each of which is visualized by an independent camera. Each camera is set via an interpolation between the two users that is weighted based on how directly each user is facing the respective zone. When both users face the same zone, it is displayed from a point of view that balances the view-error between them, resulting in an equal amount of minimal immersion loss. When both users face opposite sides of the cave, they will each see the zones before them in optimal stereo quality. When one user is looking directly at the zone and the second user is seeing it only peripherally, the camera is positioned to display the zone nearly perfectly for the user facing directly at the zone.
+
There are two modes under which the display will operate: single-user mode and multi-user mode. Under single-user mode, the display displays perfectly for the primary user and ignores any other head trackers in the CAVE. Under multi-user mode, each screen is partitioned into multiple zones, each of which is visualized by an independent camera. Each camera is set via an interpolation between the two users that is weighted based on how directly each user is facing the respective zone. When both users face directly at the same zone, that zone's camera location is set to balance the view-error between the users evenly, resulting in an equal amount of minimal immersion loss for each users. When both users face opposite sides of the cave, the zones cameras will be positioned purely based on the user's tracking that is facing that zone, resulting in each user seeing the zones before them in optimal quality (as the other user is ignored). When one user is looking directly at a zone and the second user is seeing the zone only peripherally, the camera is positioned to display the zone better for the user facing directly at the zone. The interpolation between the user locations, based on the users' orientations, is continuous and determined independently for each zone, resulting in a more continuous screen image as the zone quantity increases.
  
 
==Status==
 
==Status==
Line 15: Line 15:
  
 
Implementation 2:
 
Implementation 2:
* Zones are properly split
+
* Zones are properly split into a grid per screen
 
* Two contribution balancing functions (linear and gaussian)
 
* Two contribution balancing functions (linear and gaussian)
* Head tracking simulator complete, so that either one or two heads can be simulated via a plugin (for testing), with two forms of simulation
+
* Head tracking simulator complete, so that either one or two heads can be simulated via a plugin (for testing), with two forms of head movements
 
* Orientation can be setup to use 3d vector angles, or 2d (ignoring height/z-axis/vertical differences)
 
* Orientation can be setup to use 3d vector angles, or 2d (ignoring height/z-axis/vertical differences)
* Zone quantity can be set by the config file
+
* Maximum zone quantity can be set by the config file
* Zone quantity can be set by the simulator plugin
+
* Runtime zone quantity can automatically adjust itself to meet a target F.P.S. (range set initially in config file, can be modified by the simulator)
* Zone quantity can automatically adjust itself to meet a target F.P.S. (range set initially in config file, can be modified by the simulator)
+
* Can be run under Multi-User mode or Single-User mode. Single-User mode will treat all screen as a single zone and will only use the primary user's tracking information.
 +
* Simulator plugin can alter the runtime zone quantity, orientation dimensions (3d or 2d), whether or not we want to use multiple users, target Frames Per Second (and acceptable offset) for zone auto-adjustment, whether or not zone auto-adjustment is enabled.
 +
* All values that are modifiable in the simulator may have initial values set via the config file.
 +
* Can run in the StarCAVE, NexCAVE, as well as on a desktop computer (for testing purposes).
  
 
==Goals==
 
==Goals==
Line 28: Line 31:
  
 
Implementation 2:
 
Implementation 2:
* Setup to work in StarCAVE (currently ones under IVL and NexCAVE)
+
* Document Headers (DOxygen)
* Allow zones to be a grid instead of just columns
+
* Add "readme" style .txt files for the config file options.
* Setup ScreenStereo internally, so that single-user vs. multi-user algorithms can toggled at runtime
+
  
 
==Participants==
 
==Participants==

Revision as of 12:09, 5 May 2011

Contents

Project Overview

This CalVR display mode allows two users to simultaneously use the StarCAVE or Nexcave with dual head tracking.

Implementation 1:

...

Implementation 2:

There are two modes under which the display will operate: single-user mode and multi-user mode. Under single-user mode, the display displays perfectly for the primary user and ignores any other head trackers in the CAVE. Under multi-user mode, each screen is partitioned into multiple zones, each of which is visualized by an independent camera. Each camera is set via an interpolation between the two users that is weighted based on how directly each user is facing the respective zone. When both users face directly at the same zone, that zone's camera location is set to balance the view-error between the users evenly, resulting in an equal amount of minimal immersion loss for each users. When both users face opposite sides of the cave, the zones cameras will be positioned purely based on the user's tracking that is facing that zone, resulting in each user seeing the zones before them in optimal quality (as the other user is ignored). When one user is looking directly at a zone and the second user is seeing the zone only peripherally, the camera is positioned to display the zone better for the user facing directly at the zone. The interpolation between the user locations, based on the users' orientations, is continuous and determined independently for each zone, resulting in a more continuous screen image as the zone quantity increases.

Status

Implementation 1:

  • --Work Completed--

Implementation 2:

  • Zones are properly split into a grid per screen
  • Two contribution balancing functions (linear and gaussian)
  • Head tracking simulator complete, so that either one or two heads can be simulated via a plugin (for testing), with two forms of head movements
  • Orientation can be setup to use 3d vector angles, or 2d (ignoring height/z-axis/vertical differences)
  • Maximum zone quantity can be set by the config file
  • Runtime zone quantity can automatically adjust itself to meet a target F.P.S. (range set initially in config file, can be modified by the simulator)
  • Can be run under Multi-User mode or Single-User mode. Single-User mode will treat all screen as a single zone and will only use the primary user's tracking information.
  • Simulator plugin can alter the runtime zone quantity, orientation dimensions (3d or 2d), whether or not we want to use multiple users, target Frames Per Second (and acceptable offset) for zone auto-adjustment, whether or not zone auto-adjustment is enabled.
  • All values that are modifiable in the simulator may have initial values set via the config file.
  • Can run in the StarCAVE, NexCAVE, as well as on a desktop computer (for testing purposes).

Goals

Implementation 1:

  • --Goals--

Implementation 2:

  • Document Headers (DOxygen)
  • Add "readme" style .txt files for the config file options.

Participants

Software Developers:

  • Phi Hung Nguyen - Implementation 1
  • John Mangan - Implementation 2


Project Advisors:

  • Andrew Prudhomme