Difference between revisions of "Hotspot Mitigation"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
Line 1: Line 1:
This page details usage of the HotSpot plugin. HotSpot is a Cover plugin designed to mitigate hotspots in the cave.
 
  
Under Construction.
+
== Purpose ==
 +
The HotSpot plugin is designed to minimize the visibility of hotspots in the cave. A hotspot is a circular area of the screen that is brighter than the rest of the screen. Because the projectors are behind the screens, the brightest point occurs where the line from the user's eyes to the projector intersect with the screen. The plugin uses the viewer's location to determine where the hotspots are. The end result is that the image appears homogeneous to the viewer.
 +
 
 +
HotSpot is intended to be used with other plugins. HotSpot renders during preSwapBuffers so as to be the last thing in the rendering pipeline.
 +
 
 +
== How to Use ==
 +
# Ensure that HotSpot is enabled in the <Plugin> section of the starcave.xml configuration: <HotSpot value="on">
 +
# Start openCOVER.
 +
# Start any other plugins. HotSpot is intended to be used with other plugins. It does post-processing on whatever is being displayed.
 +
# From the main menu, click on HotSpot to bring up the menu.
 +
# Select Enabled. HotSpot should now be working with default settings. For more detailed usage information, including how to adjust the level of attenuation, see the next section, "Menu"
 +
 
 +
== Menu ==
 +
* Enabled - This checkbox controls whether the mitigation code runs. The first time you enable the plugin, it will do some initialization. You may enable and disable this plugin at will.
 +
* Use headtracker data - Choose whether the plugin uses the viewer's position to calculate the positions of the hotspots. Checking this checkbox disables the sliders Hotspot x and Hotspot y. When this menu item is not checked, the hotspot position can be changed with the sliders.
 +
* Mark Hotspot - If selected, a red dot will be drawn at the points where the hotspots are calculated to be. Useful for debugging or visualizing the location of the hotspots.
 +
* Hotspot x - When "Use headtracker data" is NOT checked, this slider controls the x coordinate of the hotspot.
 +
* Hotspot y - When "Use headtracker data" is NOT checked, this slider controls the y coordinate of the hotspot.
 +
* Min Alpha - Set the amount of attenuation or amplification applied to the center of the hotspot. A typical setting for this slider is 0.8, which works well with medium to dark images. A smaller value may be needed for brighter images.
 +
* Max Alpha  - Set the amount of attenuation or amplification applied far away from the hotspot. A typical setting for this slider is 1.4 which works well with medium to dark images. For bright images, setting this value too high can result in brightness saturation and image degradation.
 +
 
 +
== Configuration ==
 +
 
 +
===Typical Settings===
 +
<source lang="xml">
 +
<HotSpot>
 +
    <ShaderFile value="/home/covise/covise/src/renderer/OpenCOVER/plugins/calit2/HotSpot/linear_scale.frag" />
 +
    <ProjCoordSource value="config" />
 +
    <Enabled value="false" />
 +
    <UseHeadTrackerData value="true" />
 +
    <MarkHotspot value="false" />
 +
    <MinAlpha value="0.8" />
 +
    <MaxAlpha value="1.4" />
 +
</HotSpot>
 +
</source>
 +
 
 +
===Configuration entries===
 +
==== ShaderFile ====
 +
* '''value''' - string - Specify a path to the fragment shader to use.
 +
 
 +
==== ProjCoordSource ====
 +
 
 +
* value - "config "| "auto" - Specify from where the projector coordinates are obtained. "config" - looks for attributes named px, py, pz in the covise configuration file in the <Screen> element. If the attributes name px, py, pz are not present, they will be automatically calculated.
 +
 
 +
"auto" - attempt a best-guess calculation of the projector coordinates based on the screen geometries.
 +
 
 +
==== Enabled =====
 +
* value - boolean - Initial state for "Enabled" menu item.
 +
 
 +
==== UseHeadTrackerData ====
 +
* value - boolean - Initial state for "Use headtracker data" menu item.
 +
 
 +
==== MarkHotspot ====
 +
* value - boolean - Initial state for "Mark hotspot" menu item.
 +
 
 +
==== MinAlpha ====
 +
