Top Banner
Volumetric and Blobby Objects Volumetric and Blobby Objects Lecture 8 (Modelling)
11

Volumetric and Blobby Objects Lecture 8 (Modelling)

Dec 25, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Volumetric and Blobby Objects Lecture 8 (Modelling)

Volumetric and Blobby ObjectsVolumetric and Blobby Objects

Lecture 8 (Modelling)

Page 2: Volumetric 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.

Page 3: Volumetric and Blobby Objects Lecture 8 (Modelling)

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.

Page 4: Volumetric and Blobby Objects Lecture 8 (Modelling)

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.

Page 5: Volumetric and Blobby Objects Lecture 8 (Modelling)

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

Page 6: Volumetric and Blobby Objects Lecture 8 (Modelling)

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

Page 7: Volumetric and Blobby Objects Lecture 8 (Modelling)

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

Page 8: Volumetric and Blobby Objects Lecture 8 (Modelling)

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

Page 9: Volumetric and Blobby Objects Lecture 8 (Modelling)

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

Page 10: Volumetric and Blobby Objects Lecture 8 (Modelling)

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

Page 11: Volumetric and Blobby Objects Lecture 8 (Modelling)

Blobby Objects: ExamplesBlobby Objects: Examples