ENV 2006 13.1
Envisioning Information
Lecture 13 – Scientific Visualization
Scalar 3D Data: Isosurfacing
ENV 2006 13.2
• This is often called:
Volume Visualization
because data is defined in a volume.
• Major applications include:– Medical imaging– Environmental science– Engineering – computational fluid dynamics
• Main approaches are:– Slicing and Surface extraction (this morning)– Volume rendering (this afternoon)
Scalar 3D Visualization
ENV 2006 13.3
• SLICING– Take a slice through the 3D volume (often orthogonal to one of the
axes), reducing it to a 2D problem
– See IRIS Explorer Slice module
• ISOSURFACING– Extract a surface of constant value through the volume
– See IRIS Explorer IsosurfaceLat module
Note analogous techniques in 2D visualization:1D cross-sections, and contours (=isolines)
Slicing and Surface Extraction
ENV 2006 13.4
Isosurface Examples
ENV 2006 13.5
Interpolation for Scalar 3D Visualization
ENV 2006 13.6
f000
f001
f100
f101
f111
Volume of data
voxel
vertex
Each voxel transformedto unit cube
f011
f110f010
Notation
ENV 2006 13.7
f000
f001
f100
f101
f111f011
f110f010
Value at any interior pointtaken as value at nearestvertex
FastDiscontinuous
Data Enrichment – Nearest Neighbour Interpolation
ENV 2006 13.8
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
f111f011
f110f010
Data Enricment – Trilinear Interpolation
ENV 2006 13.9
Isosurfacing
ENV 2006 13.10
Lobster – Increasing the Threshold Level
From University of Bonn
ENV 2006 13.11
Accurate Isosurface of Trilinear Interpolant
True isosurface of atrilinear interpolantis a curved surface
cf contouringwhere contours are hyperbola
Because the surface is socomplex we approximateby the triangles shown
ENV 2006 13.12
• 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!
Isosurface Construction
ENV 2006 13.13
There is no portion of the isosurface inside the cube!
These two are easy…
ENV 2006 13.14
Intersections with edges found by inverse linear interpolation
(as in contouring)
Isosurface Construction – One Positive Vertex
ENV 2006 13.15
Joining edge intersections across faces forms a triangleas part of the isosurface
Isosurface Construction – One Positive Vertex
ENV 2006 13.16
Isosurface Construction - Positive Vertices at Opposite Corners
ENV 2006 13.17
• 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
Isosurface Construction
ENV 2006 13.18
Canonical 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
ENV 2006 13.19
Isosurface 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
• The classic algorithm is called Marching Cubes – find isosurface in one cube, then next and so on, marching from cube to cube
ENV 2006 13.20
• 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?
Isosurfacing by Marching Cubes Algorithm
ENV 2006 13.21
• 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?
Ambiguities
ENV 2006 13.22
• As in contouring, another solution is to divide into simpler shapes - here they are tetrahedra
24 tetrahedra in all
Value at centre =average of vertexvalues
Marching Tetrahedra
As in 2D case, thisremoves ambiguities…
Cost is greater numberof triangles whichincreases renderingtime
ENV 2006 13.23
A Rough Guide to Rendering
ENV 2006 13.24
• Surface views for 2D scalar visualization, and isosurfaces for 3D scalar visualization both generate a triangular mesh surface
• Techniques for rendering these meshes rely on :– an understanding of how light is reflected from surfaces - to
define the colour of points within each triangle– generating a 2D image representation of the 3D scene
• Just a simplified view here...
Rendering of Triangles
ENV 2006 13.25
Reflection Model
• There are two major components to consider in modelling reflection of light from a surface
– diffuse reflection: this gives a dull effect; light is scattered evenly and gives the colour of the surface
– specular reflection: this gives shininess of surface; light is reflected at angle of perfect reflection and has colour of incoming light
– total effect is sum of both (plus ambient light)
ENV 2006 13.26
* intensity of reflected lightdepends on angle of light to surface
lightsourceN
L
I* = Intensity of light sourceN = Surface normalL = Direction of light sourceKd = Diffuse-reflectioncoefficient (gives colour)I = Reflected intensity
surface
I = Kd (cos ) I*
* equal reflection in all directions
I, I*, Kd have R, G, B components
Reflection Model – Diffuse Reflection
ENV 2006 13.27
I* = Intensity of light sourceV = View directionR = Direction of perfect
reflected lightKs = Specular-reflection
coefficientI = Reflected intensity
I = Ks( cos )n I*
n varies with materiallarge n : shinysmall n : dull
Intensity depends on angle between eye and reflected light ray - and type of material
V
lightsourceN
LR
eye
surface
Reflection Model – Specular Reflection
ENV 2006 13.28
Effect of Diffuse ReflectionSlide from Alan Watt, University of Sheffield
ENV 2006 13.29
Effect of Diffuse plus Specular ReflectionSlide from Alan Watt, University of Sheffield
ENV 2006 13.30
• To render a scene composed of a number of surfaces (here triangles)…
• ..project the surfaces on to a viewing plane, determining which are visible to the eye, and assigning the colour as given by the lighting model
Rendering
ENV 2006 13.31
view plane
eye point
Perspective Projection
ENV 2006 13.32
view plane
direction ofprojection
Parallel Projection
ENV 2006 13.33
• Thus, by projecting the triangle vertices, we get position of triangle in image - how can we get the colour of pixels within the triangle?
• There are two techniques of increasing complexity - and increasing realism:
– Flat shading
– Gouraud shading
Triangle Rendering
ENV 2006 13.34
• Each point in a triangle given the same intensity
N1N2
N3
N4
Fast and simple- but intensitydiscontinuities at edges
Calculate intensityfor each trianglefrom reflection modelequations
Flat Shading of Triangular Mesh
ENV 2006 13.35
• Aim is to shade mesh as though it were curved surface
Step 1: Approximate normal at each vertex in some way -
one possibility is to average the normals of surrounding triangles
Gouraud Shading of Triangular Mesh
ENV 2006 13.36
Step 2: Calculate the intensityat each vertex using the lightingmodel
I1
I2
I3
I1
I2
I3
Step 3: Calculate the intensityat any interior point by linearinterpolation in triangle
Gouraud Shading of Triangular Mesh
ENV 2006 13.37
• Flat shading:– fast and simple, 1 lighting calc’n done per triangle, all pixels given
same intensity
– discontinuity in intensity across edges
• Gouraud shading– relatively fast, 1 lighting calc’n per vertex, intensity linearly
interpolated from vertex intensities - giving smooth appearance – now industry standard
Comparison of Techniques
ENV 2006 13.38
Constant or Flat Shading -Each Polygon has Constant Shade
ENV 2006 13.39
Gouraud Shading
ENV 2006 13.40
Flat and Gouraud ShadingSlides from Alan Watt, University of Sheffield
ENV 2006 13.41
• Isosurface algorithms generate triangular meshes which can be rendered as just described
• Key is the estimation of vertex normals for Gouraud shading• One possibility is to construct the entire surface, then assign
vertex normals as average of normals of surrounding triangles
Rendering of Isosurfaces
ENV 2006 13.42
• An alternative - generally preferred - is based on fact that surface normal is equal to the gradient vector of f
At (xi,yj,zk), df/dx = 0.5*(f i+1,j,k - f i-1,j,k) df/dy = 0.5*(f i,j+1,k - f i,j-1,k) df/dz = 0.5*(f i,j,k+1 - f i,j,k-1)
This gives us normals at all grid points,and then trilinear interpolation will givenormals at the triangle vertices
Rendering of Isosurfaces
ENV 2006 13.43
Example – brain visualization
http://www.csit.fsu.edu/~futch/iso/Note illumination of isosurface
ENV 2006 13.44
Example – mechanical engineering
• Isosurfacing can be applied to rendering of objects… here an engine
Computer Science, UC Davis
ENV 2006 13.45
Example – medical application
• Vertebrae…
• .. Also from UC Davis
ENV 2006 13.46
References
• Classic paper:
• W.E. Lorensen and H.E. Cline, Marching Cubes : A High Resolution 3D Surface Reconstruction Algorithm. Computer Graphics, vol21, 4, pp163—169, 1987
• Recent paper:
• A. Lopes and K. Brodlie, Improving the Robustness and Accuracy of the Marching Cubes Algorithm for Isosurfacing, IEEE Transactions on Visualization and Computer Graphics, Volume 9, Number 1, pp 16-29, 2003