* value - float [0, 2.0] - Initial state for "min alpha" menu item.
 +
 
 +
==== MaxAlpha ====
 +
* value - float [0, 2.0] - Initial state for Max Alpha menu item.
 +
 
 +
==== PosX ====
 +
* value - float [-1.0, 1.0] - Initial state for Hotspot x slider.
 +
 
 +
==== PosY ====
 +
* value - float [-1.0, 1.0] - Initial state for Hotspot y slider.

Revision as of 18:25, 6 February 2009

Contents

Purpose

The HotSpot plugin is designed to minimize the visibility of hotspots in the cave. A hotspot is a circular area of the screen that is brighter than the rest of the screen. Because the projectors are behind the screens, the brightest point occurs where the line from the user's eyes to the projector intersect with the screen. The plugin uses the viewer's location to determine where the hotspots are. The end result is that the image appears homogeneous to the viewer.

HotSpot is intended to be used with other plugins. HotSpot renders during preSwapBuffers so as to be the last thing in the rendering pipeline.

How to Use

# Ensure that HotSpot is enabled in the <Plugin> section of the starcave.xml configuration: <HotSpot value="on">
# Start openCOVER.
# Start any other plugins. HotSpot is intended to be used with other plugins. It does post-processing on whatever is being displayed.
# From the main menu, click on HotSpot to bring up the menu.
# Select Enabled. HotSpot should now be working with default settings. For more detailed usage information, including how to adjust the level of attenuation, see the next section, "Menu"

Menu

* Enabled - This checkbox controls whether the mitigation code runs. The first time you enable the plugin, it will do some initialization. You may enable and disable this plugin at will.
* Use headtracker data - Choose whether the plugin uses the viewer's position to calculate the positions of the hotspots. Checking this checkbox disables the sliders Hotspot x and Hotspot y. When this menu item is not checked, the hotspot position can be changed with the sliders.
* Mark Hotspot - If selected, a red dot will be drawn at the points where the hotspots are calculated to be. Useful for debugging or visualizing the location of the hotspots.
* Hotspot x - When "Use headtracker data" is NOT checked, this slider controls the x coordinate of the hotspot.
* Hotspot y - When "Use headtracker data" is NOT checked, this slider controls the y coordinate of the hotspot.
* Min Alpha - Set the amount of attenuation or amplification applied to the center of the hotspot. A typical setting for this slider is 0.8, which works well with medium to dark images. A smaller value may be needed for brighter images.
* Max Alpha  - Set the amount of attenuation or amplification applied far away from the hotspot. A typical setting for this slider is 1.4 which works well with medium to dark images. For bright images, setting this value too high can result in brightness saturation and image degradation.

Configuration

===Typical Settings===

<source lang="xml"> <HotSpot>

   <ShaderFile value="/home/covise/covise/src/renderer/OpenCOVER/plugins/calit2/HotSpot/linear_scale.frag" />
   <ProjCoordSource value="config" />
   <Enabled value="false" />
   <UseHeadTrackerData value="true" />
   <MarkHotspot value="false" />
   <MinAlpha value="0.8" />
   <MaxAlpha value="1.4" />

</HotSpot> </source>

Configuration entries

ShaderFile

* value - string - Specify a path to the fragment shader to use.

ProjCoordSource

* value - "config "| "auto" - Specify from where the projector coordinates are obtained. "config" - looks for attributes named px, py, pz in the covise configuration file in the <Screen> element. If the attributes name px, py, pz are not present, they will be automatically calculated.

"auto" - attempt a best-guess calculation of the projector coordinates based on the screen geometries.

Enabled =

* value - boolean - Initial state for "Enabled" menu item.

UseHeadTrackerData

* value - boolean - Initial state for "Use headtracker data" menu item.

MarkHotspot

* value - boolean - Initial state for "Mark hotspot" menu item.

MinAlpha

* value - float [0, 2.0] - Initial state for "min alpha" menu item.

MaxAlpha

* value - float [0, 2.0] - Initial state for Max Alpha menu item.

PosX

* value - float [-1.0, 1.0] - Initial state for Hotspot x slider.

PosY

* value - float [-1.0, 1.0] - Initial state for Hotspot y slider.