Upload
linette-myrtle-reeves
View
218
Download
1
Tags:
Embed Size (px)
Citation preview
Volumetric and Blobby ObjectsVolumetric and Blobby Objects
Lecture 8 (Modelling)
Isometric DataIsometric Data
Medical Scans (CT, MRI) produce image slices with a regular grid of sample values (for skin, bone, muscle, etc).
The isosurface at a particular isovalue is very difficult to visualize from separate 2D scans.
Solution: convert to a 3D surface.
Isosurface Extraction Methods1. Voxels: an intermediate volumetric representation.
2. Ray Casting: direct rendering for ray tracing.
3. Marching Cubes: convert to a polygon mesh.
VoxelsVoxels
Spatial Occupancy Enumeration: solid is decomposed into identical cells arranged in a rectangular
grid. Elements are generally cubes, called voxels (volume elements).
Scan to Voxel Conversion: If image slices are stacked into pairs then voxels can be created
with image sample values at the corners. A voxel is given the value 1 (solid) if all sample values are greater
than the iso-value and 0 (transparent) otherwise.
Problems: Aliasing and high storage costs. Still requires conversion to polygon-mesh for rendering.
Solutions: 3D anti-aliasing and octree data structure.
Voxels: Octree Data StructureVoxels: Octree Data Structure
Octree: A compact hierarchical encoding of a voxmap (voxel map).
The 3D generalization of a quadtree.
Leaves represent full or empty voxels of different volumes. The voxel dimensions depend on its depth in the tree.
Can merge same value voxels into a single larger voxel.
Marching CubesMarching Cubes Purpose: convert 2D isometric scans into a polygon mesh isosurface
for a particular isovalue . Algorithm:
1. Pair up scans. Create cubes (cells) with sample values at the vertices (4 from the upper scan, 4 from the lower scan).
2. March over all cubes:a) Topology: Place triangles in a cube depending on the isovalues at the cell
vertices.
b) Geometry: position the vertices of these triangles according to the isovalues.
For efficiency exploit inter-cell coherence. Cell vertices (hence some topology and geometry) are shared between cells.
Seminal Paper: Lorensen, W. and Cline, H. “Marching Cubes: A High Resolution 3D Surface Construction Algorithm”, SIGGRAPH ’87, pp. 163-169.
i
Marching Cubes: Triangulating a CellMarching Cubes: Triangulating a Cell Binary coding: A vertex with value
is inside (1) or outside (0) as follows:
The binary codes for all vertices are placed in a bit string used as an index into the triangulation table.
There are combinations. But:
Complementary cases: inverting the cell bits does not change triangulation (reduce to 148 combinations).
Rotational symmetry: many patterns can be reached by rotating the cube (reduce to 14 unique combinations).
else0
if1 ivc
25628
v
Marching Cubes: Positioning VerticesMarching Cubes: Positioning Vertices
Triangulated cells have triangle vertices placed along cell edges.
The exact position and normal of these vertices must depend on the cell values.
Solution: Triangle vertices are positioned at along an edge using linear interpolation:
where is the value at the cell vertex inside the isosurface, and is the external vertex value.
Normals can be similarly interpolated.
More sophisticated interpolation is possible.
t
wx
wit
w x
Blobby ObjectsBlobby Objects
Blobby (or Soft) objects are employed in the creation and animation of smooth shapes.
Use implicit rather then parametric surfaces.
A skeleton is defined by a set of key points, which radiate energy to the surrounding space.
The object boundary is an isosurface at a particular energy level. Isosurface extraction (e.g. marching cubes) is used to find this
boundary.
The position and orientation of keys can be animated. Animation control is easier than for parametric surfaces. Other blobby parameters are amenable to animation.
0)( PF ),,( wvuSP
Blobby Objects: ParametersBlobby Objects: Parameters
Blobby objects consist of a number of keys, each with:1. A position of the key in 3D.
2. An optional set of axes to orient the blob.
3. An implicit field function , which determines the shape of the blob. depends on and . Superellipsoids are popular.
4. Force at the key . Often set to (merges with other blobs) or (creates imprints on other blobs).
5. A Decay function , which defines how intensity tails off from the key towards the blob boundary.
OA
)(PHH O A
F
]1,1[f 11
Blobby Objects: Field CalculationBlobby Objects: Field Calculation
Given a point , the field contribution from a key is calculated as follows:
1. Find .
2. Calculate the distance where the field value turns to zero along the line by solving the field function .
3. If then the key’s contribution is zero. Otherwise, the field value at is (force times decay).
4. A popular decay function is: .
5. Repeat and sum the field value for all keys.
OPr R
OP HRr
P
P ),( RrFf
2
2
1),(R
rRrF
Blobby Objects: ExamplesBlobby Objects: Examples