Visualisatie BMT Algorithms - 2 Arjan Kok a.j.f.kok@tue.nl 1 - - PowerPoint PPT Presentation

visualisatie
SMART_READER_LITE
LIVE PREVIEW

Visualisatie BMT Algorithms - 2 Arjan Kok a.j.f.kok@tue.nl 1 - - PowerPoint PPT Presentation

Visualisatie BMT Algorithms - 2 Arjan Kok a.j.f.kok@tue.nl 1 Lecture overview Vector algorithms Tensor algorithms Modeling algorithms 2 Vector algorithms Vector 2 or 3 dimensional representation of direction and


slide-1
SLIDE 1

1

Visualisatie

BMT

Algorithms - 2 Arjan Kok a.j.f.kok@tue.nl

slide-2
SLIDE 2

2

Lecture overview

  • Vector algorithms
  • Tensor algorithms
  • Modeling algorithms
slide-3
SLIDE 3

3

Vector algorithms

  • Vector
  • 2 or 3 dimensional representation of direction and

magnitude (e.g. speed, force)

force = (0, -0.5) force = (2,1) force = (1,1) speed = (3,2)

slide-4
SLIDE 4

4

Vector algorithms

  • Hedgehogs
  • Warping
  • Oriented glyphs
  • Displacement plots
  • Time animation
  • Stream lines, streak lines
  • Stream ribbons, stream surfaces
slide-5
SLIDE 5

5

Time animation

  • Move point or object over a small time step
  • Velocity (vector) at position x:

V(x) = dx/dt

  • Displacement of point:

dx = V(x)dt

  • Repeatedly displace points over many time steps
slide-6
SLIDE 6

6

Time animation

  • Position of point at time t:

∫ =

t

