5.1 vis_04 data visualization lecture 5 3d scalar visualization part one: isosurfacing

37
5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

Upload: rebecca-shelton

Post on 28-Mar-2015

233 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.1Vis_04

Data VisualizationData Visualization

Lecture 53D Scalar VisualizationPart One: Isosurfacing

Page 2: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.2Vis_04

Three Dimensional Scalar Visualization

Three Dimensional Scalar Visualization

This is often called:Volume Visualization

because data is defined in a volume.

Major applications are:– medical imaging– computational fluid dynamics

Main approaches are:– Surface extraction (this lecture)– Volume rendering (next lecture)

Page 3: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.3Vis_04

Surface ExtractionSurface Extraction

Surface Extraction– SLICING - Take a slice through the

3D volume (often orthogonal to one of the axes), reducing it to a 2D problem

– ISOSURFACING - Extract a surface of constant value through the volume

Note analogous techniques in 2D visualization:1D cross-sections, and contours (=isolines)

Page 4: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.4Vis_04

Isosurface ExamplesIsosurface Examples

Page 5: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.5Vis_04

NotationNotation

f000

f001

f100

f101

f111

Volume of data

voxel

vertex

Each voxel transformedto unit cube

f011

f110f010

Page 6: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.6Vis_04

Data Enrichment - Nearest Neighbour Interpolation

Data Enrichment - Nearest Neighbour Interpolation

f000

f001

f100

f101

f111

f011

f110f010

Value at any interior pointtaken as value at nearestvertex

FastDiscontinuous

Page 7: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.7Vis_04

Data Enrichment - Trilinear Interpolation

Data Enrichment - Trilinear Interpolation

f000

f001

f100

f101

f111

f011

f110f010

Trilinear interpolant is:

f(x,y,z) = f000(1-x)(1-y)(1-z) + f100x(1-y)(1-z) +f010(1-x)y(1-z) + f001(1-x)(1-y)z +f110xy(1-z) + f101x(1-y)z +f011(1-x)yz +f111xyz

Page 8: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.8Vis_04

Data Enrichment - Trilinear Interpolation

Data Enrichment - Trilinear Interpolation

The value at

is found by:(i) 4 1D interpolationsin x (ii) 2 1D interpolationsin y

(iii) 1 1D interpolationin z

f101

f000

f001

f100

f111

f011

f110f010

Page 9: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.9Vis_04

IsosurfacingIsosurfacing

Page 10: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.10Vis_04

Lobster – Increasing the Threshold Level

Lobster – Increasing the Threshold Level

From University of Bonn

Page 11: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.11Vis_04

Isosurface ConstructionIsosurface Construction

For simplicity, we shall work with zero level isosurface, and denote

positive vertices as

There are EIGHT vertices, each can be positive

or negative - so there are 28 = 256 different cases!

Page 12: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.12Vis_04

These two are easy!These two are easy!

There is no portion of the isosurface inside the cube!

Page 13: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.13Vis_04

Isosurface Construction - One Positive Vertex - 1

Isosurface Construction - One Positive Vertex - 1

Intersections with edges found by inverse linear interpolation(as in contouring)

Page 14: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.14Vis_04

Note on Inverse Linear Interpolation

Note on Inverse Linear Interpolation

The linear interpolation formula gives value of f at specified point t:f(x*) = f1 + t ( f2 - f1 )

Inverse linear interpolation gives value of t at which f takes a specified value f*t = (f* - f1)/(f2 –f1)

f1

f2

x1 x2t

f1

f2

x1 x2t

f*

f*

Page 15: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.15Vis_04

Isosurface Construction - One Positive Vertex - 2

Isosurface Construction - One Positive Vertex - 2

Joining edge intersections across faces forms a triangleas part of the isosurface

Page 16: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.16Vis_04

Isosurface Construction -Positive Vertices at Opposite

Corners

Isosurface Construction -Positive Vertices at Opposite

Corners

Page 17: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.17Vis_04

Isosurface ConstructionIsosurface Construction

One can work through all 256 cases in this way - although it quickly becomes apparent that many cases are similar.

For example:– 2 cases where all are positive, or all

negative, give no isosurface– 16 cases where one vertex has opposite

sign from all the rest In fact, there are only 15

topologically distinct configurations

Page 18: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.18Vis_04

Canonical Cases for IsosurfacingCanonical Cases for Isosurfacing

The 256 possible configurationscan be grouped into these 15 canonical cases onthe basis of complementarity (swapping positive and negative)and rotational symmetry

The advantage of doing this isfor ease of implementation - wejust need to code 15 cases not256

Page 19: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.19Vis_04

Isosurface ConstructionIsosurface Construction

In some configurations, just one triangle forms the isosurface

In other configurations ...– ...there can be several triangles– …or a polygon with 4, 5 or 6 points

which can be triangulated A software implementation will

have separate code for each configuration

Page 20: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.20Vis_04

Marching Cubes AlgorithmMarching Cubes Algorithm

Step 1: Classify the eight vertices relative to the isosurface value

V1 V2

V3V4

V5V6

V7V8

1 1 0 0 0 0 0 1

V1 V2 V3 V4 V5 V6 V7 V8

8-bit index ; 1+ve;0 -ve

Code identifies edges intersected:V1V4; V1V5; V2V3; V2V6; V5V8; V7V8; V4V8

Page 21: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.21Vis_04

