42
Taku Komura Contouring Scaler Data 1 CAV Lecture 12 Scalar Algorithms: Contouring Computer Animation and Visualisation – Lecture 12 Taku Komura [email protected] Institute for Perception, Action & Behaviour School of Informatics

Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 1

CAV Lecture 12

Scalar Algorithms: Contouring

Computer Animation and Visualisation – Lecture 12

Taku Komura

[email protected]

Institute for Perception, Action & BehaviourSchool of Informatics

Page 2: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 2

CAV Lecture 12

Last Lecture .... Colour mapping

− Designing the colour lookup table / transfer function

− Interpolating in various colour spaces − HSV, RGB, greyscale

Page 3: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 3

CAV Lecture 12

Contouring

Contours explicitly construct the boundary between regions with values

Boundaries correspond to:

− lines in 2D

− surfaces in 3D (known as isosurfaces)

− of constant scalar value

Page 4: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 4

CAV Lecture 12

Example : contours

− lines of constant pressure on a weather map (isobars)

− surfaces of constant density in medical scan (isosurface)− “iso” roughly means equal / similar / same as

Page 5: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 5

CAV Lecture 12

Overview

Contouring - Problem statement - Tracking - Marching squares- Ambiguity problems- Marching cubes- Dividing squares

Volume rendering

Page 6: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 6

CAV Lecture 12

Contours

Contours are boundaries between regions

− they DO NOT just connect points of equal value

− they DO also indicate a TRANSITION from a value below the contour to a value above the contour

Page 7: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 7

CAV Lecture 12

2D contours Data : 2D structured grid of scalar values

Difficult to visualise transitions in data

− use contour at specific scalar value to highlight transition

What is the contour of 5?

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 3

Page 8: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 8

CAV Lecture 12

Methods of Contour Line Generation Approach 1 : Tracking

− find contour intersection with an edge

− track it through the cell boundaries− if it enters a cell then it must exit via one of the

boundaries− track until it connects back onto itself or exits

dataset boundary

− If it is known to be only one contour, stop

− otherwise− Check every edge

Approach 2 : Marching Squares Algorithm

Page 9: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 9

CAV Lecture 12

Marching Squares Algorithm Focus : intersection of contour and cell edges

− how the contour passes through the cell

Assumption: a contour can pass through a cell in only a finite number of ways

− A vertex is inside contour if scalar value > contour

outside contour if scalar value < contour

− 4 vertices, 2 states (in or out)

Page 10: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 10

CAV Lecture 12

Marching Squares

24 = 16 possible cases for each square

− small number so just treat each one separately

No intersection.

Contour intersects edge(s)

Ambiguous case.

Page 11: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 11

CAV Lecture 12

MS Algorithm Overview

Main algorithm

1. Select a cell

2. Calculate inside/outside state for each vertex

3. Look up topological state of cell in state table determine which edge must be intersected (i.e. which of the 16 cases)

4. Calculate contour location for each intersected edge

5. Move (or march) onto next cell • until all cells are visited GOTO 2

?

Page 12: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 12

CAV Lecture 12

MS Algorithm - notes

Intersections for each cell must be merged to form a complete contour

− cells processed independently

− further “merging” computation required

− disadvantage over tracking (continuous tracked contour)

Easy to implement (also to extend to 3D)

Easy to parallelise

Page 13: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 13

CAV Lecture 12

MS : Dealing with ambiguity ?

Choice independent of other choices

− either valid : both give continuous and closed contour

Ambiguous case.Split

Join

Page 14: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 14

CAV Lecture 12

Example : Contour Line Generation

3 main steps for each cell− here using simplified summary model of cases

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 7

No intersection.

Contour intersects 1 edge

Ambiguous case.

Contour intersects 2 edges

Page 15: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 15

CAV Lecture 12

Step 1 : classify vertices

Decide whether each vertex is inside or outside contour

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 7

Contour value =5

No intersection.

Contour intersects 1 edge

Ambiguous case.

Contour intersects 2 edges

Page 16: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 16

CAV Lecture 12

Step 2 : identify cases

Classify each cell as one of the cases

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 7

Contour value =5

No intersection.

Contour intersects 1 edge

Ambiguous case.

Contour intersects 2 edges

Page 17: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 17

CAV Lecture 12

Step 3 : interpolate contour intersections

Determine the edges that are intersected

− compute contour intersection with each of these edges

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 7

Split

No intersection.

Contour intersects 1 edge

Ambiguous case.

Contour intersects 2 edges

Page 18: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 18

CAV Lecture 12

Ambiguous contour

Finally : resolve any ambiguity

− here choosing “join” (example only)

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 7

No intersection.

Contour intersects 1 edge

Ambiguous case.

Contour intersects 2 edges

Join

Page 19: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 19

CAV Lecture 12

MS : Dealing with ambiguity ?One solution

Calculate the value at the middle of the square by interpolation

Check if it is under or above the threshold value Choose the pattern that matches

Page 20: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 20

CAV Lecture 12

Ambiguous contour

Finally : resolve any ambiguity

− here choosing “join” (example only)

0 1 1 3 2

1 3 6 6 3

3 7 9 7 3

2 7 8 6 2

1 2 3 4 7

No intersection.

Contour intersects 1 edge

Ambiguous case.

Contour intersects 2 edges

?

Page 21: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 21

CAV Lecture 12

2D : Example contourA slice through the head

A Quadric function.

