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 magnitude (e.g. speed, force) force = (1,1) speed = (3,2) force = (2,1) force = (0, -0.5) 3
Vector algorithms • Hedgehogs • Warping • Oriented glyphs • Displacement plots • Time animation • Stream lines, streak lines • Stream ribbons, stream surfaces 4
Time animation • Move point or object over a small time step • Velocity (vector) at position x: V(x) = d x /dt • Displacement of point: d x = V(x) dt • Repeatedly displace points over many time steps 5
Time animation • Position of point at time t: t = x ( t ) V ( x ( t )) dt ∫ 0 6
Time animation Give initial position x 0 (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) + t ∆ t + ∆ = + x ( t t ) x ( t ) V ( x ( t )) dt ∫ t for given time step Δt • Until total time passed or new position is outside data set 7
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 • … 8
Time animation 9
Time animation • Accuracy depends on: • Step size Δt • Accuracy of data set • Accuracy of interpolation functions 10
Particle path • Particle trace • Trajectory of a single particle over time • Path of one particle released at P at t = t 0 to t = t n P t = t 0 t = t n 11
Streak line • Streakline • Path of particles passing through one given fixed point P over a time interval • Connection of all particles at time t i that have previously passed through point x i (e.g. source) P t = t 0 t = t n 12
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. P t = t 0 t = t n • Unsteady flow: • continuous changing • given line exists only at one moment in time. 13
Demo • http:// widget.ecn.purdue.edu/~meapplet/java/flowvis/Index.html 14
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 15
Streamlines 16
Stream ribbon • Generate two adjacent streamlines • Generate polygons by connecting point of both lines • Shows twist (vorticity) and divergence (spread) 17
Stream surface / stream tube • Generate n streamlines passing starting at points on a curve ( rake ) • Generate polygonal mesh by connecting adjacent streamlines • Closed surface => streamtube 18
Streamtubes 19
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: • A x = λ x where A is tensor matrix and x its eigenvector • det|A – λI| = 0 20
Tensor algorithms • Express eigenvectors as: • v i = λ i e i where e i is unit vector in direction eigenvalue and λ i eigenvalues • Order eigenvalues such that • λ 1 ≥ λ 2 ≥ λ 3 (major, medium and minor values) 21
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) 22
Tensor ellipsoids 23
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) 24
Tensor hyperstreamlines • Decompose tensor field into three vector fields defined by one 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 25
Tensor hyperstreamlines 26
Modeling algorithms • Modeling algorithms • Create or change dataset geometry or topology • Algorithms on combined data • Most general class of algorithms 27
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 28
Implicit functions • Implicit functions • F(x, y, z) = c • Examples: • Sphere: F(x, y, z) = x 2 + y 2 + z 2 – R 2 • Plane: F(x, y, z) = Ax + By + Cz + D 29
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 c i = F(x i , y i , z i ) 30
Use of implicit functions • Modeling objects • Sample F on dataset and generate isosurface at contour value c i • Combine implicit functions to create more complex objects 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)) 31
Use of implicit functions • Modeling example • f1 = (x-1.33) 2 + y 2 + z 2 – 0.5 2 • f2 = (x-1.5) 2 + y 2 + (z-0.5) 2 – 0.25 2 • f3 = f1 – f2 • f4 = y 2 + z 2 – x 2 tan 2 (20) (+ intersection with 2 planes) • f5 = f4 + f3 f2 f3 f4 f5 f1 32
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 33
Use of implicit data • Data selection Selecting with sphere function 34
Use of implicit functions • Data cutting • Find dataset values on implicit surface 35
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 36
Use of implicit functions • Data cutting Data cutting with plane function 37
Use of implicit functions • Clipping • Limit the data to be processed or displayed • Usually with plane 38
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 39
Glyphs • A glyph is any object which is parameterized by some data • May be positioned, oriented, scaled, deformed, colored, .. in response to data 40
Data extraction • Data extraction • Extract portions of data from dataset • Techniques: • Geometry extraction • Thresholding 41
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 42
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 43
Probing • Resampling method • Create output dataset by sampling input dataset • Get attributes for output dataset by interpolation from attributes of input dataset 44
Probing 45
Recommend
More recommend