Marching Cubes AlgorithmMarching Cubes Algorithm

Step 2: Look up table which identifies the canonical configuration

For example:00000000 Configuration 010000000 Configuration 101000000 Configuration 1…11000001 Configuration 6...11111111 Configuration 0

256 entries in table

Page 22: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.22Vis_04

Marching Cubes AlgorithmMarching Cubes Algorithm

Step 3: Inverse linear interpolation along the identified edges will locate the intersection points

Step 4: The canonical configuration will determine how the pieces of the isosurface are created (0, 1, 2, 3 or 4 triangles)

Step 5: Pass triangles to renderer for display

Algorithm marches from cube to cube between slices, and then from slice to slice to produce a smoothly triangulated surface

Page 23: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.23Vis_04

HomeworkHomework

Case 12 has three positive vertices on the bottom plane; and one positive vertex on the top plane, directly above the single negative on the bottom plane.

Without looking at the answer…. Try to work out the isosurface!

Page 24: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.24Vis_04

Isosurfacing by Marching Cubes Algorithm

Isosurfacing by Marching Cubes Algorithm

Advantages– isosurfaces good for extracting

boundary layers– surface defined as triangles in 3D -

well-known rendering techniques available for lighting, shading and viewing ... with hardware support

Disadvantages– shows only a slice of data– ambiguities?

Page 25: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.25Vis_04

AmbiguitiesAmbiguities

Marching cubes suffers from exactly the same problems that we saw in contouring

Case 3: Triangles are chosen toslice off the positive vertices - but couldthey have been drawn another way?

Page 26: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.26Vis_04

Ambiguities on FacesAmbiguities on Faces

On the front face, we have exactly the same ambiguity problem we had with contouring

We can determine which pair of intersections to connect by looking at value at saddle point

Page 27: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.27Vis_04

Ambiguities on FacesAmbiguities on Faces

Trouble occurs because:– trilinear interpolant is only linear

along the edges– on a face, it becomes a bilinear

function ... and for correct topology we must join the correct pair of intersections

Case 3 has two trianglepieces cutting off corners!

6 configurations include ambiguous faces

.. but here is anotherinterpretation!

Page 28: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.28Vis_04

Holes in IsosurfacesHoles in Isosurfaces

Because of the ambiguity, early implementations which did not allow for this could leave holes where cells join

Cases 12 and 3 in adjoiningcells can cause holes

Page 29: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.29Vis_04

Resolving the Face Ambiguities

Resolving the Face Ambiguities

Using the saddle point method to determine the correct behaviour on a face– generates sub-cases for each of the 6

ambiguous configurations– which sub-case is chosen depends on the

value of the saddle-point on the face– note that some configurations have

several ambiguous faces so many subcases arise - eg see config 13!

– if we do not extend the 15 cases there is chance of holes appearing in surface

Page 30: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.30Vis_04

Trilinear InterpolantTrilinear Interpolant

The trilinear function:f(x,y,z) = f000(1-x)(1-y)(1-z)

+f100x(1-y)(1-z) +f010(1-x)y(1-z) + f001(1-x)(1-y)z +f110xy(1-z) +f101x(1-y)z +f011(1-x)yz +f111xyz

is deceptively complex For example, the

isosurface of f(x,y,z) = 0

is a cubic surface

Page 31: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.31Vis_04

Accurate Isosurface of Trilinear Interpolant

Accurate Isosurface of Trilinear Interpolant

True isosurface of atrilinear interpolantis a curved surface

cf contouringwhere contours are hyperbola

We are approximatingby the triangles shown

Page 32: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.32Vis_04

Interior AmbiguitiesInterior Ambiguities

In some cases there can also be ambiguities in the interior

Consider case where opposite corners are positive

Two possibilities: separated or tunnel

Page 33: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.33Vis_04

Resolving the Interior Ambiguity

Resolving the Interior Ambiguity

Decided by value at body saddle point (fx = fy = fz = 0)– Negative: two

separate shells

– Positive: tunnel

Page 34: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.34Vis_04

Marching Cubes 33Marching Cubes 33

Revised marching cubes with correct topology:

– 15 basic canonical configurations

– Ambiguous faces divide 6 into 18 subcases - totalling 27 cases

– Ambiguous interiors (tunnel or no tunnel) divide 6 into 12 cases - totalling 33 cases

Marching Cubes 33

Page 35: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.35Vis_04

Marching TetrahedraMarching Tetrahedra

As in contouring, another solution is to divide into simpler shapes - here they are tetrahedra

24 tetrahedra in all Fit linear functionin each tetrahedron:f(x,y,z) = a + bx +

cy + dzIsosurface of linearfunction is triangle

Value at centre =average of vertexvalues

Page 36: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.36Vis_04

Marching TetrahedraMarching Tetrahedra

A disadvantage of the ‘24’ marching tetrahedra is the large number of triangles which are created - slowing down the rendering time

There are versions that just use 5 tetrahedra

Page 37: 5.1 Vis_04 Data Visualization Lecture 5 3D Scalar Visualization Part One: Isosurfacing

5.37Vis_04

Credits and ReferencesCredits and References

Original marching cubes algorithm

– Lorensen and Cline (1987)

Face ambiguities– Nielson and

Hamann (1992) Interior ambiguities

– Chernyaev (1995) Accurate marching

cubes– Lopes and Brodlie

(2003)

For references see the ‘Resources’ web page