dt )) t ( x ( V ) t ( x

slide-7
SLIDE 7

7

Time animation

  • Give initial position x0

(release point)

  • Repeat
  • Find cell (i, j, k) and offsets (r, s, t) for x

(point location)

  • Find velocity V(x) at x

(interpolation)

  • Compute next position

(integration) for given time step Δt

  • Until total time passed or new position is outside data set

∫ + = ∆ +

∆ + t t t

dt )) t ( x ( V ) t ( x ) t t ( x

slide-8
SLIDE 8

8

Time animation

  • Integration techniques
  • Euler
  • x(t+Δt) = x(t) + V(x(t)) Δt
  • Runge-Kutta
  • x(t+Δt) = x(t) + Δt /2 (V(x(t)) + V(x*(t+Δt)))
  • x*(t+Δt) = x(t) + V(x(t)) Δt
slide-9
SLIDE 9

9

Time animation

slide-10
SLIDE 10

10

Time animation

  • Accuracy depends on:
  • Step size Δt
  • Accuracy of data set
  • Accuracy of interpolation functions
slide-11
SLIDE 11

11

Particle path

  • Particle trace
  • Trajectory of a single particle over time
  • Path of one particle released at P at t = t0 to t = tn

P t = t0 t = tn

slide-12
SLIDE 12

12

Streak line

  • Streakline
  • Path of particles passing through one given fixed point P
  • ver a time interval
  • Connection of all particles at time ti that have previously

passed through point xi (e.g. source)

P t = t0 t = tn

slide-13
SLIDE 13

13

Stream line

  • Streamline
  • Curve in the flow field which at a particular time, in

tangent to the velocity vector at all points along the curve.

  • Unsteady flow:
  • continuous changing
  • given line exists only at one moment in time.

P t = t0 t = tn

slide-14
SLIDE 14

14

Demo

  • http://

widget.ecn.purdue.edu/~meapplet/java/flowvis/Index.html

slide-15
SLIDE 15

15

Streamlines

  • Visualization:
  • Define starting points by

creating rake (source of points)

  • Draw stream lines
  • Color lines according to

some attribute

  • Magnitude of vector
  • Other scalar attributes
slide-16
SLIDE 16

16

Streamlines

slide-17
SLIDE 17

17

Stream ribbon

  • Generate two adjacent streamlines
  • Generate polygons by connecting point of both lines
  • Shows twist (vorticity) and divergence (spread)
slide-18
SLIDE 18

18

  • Generate n streamlines passing starting at points on a curve

(rake)

  • Generate polygonal mesh by connecting adjacent

streamlines

  • Closed surface => streamtube

Stream surface / stream tube

slide-19
SLIDE 19

19

Streamtubes

slide-20
SLIDE 20

20

Tensor algorithms

  • A tensor is a high dimensional quantity

(in our case symmetric 3x3 matrices)

  • Tensors describe e.g. the displacement and stress in a 3D

material

  • We must study the eigenvectors and eigenvalues of the

matrix:

  • Ax = λx

where A is tensor matrix and x its eigenvector

  • det|A – λI| = 0
slide-21
SLIDE 21

21

Tensor algorithms

  • Express eigenvectors as:
  • vi = λiei

where ei is unit vector in direction eigenvalue and λi eigenvalues

  • Order eigenvalues such that
  • λ1 ≥ λ2 ≥ λ3

(major, medium and minor values)

slide-22
SLIDE 22

22

Tensor ellipsoids

  • Define an ellipsoid
  • The shape and orientation of the ellipsoid represent the

relative size of the eigenvalues and the orientation of the eigenvectors

  • Algorithm
  • Position a sphere at the tensor location
  • Rotate the sphere around its origin

(using eigenvectors)

  • Scale the sphere (using eigenvalues)
slide-23
SLIDE 23

23

Tensor ellipsoids

slide-24
SLIDE 24

24

Tensor ellipsoids

  • Point load applied to elastic

material

  • At the surface of material the

ellipsiods flatten because there is no stress perpendicular to the surface (except at stress point itself)

slide-25
SLIDE 25

25

Tensor hyperstreamlines

  • Decompose tensor field into three vector fields defined by
  • ne of the eigenvectors
  • Create a streamline through one of the vector fields
  • Sweep an object (e.g. ellipse) along this streamline
  • Use remaining vector fields to define major and minor

axis of ellipse

slide-26
SLIDE 26

26

Tensor hyperstreamlines

slide-27
SLIDE 27

27

Modeling algorithms

  • Modeling algorithms
  • Create or change dataset geometry or topology
  • Algorithms on combined data
  • Most general class of algorithms
slide-28
SLIDE 28

28

Source objects

  • Modeling simple geometry
  • Supporting geometry
  • Data attribute creation
  • Source objects can be used as procedures to create data

attributes (e.g. a simulator)

  • Attributes can be generated from a mathematical

function

  • => implicit functions
slide-29
SLIDE 29

29

Implicit functions

  • Implicit functions
  • F(x, y, z) = c
  • Examples:
  • Sphere: F(x, y, z) = x2 + y2 + z2 – R2
  • Plane:

F(x, y, z) = Ax + By + Cz + D

slide-30
SLIDE 30

30

Implicit functions

  • Properties of implicit functions
  • Simple geometric description
  • Easy definition to define common geometric shapes

(spheres, planes, cylinders, ..)

  • Region separation
  • Implicit functions separate 3D space

F(x, y, z) < 0, F(x, y, z) = 0, F(x, y, z) > 0

  • Scalar generation
  • Implicit functions convert position in space into

scalar value ci = F(xi, yi, zi)

slide-31
SLIDE 31

31

Use of implicit functions

  • Modeling objects
  • Sample F on dataset and generate isosurface at contour

value ci

  • Combine implicit functions to create more complex
  • bjects using boolean operations (union, intersection,

and difference

  • F + G = min(F(x, y, z), G(x, y, z))
  • F * G = max(F(x, y, z), G(x, y, z))
  • F – G = max(F(x, y, z), -G(x, y, z))
slide-32
SLIDE 32

32

Use of implicit functions

  • Modeling example
  • f1 = (x-1.33)2 + y2 + z2 – 0.52
  • f2 = (x-1.5)2 + y2 + (z-0.5)2 – 0.252
  • f3 = f1 – f2
  • f4 = y2 + z2 – x2tan2(20) (+ intersection with 2 planes)
  • f5 = f4 + f3

f1 f2 f4 f3 f5

slide-33
SLIDE 33

33

Use of implicit functions

  • Selecting data
  • Choosing cells and points that lie within a particular

region of the dataset

  • Algorithm
  • For each cell in dataset
  • Evaluate implicit function for all cell nodes
  • A cell is selected if result has negative sign
slide-34
SLIDE 34

34

Use of implicit data

  • Data selection

Selecting with sphere function

slide-35
SLIDE 35

35

Use of implicit functions

  • Data cutting
  • Find dataset values on implicit surface
slide-36
SLIDE 36

36

Use of implicit functions

  • Data cutting
  • Algorithm
  • For each cell in dataset
  • Evaluate implicit function for all cell nodes
  • A cell is cut if not all positive or negative
  • Generate the isosurface f(x, y, z) =0 within cell
  • Generate data attributes for isosurface by

interpolation along cut edges

slide-37
SLIDE 37

37

Use of implicit functions

  • Data cutting

Data cutting with plane function

slide-38
SLIDE 38

38

Use of implicit functions

  • Clipping
  • Limit the data to be processed or displayed
  • Usually with plane
slide-39
SLIDE 39

39

Use of implicit functions

  • Clipping
  • Algorithm
  • Evaluate implicit function for all cell nodes
  • If all positive => remove cells
  • If all negative => copy cells
  • Else
  • Generate the isosurfaces f(x, y, z) =0 within cell

and generate new cells.

  • Generate data attributes for isosurface by

interpolation along cut edges

slide-40
SLIDE 40

40

Glyphs

  • A glyph is any object which is parameterized by some data
  • May be positioned, oriented, scaled, deformed, colored,

.. in response to data

slide-41
SLIDE 41

41

Data extraction

  • Data extraction
  • Extract portions of data from dataset
  • Techniques:
  • Geometry extraction
  • Thresholding
slide-42
SLIDE 42

42

Data extraction

  • Geometry extraction
  • Extracts data based on geometric or topological

characteristics

  • Select cells/nodes within specified range of ids
  • Spatial extraction
  • Define regions (e.g. by implicit function)
  • See data selection
  • Subsampling
  • Select part of original data
  • Only select every n-th data node
  • Modifies topology of dataset
slide-43
SLIDE 43

43

Data extraction

  • Thresholding
  • Extracts data based on attribute values
  • Examples
  • Select all nodes with scalar values within specified

range

  • Select all nodes with vector magnitude within

specified range

slide-44
SLIDE 44

44

Probing

  • Resampling method
  • Create output dataset by sampling input dataset
  • Get attributes for output dataset by interpolation from

attributes of input dataset

slide-45
SLIDE 45

45

Probing