Download presentation

Presentation is loading. Please wait.

Published byDanielle O'Neil Modified over 4 years ago

1
ENV 200613.1 Envisioning Information Lecture 13 – Scientific Visualization Scalar 3D Data: Isosurfacing Ken Brodlie kwb@comp.leeds.ac.uk

2
ENV 200613.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

3
ENV 200613.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

4
ENV 200613.4 Isosurface Examples

5
ENV 200613.5 Interpolation for Scalar 3D Visualization

6
ENV 200613.6 f 000 f 001 f 100 f 101 f 111 Volume of data voxel vertex Each voxel transformed to unit cube f 011 f 110 f 010 Notation

7
ENV 200613.7 f 000 f 001 f 100 f 101 f 111 f 011 f 110 f 010 Value at any interior point taken as value at nearest vertex Fast Discontinuous Data Enrichment – Nearest Neighbour Interpolation

8
ENV 200613.8 The value at is found by: (i) 4 1D interpolations in x (ii) 2 1D interpolations in y (iii) 1 1D interpolation in z f 101 f 000 f 001 f 100 f 111 f 011 f 110 f 010 Data Enricment – Trilinear Interpolation

9
ENV 200613.9 Isosurfacing

10
ENV 200613.10 Lobster – Increasing the Threshold Level From University of Bonn

11
ENV 200613.11 Accurate Isosurface of Trilinear Interpolant True isosurface of a trilinear interpolant is a curved surface cf contouring where contours are hyperbola Because the surface is so complex we approximate by the triangles shown

12
ENV 200613.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 2 8 = 256 different cases! Isosurface Construction

13
ENV 200613.13 There is no portion of the isosurface inside the cube! These two are easy…

14
ENV 200613.14 Intersections with edges found by inverse linear interpolation (as in contouring) Isosurface Construction – One Positive Vertex

15
ENV 200613.15 Joining edge intersections across faces forms a triangle as part of the isosurface Isosurface Construction – One Positive Vertex

16
ENV 200613.16 Isosurface Construction - Positive Vertices at Opposite Corners

17
ENV 200613.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

18
ENV 200613.18 Canonical Cases for Isosurfacing The 256 possible configurations can be grouped into these 15 canonical cases on the basis of complementarity (swapping positive and negative) and rotational symmetry The advantage of doing this is for ease of implementation - we just need to code 15 cases not 256

19
ENV 200613.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

20
ENV 200613.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

21
ENV 200613.21 Marching cubes suffers from exactly the same problems that we saw in contouring Case 3: Triangles are chosen to slice off the positive vertices - but could they have been drawn another way? Ambiguities

22
ENV 200613.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 vertex values Marching Tetrahedra As in 2D case, this removes ambiguities… Cost is greater number of triangles which increases rendering time

23
ENV 200613.23 A Rough Guide to Rendering

24
ENV 200613.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

25
ENV 200613.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)

26
ENV 200613.26 * intensity of reflected light depends on angle of light to surface light source N L I* = Intensity of light source N = Surface normal L = Direction of light source K d = Diffuse-reflection coefficient (gives colour) I = Reflected intensity surface I = K d (cos ) I* * equal reflection in all directions I, I*, K d have R, G, B components Reflection Model – Diffuse Reflection

27
ENV 200613.27 I* = Intensity of light source V = View direction R = Direction of perfect reflected light K s = Specular-reflection coefficient I = Reflected intensity I = K s ( cos ) n I* n varies with material large n : shiny small n : dull Intensity depends on angle between eye and reflected light ray - and type of material V light source N L R eye surface Reflection Model – Specular Reflection

28
ENV 200613.28 Effect of Diffuse Reflection Slide from Alan Watt, University of Sheffield

29
ENV 200613.29 Effect of Diffuse plus Specular Reflection Slide from Alan Watt, University of Sheffield

30
ENV 200613.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

31
ENV 200613.31 view plane eye point Perspective Projection

32
ENV 200613.32 view plane direction of projection Parallel Projection

33
ENV 200613.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

34
ENV 200613.34 Each point in a triangle given the same intensity N1 N2 N3 N4 Fast and simple - but intensity discontinuities at edges Calculate intensity for each triangle from reflection model equations Flat Shading of Triangular Mesh

35
ENV 200613.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

36
ENV 200613.36 Step 2: Calculate the intensity at each vertex using the lighting model I1I1 I2I2 I3I3 I1I1 I2I2 I3I3 Step 3: Calculate the intensity at any interior point by linear interpolation in triangle Gouraud Shading of Triangular Mesh

37
ENV 200613.37 Flat shading: –fast and simple, 1 lighting calcn done per triangle, all pixels given same intensity –discontinuity in intensity across edges Gouraud shading –relatively fast, 1 lighting calcn per vertex, intensity linearly interpolated from vertex intensities - giving smooth appearance – now industry standard Comparison of Techniques

38
ENV 200613.38 Constant or Flat Shading - Each Polygon has Constant Shade

39
ENV 200613.39 Gouraud Shading

40
ENV 200613.40 Flat and Gouraud Shading Slides from Alan Watt, University of Sheffield

41
ENV 200613.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

42
ENV 200613.42 An alternative - generally preferred - is based on fact that surface normal is equal to the gradient vector of f At (x i,y j,z k ), 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 give normals at the triangle vertices Rendering of Isosurfaces

43
ENV 200613.43 Example – brain visualization http://www.csit.fsu.edu/~futch/iso/Note illumination of isosurface

44
ENV 200613.44 Example – mechanical engineering Isosurfacing can be applied to rendering of objects… here an engine Computer Science, UC Davis

45
ENV 200613.45 Example – medical application Vertebrae….. Also from UC Davis

46
ENV 200613.46 References Classic paper: W.E. Lorensen and H.E. Cline, Marching Cubes : A High Resolution 3D Surface Reconstruction Algorithm. Computer Graphics, vol21, 4, pp163169, 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

Similar presentations

OK

CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.

CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google