Isosurface
description
Transcript of Isosurface
![Page 1: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/1.jpg)
Isosurface
Also known asMetaballs, blobs, soft objects, implicit surfaces …
![Page 2: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/2.jpg)
Fall 2013 2
Outline
Marching cube algorithmIsosurfaceMetaballsImplicit modelingVolume rendering
![Page 3: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/3.jpg)
Fall 2013 3
Introduction
Surface-based visualization technique for scalar data field treat isosurface as one special
instance of implicit function: f(x,y,z) = c
Prevailing technology: marching cube (patented)Related: marching tetrahedra
iso-surface: equal
![Page 4: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/4.jpg)
Fall 2013 4
Basic Idea(Marching Square)
References: 1, 2
value = 5
![Page 5: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/5.jpg)
Fall 2013 5
Marching Square
![Page 6: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/6.jpg)
Fall 2013 6
Continuation vs. Exhaustive Search (3D)
Continuation: O(n2) function evaluationsNeed a starting point for each piece of disjoint surfaceDesigned for continuous, real-valued functions
Exhaustive search: O(n3) function evaluationsCan find all pieces of surfacesDesigned to process 3D arrays (CT, MRI)
![Page 7: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/7.jpg)
Fall 2013 7
Marching Cube
Similar ambiguity can occurNeed to resolve the topological inconsistency (more cases devised; see reference)
![Page 8: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/8.jpg)
Fall 2013 8
Determining normals at vertices of triangular faces
It is often necessary to create normals for each vertex of the triangular faces for smooth shading. After the facets have been created, compute the average of the normals of all the faces that share a triangle vertex. A common approach is at each vertex to use a weighted average of normals of the polygons sharing the vertex. The weight is the inverse of the area of the polygon, so small polygons have greater weight. The idea is that small polygons may occur in regions of high surface curvature. The original Siggraph paper computes normals at vertices by interpolating the normals at the cube vertices. These cube vertex normals are computed using Central Differences of the volumetric data.
![Page 9: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/9.jpg)
Fall 2013 9
Smooth vs. Flat Shading
![Page 10: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/10.jpg)
Fall 2013 10
Interpolating
![Page 11: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/11.jpg)
Fall 2013 11
Grid Resolution
One very desirable control when polygonizing a field where the values are known or can be interpolated anywhere in space is the resolution of the sampling grid. This allows coarse or fine approximation to the isosurface to be generated depending on the smoothness required and/or the processing power available to display the surface.
![Page 12: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/12.jpg)
Fall 2013 12
Marching Tetrahedra
Jules Bloomenthal (Graphics Gems IV)
Decompose a cube into six tetrahedra
![Page 13: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/13.jpg)
Fall 2013 13
MT (cont)
Pros No ambiguous cases simpler implementation
Cons Number of triangles quality of
triangles Shirley90 decomposes a cube into 5 tetrahedra (smallest number of tetrahedra possible)
![Page 14: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/14.jpg)
Fall 2013 14
MT vs. MC
![Page 15: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/15.jpg)
Fall 2013 15
Regularized MT (Treece98)
MT: overcome topological problem (false positive/false negative) of MC But problem still exists: poor triangle quality; MT has many triangles“regularized”: combine with vertex clustering (but still maintain topological property) result: good fewer triangles
![Page 16: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/16.jpg)
MC Codes
References and codes for marching cube and marching tetrahedra are on Paul Bourke’s page
Fall 2013 16
![Page 17: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/17.jpg)
Fall 2013 17
A Brief History (ref)People have known for a long time that if you have two implicit surfaces f(x,y,z)=0 and g(x,y,z)=0 that are fairly continuous, with a common sign convention (f and g positive on the inside, negative on the outside, say) then the implicit surface defined by f+g=0 is a blend of the shapes. See [Ricci 1983] for a variant of this. The van der Waals surfaces of molecules (roughly speaking, iso-potentials of the electron density) are described in Chemistry and Physics books and [Max 1983]. To create animation of DNA for Carl Sagan's COSMOS TV Series, Jim Blinn proposed approximating each atom by a Gaussian potential, and using superposition of these potentials to define a surface. He ray traced these [Blinn 1982], and called them "blobby models". Shortly thereafter, people at Osaka University and at Toyo Links in Japan began using blobby models also. They called theirs "metaballs" (or, when misspelled, "meatballs"). Yoichiro Kawaguchi became a big user of their software and their Links parallel processor machine to create his "Growth" animations which have appeared in the SIGGRAPH film show over the years. The graduate students implementing the metaball software under Koichi Omura at Osaka used a piecewise quadratic approximation to the Gaussian, however, for faster ray-surface intersection testing (no need for iterative root finders; you just solve a quadratic). I don't know of any papers by the Japanese on their blobby modeling work, which is too bad, because they have probably pushed the technique further than anyone. Bloomenthal has discussed techniques for modeling organic forms (trees, leaves, arms) using blobby techniques [Bloomenthal 1991] (though he prefers the term "implicit modeling") and for polygonizing these using adaptive, surface- tracking octrees [Bloomenthal 1988]. The latter algorithm is not limited to blobby models, but works for any implicit model, not just blobs. Polygonization allows fast z-buffer renderers to be used instead of ray tracers, for interactive previewing of shapes. A less general variant of this algorithm was described in the "marching cubes" paper by [Lorensen 87] and some bugs in this paper have been discussed in the scientific visualization community in the years since. In the sci-vis community, people call them "iso-surfaces" not "implicit surfaces". Meanwhile, in Canada and New Zealand, the Wyvill brothers, and grad students, were doing investigating many of the same ideas: approximations of Gaussians, animation, and other ideas. See their papers listed below. Rather than "blobbies" or "metaballs", they called their creations "soft objects". But it's really the same idea. Bloomenthal and Wyvill collected many good papers on blobby and implicit modeling for a recent SIGGRAPH tutorial (1991?).
![Page 18: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/18.jpg)
Fall 2013 18
Metaball Modeling
Each metaball as a positively charged particle, with a suitable (differentiable) potential function Implicit function f(x,y,z): the potential field formed by summing contribution of all metaballsRendering isosurfaces Surface-based: evaluate the potential at grid
points; use marching cube Ray-casting: for each ray, find the point of
intersection (and corresponding normal for Phong shading)
![Page 19: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/19.jpg)
Fall 2013 19
Example Potential Function (ref)
0)( ,0)(
0)0( ,25.0)0(
24)(
25.0)(
21
21
3
24
gg
gg
rrrg
rrrg
0)( ,0)(
0)0( ,25.0)0(
24)(
25.0)(
21
21
3
24
gg
gg
rrrg
rrrg
![Page 20: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/20.jpg)
Fall 2013 20
Remark
The influence of each charged particle is negligible outside the 1/sqrt(2) concept of “bounding sphere”When casting a ray, only find the metaballs that are activeFor all the active metaballs along a ray, inch along the ray, sum up all active balls to find out the exact point (if any) where the potential exceeds the thresholdDetermine the normal at such points by summing up the normal vectors of the active balls
)(
)()(
xff
xfxf
i
i
![Page 21: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/21.jpg)
Fall 2013 21
Metaballs
![Page 22: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/22.jpg)
Fall 2013 22
More Rendering
Texture coordinate generationMaterial …
Threshold
zero
![Page 23: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/23.jpg)
Fall 2013 23
Equipotential Lines
![Page 24: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/24.jpg)
Fall 2013 24
Examples
![Page 25: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/25.jpg)
Fall 2013 25
PSP Game [Hg]
![Page 26: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/26.jpg)
Fall 2013 26
![Page 27: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/27.jpg)
Fall 2013 27
![Page 28: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/28.jpg)
Fall 2013 28
![Page 29: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/29.jpg)
Fall 2013 29
Metaballs
![Page 30: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/30.jpg)
Fall 2013 30
Snowman
![Page 31: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/31.jpg)
Fall 2013 31
Human Modeling Using Metaballs
35 metaballs Levels of control Mid: thigh, chest, … High: weight, sex, age,
muscle, …
![Page 32: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/32.jpg)
Fall 2013 32
Rendering Metaballs
![Page 33: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/33.jpg)
Fall 2013 33
MC Speed Up specifically for Metaballs (Ref)
Do not evaluate each cellStart from each ball, move along one direction until it reaches the “boundary”
If the cell is not yet evaluated, do so and propagate to its adjacent cells
![Page 34: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/34.jpg)
Fall 2013 34
Related: Implicit Modeling
F(x,y,z) = cF(x,y,z) = x2 + y2 + z2 − R2 Simple geometric description (plane, spheres, cylinders, …)Region separationCan be combined to create complex objects using Boolean operators
![Page 35: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/35.jpg)
Fall 2013 35
Implicit Modeling
At a point x0,y0,z0 the value of
F G = min(F(x0,y0,z0), G(x0,y0,z0))
F G = max(F(x0,y0,z0), G(x0,y0,z0))
F − G = max(F(x0,y0,z0), −G(x0,y0,z0))
F(x,y)=x2+y2 − 22
G(x,y)=(x-3)2+(y-2)2 − 32
F G = 0
To create CSG objects
![Page 36: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/36.jpg)
Fall 2013 36
![Page 37: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/37.jpg)
Fall 2013 37
![Page 38: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/38.jpg)
Volume Rendering
![Page 39: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/39.jpg)
Fall 2013 39
Volume Rendering512x512x12-bit, upto 50 slices in a stackEach slice is spaced 1-5mm apart
![Page 40: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/40.jpg)
Fall 2013 40
![Page 41: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/41.jpg)
Fall 2013 41
Volume Rendering
![Page 42: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/42.jpg)
Fall 2013 42
Ray Casting (ref)
![Page 43: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/43.jpg)
Fall 2013 43
![Page 44: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/44.jpg)
Fall 2013 44
Example
Jaw with skin Jaw without skin
![Page 45: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/45.jpg)
Fall 2013 45
Related Work
Iso-surface extraction Implicit surface/metaballs Thresholded data (medical imaging) Surface from cross-sections
![Page 46: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/46.jpg)
Fall 2013 46
![Page 47: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/47.jpg)
Fall 2013 47
![Page 48: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/48.jpg)
Fall 2013 48
![Page 49: Isosurface](https://reader034.fdocuments.us/reader034/viewer/2022052702/56815427550346895dc227a3/html5/thumbnails/49.jpg)
Fall 2013 49