User manual
The user manual consists of three sections:
1) Program
quickstart:
The easiest way to get to see some streamlines is explained here.
2)
Explanation of
the menu functions:
All the menu functions are explained in detail in this section
3) Summary of the mouse
and keyboard functions:
All the mouse and keyboard functions are summarized and explained in this
section.
Step 1:
Click "Create field" in the menu "Options" or the button with the letter 'A' on the toolbar. After a few seconds a blue cube representing the vectorfield boundaries will appear. The vectorfield is sampled with the Lorenz-equations.
Step 2:
Click "Recalc" int the Options-menu or the button with the letter 'R' on the toolbar. Now the streamlines are calculated for different resolutions and are rendered on the screen. When calculation is finished, you can rotate the streamlines by
a) Holding down left mouse button and moving the mouse around.
b) Double clicking right mouse button. Then the field rotates according to the mouse movements until right mouse button is double clicked again.
You can also zoom in and out of the streamlines by
Holding down left mouse button and pressing 'D' on the keyboard. Then you can zoom in by moving the mouse up or zoom out by moving the mouse down.
Now that the streamlines are calculated, see menu "Drawing Style" for the various rendering options.
|
||||
Explanation of
the menu functions
Overview:
1) File
1.1) Open geometry
1.2) Save geometry
1.3) Save geometry
as
1.4) Open data
1.5) Save data
2) Options
2.1) Create field
2.2) Recalc
2.3) Set algorithm
options
2.4) Set field
sampling options
2.5) Set performance
options
2.6) Show statistics
2.7) Start/End seedpoint placing
2.8)
Show/Hide status
2.9) Set resolution
options
2.10) Set view direction
2.11) Show histogram
3) Drawing style
3.1) Set material
3.2) Set additional info
3.3) Set light type
3.4) Set glossiness
3.5) Set line style
3.6) Set diffuse
correction
3.7) Set
focus/context options
3.8) Set
background
3.9) Set depth
coding options
3.10) Set animation
options
3.11) Show/Hide
additional info
3.12)
Enable/Disable depth cueing
3.13) Show/Hide
boundaries
3.14) Show/Hide axis
3.15)
Enable/Disable animation
3.16) Show/Hide magic
volume
3.17) Start/End
focus/context mode
3.18) Center
focus
3.19) Reset boundaries
3.20)
Show/Hide block
3.21) Set block
parameters
Detailed description:
File loading/saving functions. The vector data must be organised as follows:
Data description:
The format stores the geometry in a file with a .gri extention and each timestep of the set in file with the same basename but with an extention consisting of the number of the timestep and a .dat extention. The gridfile consists of a 40 byte ascii header and the (binairy) position data. The header looks like: "SN4DB %d %d %d %d %d %f",SX,SY,SZ,NF,NT,DT where SX,SY,SZ are the dimensions of the set, NF is the number of additional sets, NT is the number of time steps, and DT is the timestep between two time steps.
Geometry:
The geometry is organized as a 3D array of positions each consisting of 3 floats (=4 bytes): (px,py,pz). It can be read like this:
read(file,buf,40)
sscanf(buf,"SN4DB %d %d %d %d %d %f",SX,SY,SZ,NF,NT,DT)
data = allocate_data(SX,SY,SZ)
for (z = 0) z < SZ; z++)
for (y = 0; y < SY; y++)
for (x = 0; x < SX; x++)
read(file,*data[z][y][x].x,4)
read(file,*data[z][y][x].y,4)
read(file,*data[z][y][x].z,4)
Data file:
The data files are organized equally with the exception that the number of floats depends on the number of additional datasets.
(vx,vy,vz,a1,a2, ....an)
for (z = 0) z < SZ; z++)
for (y = 0; y < SY; y++)
for (x = 0; x < SX; x++)
read(file,*data[z][y][x].vx,4)
read(file,*data[z][y][x].vy,4)
read(file,*data[z][y][x].vz,4)
for (k=0; k< NF; k++)
read(file,*data[z][y][x].a[k],4)
1.1) Open
geometry
Loading vectorfield geometry. The geometry holds the field
dimensions and the position values of a vector field. After the geometry was
successfully loaded, a vector data
file fitting to the geometry can be read in and the vector and scalar information
is added to the field. The geometry file usually has the file extention
.gri.
1.2) Save
geometry
Saving current vectorfield geometry on disk. The current vectorfield can be created with
analytical equations or loaded from disk.
1.3) Save
geometry as
Saving current vectorfield geometry under specified name.
1.4)
Open data
Opening data file to read vector data into geometry file. Note that
geometry must be already created or loaded from disk and must have the same dimensions as
data file. Data files usually have the extention .dat.
1.5) Save
data
Saving current vector data file on disk.
Options influencing the algorithm itself, the sampling of the vectorfield and the performance of the program. You can also display some statistical information.
2.1)
Create field
Create new vectorfield with the parameters specified with the "Field
Sampling Options"-dialog.
2.2) Recalc
Calculate new streamlines with parameters specified with the "Algorithm
Options"-dialog.
2.3) Set algorithm options
Set parameters important for the algorithm with the "Algorithm
Options"-dialog. These parameters are:
Set separating distance:
Separating distance dsep between two streamlines. New streamlines are always
started in a distance dsep from all the other streamlines. Dsep is
inputted as % of vectorfield x-range.
Set test distance:
Streamlines are tested if the distance to other streamlines is always bigger
than dsep*dtest while growing.
Set step size (=dt):
Step size of integration. Should be < dsep.
Set candidates per samplepoint:
This parameter specifies the number of samplepoints calculated for every
samplepoint in distance dsep as seedpoint candidate for the next streamline.
Set maximal iteration depth of
streamline:
Maximal number of integration steps. If this number is reached, the integration
of the streamlines is stopped.
Set maximal number of streamlines:
Maximal number of streamlines calculated. If this number is reached, the
algorithm stops. 0 means streamline calculation is not bounded by an explicit
number.
Choose integration method:
The euler operator is the most simple, but also the least exact method. The
Runge-Kutta-2 operator is better and the Runge-Kutta-4 operator is best, but
makes 4 steps if the euler operator makes one.
Choose interpolation method:
The nearest neighbour method is the fastest, but does not interpolate between
samplepoints. "Trilinear" interpolates vectors as they are, and "trilinear
vector+length" interpolates vectors as unit vectors and vector lengths
separately.
2.4) Set field sampling options
Set parameters important for vectorfield sampling with the "Field
Sampling"-dialog. These parameters are:
Choose Sampling equations:
Choose between three sampling equation types. Lorenz equations, Roessler
equations(these two produce famous chaotic attractors) and simple spirals.
Additional information:
Set this flag if you want to add some additional scalar information. The scalar
added in this case is just here for testing reasons and has no particular
meaning. In real datasets, scalar information could represent pressure in the
vectorfield, for example.
Set parameters:
Insert values for the three parameters p1, p2 and p3 in the sampling equations.
Set dimensions:
Set the dimension(= samplepoints stored) in x, y and z-direction.
|
|
|
|
|
2.5) Set performance options
Set parameters important for the performance of the program in the "Performance
Options"-dialog. Note: These options could also influence the displayed
pictures:
Set min. distance between streamline
points(in % of field x-range):
This value influences the number of displayed samplepoints.
Correct rendering order(requires
list ordering):
Set this flag if you want correct rendering order. Then small junks of the
streamline are inserted into three lists, the first list ordered by x-, the
second by y-, and the third by z-position. Then the streamline junks are
rendered using the list most closely resembling the main view direction. This
heuristic leads to good pictures even if transparency is used, but also to
additional computational overhead because of the list orderings.
Use display lists:
Set this flag if you want to use display lists. The display lists must be
updated if certain options are choosen, but could yield a slightly better frame
rate.
Calculate streamlines for
resolutions(in % of dsep):
For focus/context mode, different resolutions are needed. These resolutions must
be equal or lower than the original resolution calculated with the specified
separating distance, so the focus can be displayed in best resolution and the
context in a lower resolution. Set the flags for the resolutions you need for
the focus/context mode. Then streamlines for the specified resolutions are
calculated in the next "Recalc".
2.6)
Show statistics
Shows some statistical values in a "Statistics"-dialog:
Frame rate, overall streamline computation time, number of
streamlines, number of samplepoints and number of displayed samplepoints.
2.7) Start/End seedpoint placing
Starts/ends seedpoint placing mode. In seedpoint placing mode, you can choose
the starting point for next streamline calculation. When you click this option,
three lines representing the xyz-axis will appear. The cross point of the axis
represents the seedpoint position. Manipulation of the seedpoint position goes
like this:
Hold down 'X' on the keyboard:
The x-axis will turn thicker and white. Then you can manipulate the x-position
of the seedpoint by holding down left mouse button and dragging the xy-axis
cross.
Hold down 'Y' on the keyboard.
The y-axis will turn thicker and white. Then you can manipulate the y-position
of the seedpoint by holding down left mouse button and dragging the xz-axis
cross.
Hold down 'Z' on the keyboard:
The z-axis will turn thicker and white. Then you can manipulate the z-position
of the seedpoint by holding down left mouse button and dragging the xy-axis
cross.
2.8) Show/Hide status
Shows/Hides status information in lower left corner of rendering window.
Set calculation type:
If the flag "Incremential" is set, the streamlines of lower resolutions
should be reused
for higher resolutions during streamline calculation.
Set resolution
number:
Set number of different streamline resolutions calculated. For example, a value
of 4 means that streamlines are calculated for 4 resolutions: 25%, 50%, 75% and 100% of
the specified dsep.
|
|
|||
2.10) Set view direction
Sets view direction in a "View Direction"-dialog by specifying
three angles in x,y and z-direction.
2.11) Show histogram
Shows histograms for the different types of scalar information.
In this menu the main rendering options can be found. Set parameters influencing the displayed graphics and the appearance of the streamlines on the screen.
3.1) Set
material
Set the ambient, diffuse, specular color components and the opacity of the
streamlines in a "Material"-dialog. According
to the specified values, the texture maps responsible for the illumination are updated.
3.2) Set additional info
Set additional scalar information type and representation with the "Additional
Scalar Informations"-dialog The
available options are:
Continuous transfer function:
With this option the properties for each streamline-samplepoint
are calculated with a continous transfer function. These
properties contain the components streamline color, width, resolution and
opacity. The
color property is the base color of the streamline. Since the streamline
illumination is made with texture maps, these texture maps can be combined with
the base color of the streamline using the texture mode "modulate" in Open GL.
You can edit this function with the "Continuous
Transfer Function Options"-dialog.
There are three "Properties"-buttons so you can input different properties for 3 scalar values in a "Transfer Function Properties"-dialog. The first property represents the minimum, the 3rd property the maximum of the additional information scalar. The middle property represents a additional information value between the minimum and the maximum. You can set this value with the "Intermediate position"- slider. Then the properties for a value is calculated like this:
value <
intermediate value =>
Interpolation between minimum properties and
intermediate properties.
value >= intermediate value => Interpolation between
intermediate properties and maximum
properties.
While adjusting the intermediate value, the distribution of the color values can be seen in a modeless dialog histogram.
Set additional info type:
Select type of additional scalar info displayed. The possibilitys are velocity(= vector
length), arccos of vector x, y, z-component(=orientation in x,y,z-direction),
position in x, y, z-direction, difference orientation(=difference of adjacent samplepoint
unit vectors), difference vector length(=difference
of adjacent samplepoint vector length) and any other
additional scalar information specified
in the additional info array of each samplepoint.
Scalar
regions transfer function:
This function calculates the properties for each samplepoint by
using scalar regions
representing intervals of the additional information scalar. For
example, if
the scalar value of a samplepoint falls into an interval with
property 2, the properties of this samplepoint are those
of region 2. The properties of a samplepoint contain the
components streamline width, material, streamline resolution and opacity.
Unlike the color code transfer function, complete materials with ambient, diffuse and specular components can be defined here. But because of the limitations of the used hardware renderings, smooth interpolation between color values are impossible. Up to 5 scalar regions can be specified using the "Regions"-dialog and defining the properties of each region with the "Region Properties"-dialog.
Set type of light source illuminating the streamlines. There are two different types:
Headlight:
The light direction is always the same as the view direction, therefore the
streamlines are always illuminated from the front.
Pointlight:
The light direction can be set up by a left mouse button double click. When
rotating vectorfield (can be seen as the spectator moving around field), the
light source stays on the same spot.
|
|
|||
3.4)
Set shininess
Set the shininess(= coefficent of the specular part in the Phong-shading
equations). If the shininess is high, the highlight is small and strong("glossy"). When
shininess is low, the highlight is more
evenly distributed over the streamlines("dull").
3.5)
Set line style
Set parameters influencing the appearance of the streamlines in the picture with
the "Line Style Options"-dialog. These parameters
are:
Set line width
Set gap size:
Set size of gap left and right of the streamline. The flag "Draw gaps" must be
set.
Enable line antialiasing:
This option makes the line look more smooth.
Enable tapering:
This option makes lines look thinner in
regions of higher streamline density and thicker in regions of lower streamline desity.
|
|
|||
Enable end tapering:
This option always tapers end of streamline.
Draw arrows:
This option makes streamline end look like an arrow showing the flow
direction.
Set arrow type:
You can choose between "line end" and "period". With "line end", only at the end
the lines an arrow will be placed. Whereas with "period", the arrow
density can be controlled with a slider.
|
|
|
|
|
Enable transparency function:
If this flag is set the opacity of the streamline is set according to one of the
three transparency functions.
Draw gaps:
If this flag is set, a streamline has two gaps on each side. That means, if a
streamline in the front crosses another streamline in the back, two gaps cut through
the streamline in the back, giving better spatial orientation.
|
|
|||
Set transparency function period
length (only haze lin, sin):
This parameter is the period length of the "particle haze linear" and the "sinus"
transparency function, but doesn't affect the "particle haze exponential"
function.
Set absorption factor (only haze exp):
This parameter is the value between 0.0 and 1.0 which is multiplicated to the
opacity of the streamline for every next samplepoint. . This option only
influences the "particle haze exponential" function.
Set transparency function type:
Three types of transparency functions can be choosen:
With the "particle haze exponential" function the streamline opacity begins with 1 and is diminished with a specified absorption factor for every next samplepoint on the line. When the opacity turns 0.0, the opacity is set to 1.0 again.
The "particle haze linear" uses a modulo function with a period length specified by the period length slider. The same holds true for the "sinus" function period length.
|
|
|
||
t53.6) Set diffuse
correction
Because the overall streamline illumination is too bright, we use a coefficient
for the diffuse part of the Phong-shading to correct this effect, as it is
suggested in Zoecke's paper.
3.7) Set focus/context options
Set various options influencing the focus/context mode with the "Focus/Context
Options"-dialog. These options are:
Set context opacity(%
of focus opacity):
The context opacity can be set as a
percentage of focus opacity.
Set magic volume type:
Three types of magic volumes are available, magic cube, magic sphere and
magic
recangular prism. Default volume is the magic rectangle. The magic volume size can be
manipulated like this:
Hold down right mouse button. Then the volume size grows if you move the mouse to the upper right, and the volume shrinks if you move the mouse to the lower left.
For magic rectangular prism only, the sides of the rectangle can be manipulated separately:
Hold down 'X' on the keyboard,
then you can manipulate length of prism by holding down right mouse button
and moving along x-axis.
Hold down 'Y' on the keyboard, then you can
manipulate width of prism by holding down right mouse button and moving
along y-axis.
Hold down 'Z' on the keyboard, then you can
manipulate width of prism by holding down right mouse button and moving
along z-axis.
Set context
material:
The context streamline material can be set
here.
Set context streamline resolution(% of
focus resolution):
The context streamline resolution can be set as
a percentage of the resolution in the focus. The resolution used
is the one most closely fitting to the value selected with the slider control.
The number of streamline resolutions
actually calculated is selected in the "Performance
Options"-dialog.
Set context streamline
width(% of focus line width)
Sets the context streamline width to a
percentage of focus line width.
Cut context streamlines in focus:
If this flag is set, the streamlines of the context are cut if they come into
the focus, else the context streamlines are continued in the focus (note that
focus streamlines are always cut in context). This options is
only available if streamline calculation is not incremental(means that
streamlines of lower resolutions are not reused), because then all streamlines
of lower resolutions naturally continue into the focus.
Set recalculation options:
Focus as new field
boundaries:
The focus is taken as new field boundaries. Of course, the new dsep
is also relative to new field boundaries, resulting in a detailed calculation of
a smaller region of the field.
Focus as seedpoint
region:
When recalculating now, the focus is the only region where new
streamlines can be seeded, but they can of course grow out of the focus anywhere
into field.
Different focus-recalculation types (with velocity as scalar regions):
|
|
|
|
|
|
||||
Shots of different focus/context options:
|
|
|
||
3.8) Set background
Choose the background color of the rendering window.
3.9) Set depth
coding options
Set the parameters for the depth coding in the "Depth
Coding Options"-dialog.
Set
type:
Choose "Color code"(which means that any
color can be selected for depth coding), or choose "Depth
cueing"(which means that the color used is the same as the background
color).
Set intensity:
Set intensity of depth coding.
You can interactively change depth coding intensity by Holding down 'I' on the keyboard, then you can manipulate the intensity by holding down left mouse button and moving up("great intensity") or down("low intensity").
3.10) Set
animation options
Set parameters influencing the streamline animation with the "Animation
Options"-dialog.
Set animation speed:
Set the speed of the animation from "Slow" to
"Fast".
Set animation type:
Two different animation types are available.
The animation speed and the period length an be choosen interactively:
Hold down 'P' on the keyboard, then you can manipulate the period of the "linear haze" and "sinus"-transparency function by holding down left mouse button and moving up(= longer period) or down(=shorter period).
Hold down 'A' on the keyboard, then you can manipulate the absorption factor of the "linear exponential"-transparency function by holding down left mouse button and moving up(= less absorption and therefore longer period) or down(=more absorption and therefore shorter period).
Hold down 'S' on the keyboard, then you can manipulate the animation speed by holding down left mouse button and moving up(=faster) or down(=slower).
Growing streamlines:
Streamlines grow until they reach their maximum length, then shrink
till they disappear and then grow again.
Transparency
function:
The transparency function selected in the "Line
Style Options"-dialog is moved along the streamline.
3.11) Show/Hide additional info
Set this flag if you want additional scalar information like vector length to be
displayed on the streamlines according to the parameters selected in the "Additional
Scalar Information Options"-dialog.
3.12) Enable/Disable
depth coding
Set this flag if you want distant streamlines to appear in a
diffent color than near
streamlines to increase spatial perception.
|
|
|
||
3.13) Show/Hide boundaries
Set this flag if you want the boundaries of the vectorfield to be displayed.
3.14)
Show/Hide axis
Set this flag if you want the xyz-axis to be displayed for better orientation.
3.15) Enable/Disable animation
Set this flag if you want the streamlines to be animated according to the
options specified in the "Animation
Options"-dialog.
3.16) Show/Hide magic volume
Set this flag if you want to show and manipulate the magic volume. The magic
volume specifies the boundaries of the focus area.
The manipulation of the magic volume position goes like this:
Hold down 'X' on the keyboard. The x-axis will turn thicker and white. Then you can manipulate the x-position of the volume by holding down left mouse button and dragging the yz-axis cross.
Hold down 'Y' on the keyboard. The y-axis will turn thicker and white. Then you can manipulate the y-position of the volume by holding down left mouse button and dragging the xz-axis cross.
Hold down 'Z' on the keyboard. The z-axis will turn thicker and white. Then you can manipulate the z-position of the volume by holding down left mouse button and dragging the xy-axis cross.
For the manipulation of the magic volume size, see "3.7) Set focus/context options".
3.17) Start/end focus context mode
Set this flag if you want the streamlines to be displayed in focus/context mode.
The focus area is bounded by a magic volume.
Note that you not only can change size and position of the magic volume interactively, you can also change the properties of context streamlines:
Hold down 'R' on the keyboard. Then you can manipulate the streamline resolution in the context by holding down left mouse button and moving up(= increase resolution) or down(= decrease resolution).
Hold down 'L' on the keyboard. Then you can manipulate the streamline width in the context by holding down left mouse button and moving up(= increase width) or down(= decrease width).
Hold down 'O' on the keyboard. Then you can manipulate the streamline opacity in the context by holding down left mouse button and moving up(= increase opacity) or down(= decrease opacity).
3.18) Center focus
In focus/context modus, you can make the current focus the center of
rendering window with the focus defining the current field boundaries..
3.19) Reset boundaries
If the boundaries of the field were change with the "Center
focus"-options, choosing this option resets the boundaries to the original field
size.
3.20) Show/Hide block
Works only for the block-dataset! If
activated, the block geometry is also rendered.
3.21) Set block parameters
Works only for the block-dataset! Set parameters
concerning block appearance and size with the "Block
Parameters" dialog.
Set block material:
Specify the block material properties with this option.
Set z-offs:
Specify the size of the block in z-direction with this option.
Enable textures:
Block is textured with texture from file if this option is activated.
Load texture:
Use this to load texture from file. Texture size must be
128x128, the format is 24bit
bmp.
Note that you can also change the size
interactively:
Hold down 'B' on the keyboard and drag the mouse with the left mouse
button.
|
|
|
|
|
|
||||
Summary of the mouse and keyboard functions
Basic movements:
Drag left
mouse button:
Rotating field.
Drag left
mouse button + 'D':
Manipulating z-distance of viewer to field.
Drag upwards or right to shorten distance, drag downwards or left to make
distance longer.
Double click right mouse button:
Then the field is rotating according to the mouse movements until
right mouse button is double clicked again.
Double click left
mouse button:
Sets up point light to the current position,
where it stays even if you rotate the field. Only works if
light type is "point light"!
Additional functions:
Drag with left mouse
button + 'S':
Manipulating animation speed. Drag upwards or
right for more speed, downwards or left for less. Only
works if animation is enabled!
Drag with left mouse
button + 'I':
Manipulating depth coding intensity. Drag
upwards or right for more intensity, downwards or left for less.
Only works if depth coding is enabled!
Drag with left mouse
button + 'P':
Manipulating transparency function period.
Drag upwards or right for longer period, downwards or left for shorter.
Only works if transparency function is enabled and
transparency function type is "particle haze linear" or "sinus"!
Drag with left mouse
button + 'A':
Manipulating absorption of "particle haze
exponential" transparency function. Drag upwards or right for less absorption,
downwards or left for more absorption. Only works if
transparency function is enabled and transparency function type is "particle
haze exp"!
Drag with left mouse
button + 'B':
Manipulating block size in z-direction. Drag upwards or right to
shorten block size, downwards or left to increase block size.
Only works if the block dataset geometry and data was
loaded!
Focus/context mode:
Drag with right
mouse button:
With volume type "cube" or "sphere", the volume size grows if you move
the mouse upwards or right, and the volume shrinks if you
move the mouse downwards or left.
Drag with right
mouse button + 'X':
Manipulating size in x-direction
of magic volume type "rectangular prism".
Drag with right
mouse button + 'Y':
Manipulating size in y-direction
of magic volume type "rectangular prism".
Drag with right
mouse button + 'Z':
Manipulating size in z-direction
of magic volume type "rectangular prism".
Drag with left mouse
button + 'X':
Moving magic volume in x-direction.
Drag with left mouse
button + 'Y':
Moving magic volume in y-direction.
Drag with left mouse
button + 'Z':
Moving magic volume in z-direction.
Drag with left mouse
button + 'R':
Manipulating streamline resolution in context. Drag upwards or right
for more resolution density, downwards or left for less.
Drag with left mouse
button + 'L':
Manipulating line width in context. Drag upwards or right for more
line width, downwards or left for less.
Drag with left mouse
button + 'O':
Manipulating line width in context.
Drag upwards or right for more opacity, downwards or left for less.
Seedpoint placing:
Drag with left mouse
button + 'X':
Moving streamlines seedpoint in x-direction.
Drag with left mouse
button + 'Y':
Moving streamlines seedpoint in y-direction.
Drag with left mouse
button + 'Z':
Moving streamlines seedpoint in z-direction.