1 / 44

Yingcai Xiao

Chapter 9 Advanced Algorithms. Yingcai Xiao. Constructing Topology. Data collected in the real world. Usually scattered, not confirming to a grid. Can be interpolated into a grid. But problem rises when we use global interpolation methods.

kieu
Télécharger la présentation

Yingcai Xiao

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 9 Advanced Algorithms • Yingcai Xiao

  2. Constructing Topology

  3. Data collected in the real world • Usually scattered, not confirming to a grid. • Can be interpolated into a grid. But problem rises when we use global interpolation methods.

  4. Scattered Data: sample points distributed unevenly and non-uniformly throughout the volume of interest.Example Data: chemical leakage at a tank-farm.

  5. Thin-plate Spline

  6. Volume Spline

  7. Shepard method

  8. Data collected in the real world • Can we use local interpolation with the closest points? • Need to find and connect the closest points. • Demo in 2D.

  9. Visualizing Unstructured Points Triangulation: Connect points to form a triangulated topological structure. (topology generation)

  10. Triangulation • Use Edge Swapping to make a Delaunay Triangulation. • Find the minimum bounding triangle. (may need to add a fake point) • Add one point at a time, do triangulation. • After each point is added, check if the joined triangles are optimal or not; if not swap the joining edge (edge swapping). Check all other triangles and make sure they are still optimal after adding the current point. • Repeat step 3 to add each point and we when all points are added and all triangles are optimal. • Clean up: remove all fake points and related triangles.

  11. Triangulation • Properties of Delaunay Triangulation: • Circumsphic property: no other points in the circumspheres. • Optimal property: The minimum interior angle of a triangle is greater than or equal to the minimum interior angle of any other triangulation • It is the dual of the Diritchlet tessellation • Voronoi cell, Centroid • A collection of connected Voronoi cells tessellete the area (partition, coverage)

  12. Triangulation Formal definition of Triangulation: N dimensional triangulation of a point set P=(P1, P2, ……,Pn) is a collection of n-dimensional simplexes (triangles) whose defining points lie in P. Optimal Triangulation: a triangulation that generates maximized minimum angles. Delaunay Trianglation: an optimal triangulation, which satisfies the circumshpere condition. Circumsphere Condition: the circumshpere of any n-dementional simplexe contains no other points of p except the n+1 points defining the simplex.

  13. Triangulation Example VTK Code: vtkPolyData *p= vtkPolyData::New(); pSetPoints(pnts); //pnts: pointer to an array of points, vtkFloatPoints vtkDelaunay3D *d= vtkDelaunay3D::New(); dSetInput(p); dSetTolerance(0.0001); vtkPolyDataMapper *m= vtkPolyDataMapper::New(); mSetInput(dGetOutput); vtkActor *a= vtkActor::New(); aSetMapper(m);

  14. Visualizing Unstructured Points Splatting for Point Data Gaussian Splatting s: scale factor R: radius of influence Data value assigned to grid nodes within the radius of influence of the data point.

  15. Scalar Algorithms

  16. Marching Triangles for Contour Lines 8 cases, 4 unique, doted vertexes are inside: v > contour value Marching Tetrahedrons for Isosurface.

  17. Dividing Cubes • Generate contour surfaces using dense point clouds. • For each voxel, interpolate into it if the contour going through it, display points around the interpolated surface. • Subdivide the voxel to have each subvoxel cover one pixel. Draw a point in the subvoxel if it is near the isosurface (nodal values brace the threshold values). • Display points are much faster than surfaces. • The resulting surface is not continuous.

  18. Dividing Cubes

  19. Carpet Plots • Display a 2D grid (a slice of a 3D grid) as a 3D extruded surface based on the data values • The extrusion is perpendicular to the 2D slice and is proportional to the data values.

  20. Carpet Plots V(r) = e-r cos(10r);

  21. Clipping Geometry with a Scalar Field Clipped Geometry Original Geometry

  22. Clipping Geometry with a Scalar Field • Data controlled geometry change. • To reveal the inside of a volume. • Ex. • Data values: v(x,y,z) = x + y + z – c • Isosurface: v=0 defines a plane, use it to cut geometry. • Marching Cube Cases: • Vertex inside/outside • 256=>15 Unique cases

  23. Clipping Geometry with a Scalar Field Marching Triangles: 8 cases, 4 unique (doted vertexes are inside: v < 0)

  24. Clip a plane by a cylinder and a sphere. • vtkImplicitBoolean *ib = • vtkImplicitBoolean::New(); • ibAddFunction(cylinder); • ibAddFunction(sphere); • vtkClipPolyData *c = • vtkClipPolyData::New(); • cSetInput(planGetOutput()) • cSetClipFunction(ib); • cGenerateClippedOutputOn(); • cGenerateClipScalarsOn(); • cSetValue(0) // v = 0; • …

  25. Vector Algorithms

  26. Stream Tubes • Stream Lines depict flow direction of a vector fields • What about temperature? Color coding. • How about add speed, acceleration, vortisity (twist)?

  27. Tensor Algorithm

  28. Hyperstreamlines

  29. High Dimensional Visualization • F(x), F(x,y), F(x,y,z), F(x1, x2, x3, ……) • Glyph, use each part of the glyph for a variable. • Use Parallel Coordinate Systems x1 x2 x3 x4 Plot of a four dimensional point.

  30. Modeling Algorithms

  31. Modeling Algorithms • Visualizing Geometry: • bundary cells • outlines, • wireframe (w/s in a VKT window)

  32. Data Extraction: Dataset => Subset • Extract portions of data from a dataset. • Geometry Extraction • portion of a grid, set of cells • subsampling: every nth data point is selected. • Threshholding: extracting based on data values. • May change topology, e.g., uniform => unstructured.

  33. Probing (Resampling): Dataset => Another Dataset • Obtains dataset attributes by sampling the original dataset with a set of points (the probe). • Data values can be viewed in a particular fashion.

  34. Swept Volume and Surfaces: Visualize Motion • A swept volume is the volume of space occupied by an object as it moves through space along a given trajectory. A polygonal is created from the original. • Path: ST • Steps: L • Boolean Operation

  35. Triangle Strip Generation • Triangle strips are compact representations of triangle polygons. • Greedy method: The longer the average strip length is the better. http://en.wikipedia.org/wiki/File:Triangle_Strip_Small.png

  36. Polygon Normal Generation • Reflection: • I~f(N,C) i.e., C.N.I • Normal may not be given by the progammer. • Facet Normal: Compute normal of a polygon from its vertexes. • Ex.

  37. Polygon Normal Generation: facet / polygonal normals

  38. Polygon Normal Generation Vertex Normals: Use the average of the facet normals in the use set.

  39. Polygon Normal Generation Vertex Normals: Shaded using vertex normal (average of facet normals), too smooth.

  40. Polygon Normal Generation Feature Angle ~800 <900 Take the facet out of the average computation if the connected facets have angle greater than the feature angle

  41. Decimation Polygon Reduction (Vertex Reduction) Threshold Distance:  For lines:  is the distance to the line without the vertex.

  42. Decimation For surface:  is the distance to the surface without the vertex.

  43. Mesh Smoothing No reduction, no topology change. But the geometry changes to make the mesh smooth.

  44. Mesh Smoothing No reduction, no topology change. But the geometry changes to make the mesh smooth.

More Related