(with colour mapping added)

Page 22: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 22

CAV Lecture 12

3D surfaces : marching cubes Extension of Marching Squares to 3D

− data : 3D regular grid of scalar values

− result : 3D surface boundary instead of 2D line boundary

− 3D cube has 8 vertices → 28 = 256 cases to consider− use symmetry to reduce to 15

Problem : ambiguous cases

− cannot simply choose arbitrarily as choice is determined by neighbours

− poor choice may leave hole artefact in surface

Page 23: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 23

CAV Lecture 12

Marching Cubes - cases

Ambiguous cases

− 3,6,10,12,13 – split or join ?

Page 24: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 24

CAV Lecture 12

Example of bad choices

The dark dots are the interior There are edges which are not shared by both cubes Need to make sure there is no contradiction with the

neighbors

Page 25: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 25

CAV Lecture 12

Cracks eliminated

Page 26: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 26

CAV Lecture 12

Other two possible triangulations

Need to decide how the faces are intersected by the contours

Page 27: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 27

CAV Lecture 12

Adding more patterns Adding more patterns for 3,6,10,12,13 [Neilson '91]

Compute the values at the middle of the faces and the cubes

Selecting the pattern that matches

Page 28: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 28

CAV Lecture 12

Results : isosurfaces examples

isosurface of Electron potential isosurface of flow density

− white outline shows bounds of 3D data grid

− surface = 3D contour (i.e. isosurface) through grid

− method : Marching Cubes

Page 29: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 29

CAV Lecture 12

Rendering Metaballs

The marching cubes algorithm is useful for rendering metaballs (implicit functions)

Rendering the surface where F(x,y,z) = 0

D ( x , y , z )=∑i

b i exp(−ai r i)

r i=√( x− xi )2+( y− y i )

2+( z−zi )

2

( x i , y i , zi) : the center of the particle iF ( x , y , z )=D ( x , y , z )−T

Page 30: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 30

CAV Lecture 12

Marching Cubes by CUDA

http://www.youtube.com/watch?v=Y5URxpX8q8U

Page 31: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 31

CAV Lecture 12

Problems with Marching Cubes Generates lots of polygons

− 1-4 triangles per cell intersected

− many unnecessary− e.g. co-planar triangles− Increases the cost of rendering

− As with marching squares separate merging required

Page 32: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 32

CAV Lecture 12

Dividing Cubes Algorithm Marching cubes

− often produces more polygons than pixels for given rendering scale

− Problem : causes high rendering overhead

Solution : Dividing Cubes Algorithm

− draw points instead of polygons (faster rendering)

− Need 1: efficient method to find points on surface

2: method to shade points

Page 33: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 33

CAV Lecture 12

Example : 2D divided squares for 2D lines

Find pixels that intersect contour- Subdivide them

Page 34: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 34

CAV Lecture 12

2D “divided squares” for lines

Find pixels that intersect line- Subdivide them ( usually in 2x2)- Repeat recursively

Page 35: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 35

CAV Lecture 12

2D “divided squares” for lines

Find pixels that intersect line- Subdivide them- Repeat recursively until screen resolution reached• Fill in the pixel with the color of the line

Page 36: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 36

CAV Lecture 12

Extension to 3D Find voxels which intersect surface

Recursively subdivide the voxels that intersect the contour– Until the voxel fits within a pixel

Calculate mid-points of voxels

Calculate the color of the pixel by shading

Page 37: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 37

CAV Lecture 12

Drawing divided cubes surfaces

• surface normal for lighting calculations–interpolate from voxel corner points

• problem with camera zoom–ideally dynamically re-calculate

points–not always computationally possible

Page 38: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 38

CAV Lecture 12

Dividing Cubes : Example

50,000 points

when sampling less than screen resolution structure of surface can be seen

Page 39: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 39

CAV Lecture 12

Viewing the volume data Originally we had the volume data

Contouring: visualisation via surface shading

volumetric data → geometric primitives → screen pixels

Only watching the objects at the threshold value

What if we want to watch other parts?

Page 40: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 40

CAV Lecture 12

Volume RenderingShaded iso-surface – surface based rendering

Volume Rendering – voxel based rendering

Data : 3D dense volume;structured 3D grid of voxelsregular geometry and topology

Page 41: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 41

CAV Lecture 12

Volume Rendering

display the information inside the volume

direct display : volumetric data → screen pixels

use transparency (seeing through volumes)

Volview

(now opensource)

Page 42: Scalar Algorithms: Contouring · 2013. 3. 1. · Taku Komura Contouring Scaler Data 11 CAV Lecture 12 MS Algorithm Overview Main algorithm 1. Select a cell 2. Calculate inside/outside

Taku Komura Contouring Scaler Data 42

CAV Lecture 12

Summary Contouring Theory

− 2D : Marching Squares Algorithm

− 3D : Marching Cubes Algorithm [Lorensen '87]

− marching tetrahedra, ambiguity resolution

− limited to regular structured grids

− 3D Rendering : Dividing Cubes Algorithm [Cline '88]

- Volume Rendering

G.M. Nielson, B Hamann, “The Asymptotic Decider: Resolving the Ambiguity in Marching Cubes”

W.E. Lorensen, H.E. Cline, “Marching Cubes: A high resolution 3D surface construction algorithm”

H.E. Cline, W.E. Lorensen and S. Ludke, “Two algorithms for the three-dimensional reconstruction of tomograms”

Readings