Overview | All Modules | Tutorial | User's Guide | Programming Guide |
Previous | COVISE Online Documentation | Next |
COVER (COvise Virtual Environment Renderer) is a COVISE renderer module with support for Virtual Reality (VR) input devices, backprojection displays, and intuitive interaction. COVER can also be started independendly of COVISE and just be used as a virtual reality viewer for 3D geometry.
To start COVER within COVISE, select the module COVER in the module list under the category Renderer.
To start COVER as a 3D viewer, type in
cover <filename>
Note: Please make sure to set the variable DISPLAY in your environment before starting COVER!
COVER is based on Performer, a high level 3D graphics library from SGI, providing high speed rendering, multi-processing, multi-pipe, scene graph, loaders for 3D database formats... Performer is available for IRIX and Linux platforms.
This chapter about COVER describes the COVER User Interface and has the two sections:
For configuration of displays and input devices see the separate document
COVER Installation and Configuration
with the sections
COVER can be used either as a viewer for 3D scenes or as a renderer module in COVISE.
As a 3D viewer COVER supports all 3D file formats which are also supported by the graphics library OpenGL Performer and additionally vrml files with sound and interaction. To load a specific file call COVER with the file name as parameter:
cover <filename>
As a COVISE renderer module COVER is started through the Mapditor. Select the category renderer and drag the module COVER to the map area. You can now connect all modules to COVER which generate geometric primitives like lines, triangle strips, polygons or points with colors, normals and textures.
If you have a full COVISE installation you will recognize that there are two COVERs: one called COVER and one called COVER_VRML. Only the second one supports vrml files with sound and interaction. As you don't need this functionality for most COVISE visualisations, a smaller version without vrml support, named COVER, is provided, too.
The movement of the user is measured with a sensor mounted at the glasses. With the measured position and orientation an appropriate view on the scene is computed. This is called head tracking. Currently only one user can be tracked. Other users don't have the correct view of the scene and therefore they have the impression that all objects are slightly distorted. This effect is minimized if they try to stand close to the user with the tracked glasses and try to look into the same direction as the one with the tracked glasses.
The location and orientation of the 3D input device, which the user holds in his hand, is measured through a sensor in the input device. The input device usually has one two three buttons. One button is used to indicate a selection. On a three button device the other two buttons are used to switch the navigation mode without using the 3D menu.
With the virtual laser beam which seems to come out of the 3D input device also remote objects can be reached, for example buttons in the 3D menu.
COVERConfig { ... TRACKING_SYSTEM MOUSE VIEWER_POSITION <x> <y> <z> ... }
The interaction possibilities with the menu and the 3D scene are described in the following chapters.
For the stereo projection two images are generated, one with the perspective of the right eye and one with the perspective of the left eye. The stereo glasses show only the appropriate image to each eye. Like stereo viewing in reality the brain forms a 3D impression of the scene.
And similar to reality objects which are very close to the users head are seens twice because the two images can't be fused any more, objects which are very far don't appear to be three dimensional but flat. Therefore the optimal location of obejcts for stereo viewing are not too near and not too far.
If the scene size fits into the virtual reality environment, the best position is near the front screen, optimally one part of the scene is in front of the screen and the other part behind. For many technical visualisations for example flow visualisation of the air around a car the scene can be scaled so that it fits into the virtual environment (see chapter xy view all).
Larges scenes like landscapes are best viewed on large screens. If the scene is larger than the screens, but the screen is so small that it is inside the users field of view the stereo impression can get lost, when the object is located in front of the screen. This happens because the human brain is so used to the fact that in reality objects partly covered by something are behind that it can't form a stereo impression if a virtual scene is cut by the frame of the screen. Therefore for large scenes and small screens the best position is behind the screen and the screens is like a window to the outside.
The navigation mode, viewing options, and manipulation modes are selected through a 3D menue, called the Pinboard. You select a menu entry by pointing to the button with the laser beam and pressing the button of the 3D input device. If the pinboard is used with a mouse simply bring the mouse pointer over the menu entry and click a button.
The COVER Pinboard can be re-positioned in the VE by pointing to the title bar and pressing the button of the 3D input device.If you have a 3-button device and select it the left button, the menu is rotated around it's z axis so it always faces the viewer (billboard mode). Selected with the right button, it moves as if it's mouned at the laser beam. Selected with the middle mouse button it changes it's size according to the rotation of the users arm.
The same applies for mouse input: left mouse button moves the menu in a way that it faces the viewer, right mouse button moves the menu with the mouse pointer. The orientation is defined through a line from the viewer to the mouse so it seems to face the viewer, too. Middle mouse button scales the menu, movements up and down make the menu larger and smaller.
For one-button devices the billboard mode and the scaling is not supported.
The initial position, orientation, size, layout of the menu and the start values of toggleand group buttons can be specified in the file covise.config (see configuration in cover installation guide).
In the 3D menu there are three different types of buttons.
In XFORM mode (XFORM stands for transform) the whole scene (besides the coordinate axis and the pinboard) can be moved. The default button label is "move world" and the default button location is in the main Pinboard menue. The XFORM mode indicated with the above 3D icon.
Only when the button of the 3D input device is pressed, the world is translated and rotated with the users hand. The translation is relative to the point where the button was pressed. The center of rotation is the users hand. The interaction is stopped when the button is released. For pulling the whole scene closer to the user you can move the hand away from the body, then press the button and move the hand closer too th body, and then relase the button. Do this several times if the appropriate position can't be reached in one step.
If the input device is the mouse, the scene is rotated when the left mouse button is pressed and translated when the middle mouse button is pressed. In rotate mode, up/down movements rotate around the x axis, left/right movements rotate around the z axis. In translate mode, up/down movements translate into positive and negative z direction, left/right movements into positive/negative x axis.
In SCALE mode the whole scene (besides the coordinate axis and the pinboard) can be scaled. The default button label is "scale world" and the default button location is in the main Pinboard menue. The button belongs to the button group "Navigation". The SCALE mode indicated with a magnifying class as 3D icon.
When the button of the 3D input device is pressed and the hand is moved to he right, the world becomes larger, when the hand is moved to the left, the world becomes smaller. The interaction is stopped when the button is released.
The same applies for mouse input.
When the VIEW_ALL button is pressed, the whole scene (besides the coordinate axis and the pinboard) is scaled so that it fits into the visible part of the world - typically the screen size. The default button label is "view all" and the default button location is in the main Pinboard menue. The button is a function button.
The size for the scaling is defined in the file covise.config in the section COVERConfig with the keyword SZENE_SIZE. It is defined in mm. A 19” Monitor for example has 340 x 270 mm, there a good choice would be 270, in a CAVE with the wall size 2800 x 2500 mm we would choose 2500.
COVERConfig { ... SCENE_SIZE <size in mm> ... }
COVER also supports an "autoscale" mode. In this mode a "view all" is performed every time a new object is appended to the scene graph. You enable this mode in the scope COVERConfig with the keyword SCALE_ALL.
COVERConfig { ... SCALE_ALL <ON or OFF> ... }
Freezing the current view can be useful for demonstrations with many people, where it is impossible, that all users move with the demonstrator. Or for taking pictures or making a video. There you get the best results when the camera position matches the viewer position. In some configurations the camera must be in the area where the magnetic tracking system doesn't deliver correct values. Then you can freeze headtracking at starting time and specify a viewer position:
COVERConfig { ... FREEZE ON VIEWER_POSITION 0 -3000 500 ... }This means for example the viewpoint is 3 m in negative y direction and 50 cm above the origin in z direction. The Performer coordinate system is x=RIGHT, z=UP, and Y=into the screen.
In FLY mode the whole scene (besides the coordinate axis and the pinboard) is moved as if the user sits in an airplane. The default button label is "fly" and the default button location is in the "Navigation" submenu. The button belongs to the button group "Navigation". The FLY mode indicated with an airplane as 3D icon.
You start the fly mode by pressing the button of the 3D input device and then moving the hand into the direction you want to fly. Moving the hand far away from the point where you pressed the button results in faster flying. Moving the hand close to the body behind the point where you pressed the button, results in flying backwards. A scale factor for the fly speed can be applied with the slider "SPEED".
Mouse input in fly mode doesn't work.
In WALK mode the whole scene (besides the coordinate axis and the pinboard) is moved as if the user walks in the scene. The default button label is "walk" and the default button location is in the "Navigation" submenu. The button belongs to the button group "Navigation". The WALK mode is indicated with shoes as 3D icon.
You start the walk mode by pressing the button of the 3D input device and then moving the hand into the direction you want to walk. COVER then intersects a line from the feet into the negative z direction (towards the bottom) with the scene and if close enough, repositions the user on that point in the scene. As the feet are not tracked, the feet position is calculated from the head position and the floorHeight and the stepSize. FloorHeight and stepSize are specified in the section COVERConfig in the file covise.config.
COVERConfig { ... floorHeight <z position of the floor in mm> stepSize <step length in mm> ... }
When using a mouse for input, pressing the left button and moving the mouse up, down, left right moves forward/backward,left and right.
In DRIVE mode the whole scene (besides the coordinate axis and the pinboard) is moved as if the user drives in the scene. The default button label is "drive" and the default button location is in the "Navigation" submenu. The button belongs to the button group "Navigation". The DRIVE mode is indicated with a driving wheel as 3D icon.
COVERConfig { ... SPEED <min> <max> <initial value> ... }
The "viewpoints" submenu is described in the section about plugins.
The axis are drawn as lines with a small arrow at the end. The origin is in the world coordinate origin and the length of the axis is 0.5 * SZENE_SIZE. The wolrd coordinate system origin is defined in the scope ScreenConfig (see ection Display Configuration) through the position of the screen center and the orientation of the screen.
Typically the x axis points to the right and is drawn red, the y axis points into the screen and is drawn green and the z axis points up and is drawn in blue.
When STEREO_SEP switched on, only the ofset is set to zero. The video mode is not changed to a mono mode, so you don't have any rendering performance advantage. Use STEREO_SEP for example if you want to take pictures or a video from the VE.
Currently only the cuttingsurface and cutgeometry interaction supports snapping. In CuttingSurface and CutGeometry interaction the plane orientation is corrected to angles which are multiples of 45 degree.
The default button label is "remove" and the default button location is in the "part manipulation" submenu. The button belongs to the button group "Navigation". The REMOVE mode indicated with a red pointer ray.
With MOVE_PARTS a cetrtain object can be selected and re-position/re-oriented. The default button label is "move parts" and the default button location is in the "part manipulation" submenu. The button belongs to the button group "Navigation". In MOVE_PARTS mode the object which is closest to the pointer ray is selected and if the button on the 3D input device is pressed, moved with the hand. The movement is relatively to the position where the button is pressed.
FORWARD sets the animation mode to forward playing. This means that the objects in the animation sequence are drawn one after each other. After the last object in the sequence it re-starts with the first object. The button appears only if COVER receives a COVISE set objects with timesteps. The default button label is "forward" and the default button location is in the "animation" submenu. FORWARD is a function button.
COVERConfig { ... ANIM_SPEED <min> <max> <initial value> ... }
The default values are min=0, max=5,0 and value=1.0.
When the slider is set to the maximum value, objects are drawn as fast as possible. In this case a timestep containing only a few objects is drawn faster than a timestep containing a large number of objects.
The Mapeditor function "Execute" and the parameters of the most important COVISE modules can be accessed from within COVER.
In COVER the user selects the button Cuttingsurface_i, where i stands for the instance of the module. A transparent plane is now attached to the users hand. The plane can be positioned in the scene inside the geometry by moving the hand to the desired position/orientation. When the Select-button of the 3D input device is pressed, the current position/orientation is converted to a normal and distance and sent back to the CuttingSurface module. The CuttingSurface module is automatically executed and within a few seconds the new cuttingsurface appears in COVER.
The default button label is "CuttingSurface i", where i is replaced by the module instance and the default button location is in the "COVISE" submenu. The button belongs to the button group "Navigation", this means that if the previos mode was a navigation mode like XFORM, this mode is switched off.
In COVER the user selects the button "CutGeometry i", where i stands for the instance of the module. A transparent plane is now attached to the users hand. The plane can be positioned in the scene inside the geometry by moving the hand to the desired position/orientation. When the Select-button of the 3D input device is pressed, the current position/orientation is converted to a normal and distance in object space and sent back to the CutGeometry module. The CutGeometry module is automatically executed and within a few seconds the new cutted geometry appears in COVER.
The default button label is "CutGeometry i", where i is replaced by the module instance and the default button location is in the "COVISE" submenu. The button belongs to the button group "Navigation".
In COVER the user selects "IsosurafceP i", where i stands for the instance of the module. A red sphere is attached to the users hand. The sphere can be positioned in the scene by moving the hand to the desired point. When the Select-button of the 3D input device is pressed, the current position is converted to a object coordinates and sent back to the IsosurfaceP module. The IsosurfaceP module is automatically executed and within a few seconds the new isosurface appears in COVER.
The default button label is "IsosurfaceP i", where i is replaced by the module instance and the default button location is in the "COVISE" submenu. The button belongs to the button group "Navigation".
The COVISE modules TracerUSG, MagTracer, MagBlockTracer, STracer, BlockSTracer, CellTracer and TetraTrace all computes streamlines or particle traces.
The traces start either on a line or on a plane. In the COVISE module the line is specified with the parameters startpoint1 and startpoint2, and the number of traces started on that line is defined with the parameter no_startpoints. The plane is specified with the parameters startpoint1, startpoint2 and normal.
In COVER the user selects "*Trace* i" from the Pinboard, where *Trace* stand for the Tracer module and i for the instance of the module. A red sphere is now attached to the users hand. When the user presses the select-button of the 3D input device, the current position is converted to object space and is taken as startpoint1. The user can move the hand now to the endpoint of the line while keeping the select-button pressed. When he releases the button the current position is converted to object space and is taken as startpoint2. The parameters are sent back to the tracer module and the module is executed. Within a few seconds the new particle traces appear in COVER.
COVER provides an interface for programming Plug Ins. For details see COVISE Programming Guide, section COVER Plugin Programming. Below you get a description of some plug ins you may find useful for your current work.
Probe is a new plugin for 2D probing. To use Probe, select first the Probe button from the menu; a red icon will appear. If the pointer intersects a 2D object (polygon or triangle strips) and the button is pressed, a label will show the coordinates of the intersection (relative to the object) plus scalar and vector data values at that point. The plugin reads the PROBE2D attribute(s) of the grid object which indicate the name(s) of the data object(s). You can configure line length and text font of the label, the format of the text, and a default for the kind of data to be displayed, e.g. TEMP, in covise.config, section VRProbe:
VRProbe { LabelLineLen 90 LabelFontSize 7 ScalarFormat %s= %.3f VectorFormat %s= %.3f %.3f %.3f DefaultSpecies TEMP (e.g. - if not specified: Unknown) }Additional information:
MODULE VRProbe
A viewpoint defines the current position, orientation and scaling factor of the scene. The Viewpoints plugin allows to the user to load viewpoints from file and save them to file ot interactively define new viewpoints. It offers a flight through all viewpoints or activated only one selected viewpoint.
The Viewpoint Plugin is activated if the line
MODULE VRViewpointin COVERConfig (as for all plugins) is available.
Default viewpoints can be defined in covise.config in the section VRViewpoints, and they will be automatically inserted into the list of viewpoints:
VRViewpoints { 1 S=1 X = 0 y=0 z=0 h=0 p=0 r=0 10 S=10 X = 0 y=0 z=0 h=0 p=0 r=0 100 S=100 X = 0 y=0 z=0 h=0 p=0 r=0 1000 S=1000 X = 0 y=0 z=0 h=0 p=0 r=0 }
In addition, and even if there is no "Viewpoints" entry in covise.config, there is a parameter "Viewpoints" in COVER, which contains the name of a custom file where the viewpoints are stored. If no name is indicated then the file default.vwp will be loaded (if default.vwp doesn't exist it will be created). If a file is specified it will be loaded, and if it doesn't exist, it will be created.
If COVER is started from the console, the custom viewpoints will be loaded using the "-v" option and the path of the .vwp file:
cover -v example.vwp
The button "Viewpoints" opens a submenu with the following entries:
If "flying mode" is active then an animated flight from the current viewpoint to the selected viewpoint will be started. The selection of viewpoints can also be done using the keys F1-F12.
The "Flight" button opens a submenu with a list of all viewpoints and a button "Run". "Run" starts an automatic flight through all selected viewpoints in the list. Viewpoints can be removed from the flight by deselecting them in the list.
"StartRecord" starts recording viewoints. The viewpoints are saved in vrml format to a file named animation.wrl. "StopRecord" stops recording viewpoints. The recorded viewpoints have to be added to a vrml file and become available in the submenu VrmlViewpoints, as soon as the file is loaded.
This plugin is available when an entry
MODULE Snapshotin COVERConfig is present.
When pressing the Snapshot button of the pinboard, a submenu appears, which has a single button as long as you have creted no snapshots. When you press this button, the submenu disappears, and a snapshot will be creted whenever you press the pointer again. A snapshot may encompass several rgb files. One or two files are generated for each screen in a screen selection list. By default this list reduces to screen in the first entry in the ChannelConfig section of covise.config. You may create your own list by adding a SNAPHOT_SCREEN entry in section Snapshot of covise.config.
The rgb snapshot files are created by default in the working directory. You may override this behaviour if a SNAPHOT_DIR entry in section Snapshot is present, for instance:
Snapshot { SNAPHOT_SCREEN FRONT TOP. SNAPHOT_DIR /usr/tmp }
The generated files have the following structure:
snap{number}_{extra digits}_{leftright}Eye_Screen{Screen name}.rgb.
The first number is a snapshot counter. The extra digits have no special
meaning, they are only used in order to prevent new file or button
names from being repeated. Whenever you create a snapshot, a new
viewpoint entry is also created for the Viewpoint plugin, which
should also be in use, otherwise the COVER will crash.
For these new viewpoints associated with snapshot actions,
new buttons are also created in the Snapshot submenu, with
the same name as in the Viewpoint submenu. These names
have the structure: snap{number}_{extra digits}.
You create drawings in 3D space using this plugin. A sketch is a set of lines. A line is defined in this context to be a series of connected points.
The Sketches Plugin is activated if the line
MODULE Sketcherin COVERConfig is present.
In order to create a sketch, you should activate the Draw button in the Sketches menu. Then you may create lines by pressing the pointer and moving it. When it is released, the current line is finished. You may create several lines by repeating this operation. When you are done with one sketch, then you will want to create a new entry in the list of available sketches. You should press the button NewSketch in this case. But this is not enough to save the sketch in a file (see below comment on button SaveSketches).
The available sketches may be shown or hidden by activating or deactivating the corresponding entry in the menu.
All sketches are saved to the file specified by the COVER parameter Viewpoints when you press the button SaveSketches, whose action will be eventually preceded by the action of button NewSketch. You may edit this file in order to change some attributes of the sketches or their lines: sketch name, color attributes, etc.
The position of the sketching tool with respect to the hand may be parametrised by a pertinent section in covise.config:
Sketcher{ ANGLE 5.0 DISPLACEMENT 0.5 SCALE 100.0 }where SCALE determines the size of the sketching tool, DISPLACEMENT stands for a displacement along the local Y axis relative to the sketching-tool size, and ANGLE parametrises a rotation around the local X axis in degrees.
By way of summary, you may read the table below with explanation to the buttons in the submenu Sketches. The button Sketches... opens a submenu with the following entries:
Previous | Next |
Authors: Martin Aumüller, Ruth Lang, Daniela Rainer, Jürgen Schulze-Döbold, Andreas Werner, Peter Wolf, Uwe Wössner |
Copyright © 1993-2022 HLRS, 2004-2014 RRZK, 2005-2014 Visenso |
COVISE Version 2021.12
|