Hank Childs, University of Oregon Isosurfacing (Part 3)

Slides:



Advertisements
Similar presentations
Part VI NP-Hardness. Lecture 23 Whats NP? Hard Problems.
Advertisements

NP-Hard Nattee Niparnan.
Optimizing Compilers for Modern Architectures Allen and Kennedy, Chapter 13 Compiling Array Assignments.
Advanced Iso-Surfacing Algorithms Jian Huang, CS594, Spring 2002 This set of slides are developed and used by Prof. Han-Wei Shen at Ohio State University.
Games & Adversarial Search Chapter 5. Games vs. search problems "Unpredictable" opponent  specifying a move for every possible opponent’s reply. Time.
CS Section 600 CS Section 002 Dr. Angela Guercio Spring 2010.
Volume Graphics (lecture 5 : Contour Tree / Contour Spectrum) lecture notes acknowledgement : J. Snoeyink, C. Bajaj Bong-Soo Sohn School of Computer Science.
1 The TSP : Approximation and Hardness of Approximation All exact science is dominated by the idea of approximation. -- Bertrand Russell ( )
Hank Childs, University of Oregon November 6 th, 2013 Spatial-Based and Variable-Based Selections.
Isocontour/surface Extractions 2D Isocontour 3D Isosurface.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.
CDS 301 Fall, 2009 Scalar Visualization Chap. 5 September 24, 2009 Jie Zhang Copyright ©
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Query Evaluation. An SQL query and its RA equiv. Employees (sin INT, ename VARCHAR(20), rating INT, age REAL) Maintenances (sin INT, planeId INT, day.
Great Theoretical Ideas in Computer Science.
1 Last lecture  Configuration Space Free-Space and C-Space Obstacles Minkowski Sums.
lecture 4 : Isosurface Extraction
Dynamic Programming CIS 606 Spring 2010.
Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007.
CPSC 668Set 10: Consensus with Byzantine Failures1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
Analysis of Algorithms CS 477/677
Computational Complexity, Physical Mapping III + Perl CIS 667 March 4, 2004.
Covering Algorithms. Trees vs. rules From trees to rules. Easy: converting a tree into a set of rules –One rule for each leaf: –Antecedent contains a.
Tirgul 7. Find an efficient implementation of a dynamic collection of elements with unique keys Supported Operations: Insert, Search and Delete. The keys.
Accelerating Marching Cubes with Graphics Hardware Gunnar Johansson, Linköping University Hamish Carr, University College Dublin.
CHAPTER 10 Recursion. 2 Recursive Thinking Recursion is a programming technique in which a method can call itself to solve a problem A recursive definition.
Marching Cubes A High Resolution 3D Surface Construction Algorithm.
Contour Trees CSE Han-Wei Shen. Level Sets Level set: Level sets is also called Isolines for n=2, isosurface for n=3, or isocontours in general.
CSE 373 Data Structures Lecture 15
Isosurface Extractions 2D Isocontour 3D Isosurface.
Scalar Visualization Chap. 5 September 23, 2008 Jie Zhang Copyright ©
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
CS 8751 ML & KDDSupport Vector Machines1 Support Vector Machines (SVMs) Learning mechanism based on linear programming Chooses a separating plane based.
CS654: Digital Image Analysis Lecture 3: Data Structure for Image Analysis.
Database Management 9. course. Execution of queries.
1 Solving problems by searching This Lecture Chapters 3.1 to 3.4 Next Lecture Chapter 3.5 to 3.7 (Please read lecture topic material before and after each.
Data Structures and Algorithms A. G. Malamos
CSE332: Data Abstractions Lecture 24.5: Interlude on Intractability Dan Grossman Spring 2012.
Hank Childs, University of Oregon Lecture #6 CIS 410/510: Advection (Part 1)
Topic 25 Dynamic Programming "Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to. So I used it.
Hank Childs, University of Oregon Lecture #4 Fields, Meshes, and Interpolation (Part 3)
Hank Childs, University of Oregon Lecture #3 Fields, Meshes, and Interpolation (Part 2)
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Hank Childs, University of Oregon Lecture #10 CIS 410/510: Isosurfacing.
Hank Childs, University of Oregon Lecture #9 CIS 410/510: Advection (Part 4!)
Hank Childs, University of Oregon Volume Rendering, pt 1.
CHAPTER 5 CONTOURING. 5.3 CONTOURING Fig 5.7. Relationship between color banding and contouring Contour line (isoline): the same scalar value, or isovalue.
Hank Childs, University of Oregon Overview of VTK.
ARTIFICIAL INTELLIGENCE (CS 461D) Princess Nora University Faculty of Computer & Information Systems.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
1 Recursive algorithms Recursive solution: solve a smaller version of the problem and combine the smaller solutions. Example: to find the largest element.
Recursion ITI 1121 N. El Kadri. Reminders about recursion In your 1 st CS course (or its equivalent), you have seen how to use recursion to solve numerical.
Advisor : Ku-Yaw Chang Speaker : Ren-Li Shen /6/12.
Hierarchical clustering approaches for high-throughput data Colin Dewey BMI/CS 576 Fall 2015.
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
Solid Modeling Dr. Scott Schaefer.
CSC 143T 1 CSC 143 Highlights of Tables and Hashing [Chapter 11 p (Tables)] [Chapter 12 p (Hashing)]
Model Optimization Wed Nov 16th 2016 Garrett Morrison.
Isosurface Extractions (II)
CIS 410/510: Isosurfacing (pt 2)
Hank Childs, University of Oregon
CSc4730/6730 Scientific Visualization
Hierarchical clustering approaches for high-throughput data
Hank Childs, University of Oregon
Lecture 3 : Isosurface Extraction
Volume Graphics (lecture 4 : Isosurface Extraction)
Presentation transcript:

Hank Childs, University of Oregon Isosurfacing (Part 3)

Announcements Final project – Come in & talk with me Quiz SVN lecture posted this weekend 6B posted this weekend

Project 6 6A: implement marching quads (last week’s lectures), including all 16 cases – Due Nov. 1st 6B: implement marching cubes, but only a subset of the cases – We will use SVN to share our cases

Review

Isolines vs Isosurfaces Isolines: – Input: scalar field over 2D space – Output: lines Isosurfaces: – Input: scalar field over 3D space – Output: surface Commonalities: – Reduce topological dimension by 1 – Produce output where scalar field is constant

Big idea #1: approximate the isolines / isosurface Isolines: represent them with a minimal # of segments Isosurface: represent them with a minimal # of triangles

Big idea #2: pre-computation of all cases Pre-compute correct answers for all 16 cases and store them in a lookup table For each cell, identify which case it is in Then use corresponding lookup table to generate isosurface If you knew which case you had, then you would know how to proceed

The 16 cases Case 0 Case 1-5 Case 6-10 Case 11-15

Problem case: ambiguity!! Solution: just pick one and go with it.

Physical interpretation of ambiguity One way connects them up, the other separates them. What’s right? One way connects them up, the other separates them. What’s right?

Isosurfacing Will follow a very similar game plan. – Pre-compute correct answers for all cases and store them in a lookup table – For each cell, identify which case it is in – Then use corresponding lookup table to generate isosurface

0 Isosurfacing Quiz: where should the isosurface go?

0 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

0 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

V2 Isosurfacing V4 V0 V1 V5 V3 V7 V6 We need conventions! X Z Y

V2 Isosurfacing V4 V0 V1 V5 V3 V7 V6 We need conventions! X Z Y E0 E1 E2 E3

V2 Isosurfacing V4 V0 V1 V5 V3 V7 V6 We need conventions! X Z Y E4 E5 E6 E7

V2 Isosurfacing V4 V0 V1 V5 V3 V7 V6 We need conventions! X Z Y E8 E9 E10 E11

V2 Isosurfacing V4 V0 V1 V5 V3 V7 V6 X Z Y static int edges[12][2] = { {0,1}, {1,3}, {2,3}, {0,2}, {4,5}, {5,7}, {6,7}, {4,6}, {0,4}, {1,5}, {2,6}, {3,7} };

New Material

0 Isosurfacing Quiz: where should the isosurface go?

0 Isosurfacing Quiz: where should the isosurface go?

0 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

1 Isosurfacing Quiz: where should the isosurface go?

0 Isosurfacing This is our last two cells, side by side

0 Isosurfacing Uh oh … ambiguous case is causing problem

Problem case: ambiguity!! 2D Solution: just pick one and go with it. 3D: nope, that doesn’t work here

0 Isosurfacing Uh oh … ambiguous case is causing problem

0 Isosurfacing Let’s try to make something consistent

0 Isosurfacing Let’s try to make something consistent Quiz: how many triangles will we need?

0 Isosurfacing Let’s try to make something consistent No! This is got us into trouble before!

0 Isosurfacing Let’s try to make something consistent

0 Isosurfacing Let’s try to make something consistent

0 Isosurfacing Let’s try to make something consistent

From a different angle…

Summary So Far For Ambiguities Ambiguities cause problems: – If you use one interpretation for one cell, and use the other interpretation for its neighboring cell, then you get gaps – Always making the “intuitive” choice does not solve the problem. If you choose consistently, then you can avoid these problems.

How to make consistent choices “Asymptotic Decider” – Analyze scalar field and make decision Quiz: why does this result in consistent choices?

How to make consistent choices Conventions! – E.g., always separate lowest vertex – This is consistent across faces – This is how VTK (and case_checker) works V1 V3 V5 V7

Project 6B: What should we do? Our choices: – Figure out those conventions and reproduce them perfectly Correct and additional effort – Ignore the conventions and accept gaps Incorrect, but easier Note: ambiguous cases don’t come up a lot in practice

Equality Current case assignment: – F(V) < isovalue: 0 – F(V) > isovalue: 1 What if the field value at a vertex is equal to the isovalue? Quiz: what is the physical interpretation of having F(v) == isovalue?

Equality Strategy Case assignment (incorporating inequality): – F(V) < isovalue: 0 – F(V) >= isovalue: 1

Equality Strategy Case assignment (incorporating inequality): – F(V) < isovalue: 0 – F(V) >= isovalue: 1 Quiz: calculate isolines for isovalue =

Accelerating Isosurfacing Marching Cubes: – For each cell, Assign case Use lookup table for case to generate geometry Quiz: what is the computational complexity of this algorithm? Answer: O(ncells) Quiz: could we improve the computational complexity of this algorithm?

Accelerating Isosurfacing Marching Cubes with Scalar Trees: – Preprocessing step: calculate “scalar tree” – For each cell that contains the isovalue, Assign case Use lookup table for case to generate geometry Quiz: what is the computational complexity of this algorithm? Answer: O(prep time) + O(nSelectedCells*SearchTime) + O(nSelectedCells) Answer: O(prep time) + O(nSelectedCells*SearchTime) + O(nSelectedCells) Quiz: when would this be superior to naïve algorithm?

Scalar Trees The tree consists of an array of (min,max) scalar range pairs per node in the tree. The (min,max) range is determined from looking at the range of the children of the tree node. If the node is a leaf, then the range is determined by scanning the range of its corresponding cell. – Optimization: one leaf corresponds to multiple cells.

Scalar Tree: Example Cell 0 range: 0-2 Cell 1 range: 1-3 Cell 2 range: 0-3 Cell 3 range: 4-8 Cell 4 range: 0-3 Cell 5 range: 2-6 Cell 6 range: 8-10 Cell 7 range: This is the simplest version of this data structure.

Accelerating Isosurfacing Marching Cubes with Scalar Trees: – Preprocessing step: calculate “scalar tree” – For each cell that contains the isovalue, Assign case Use lookup table for case to generate geometry Quiz: what is the computational complexity of this algorithm? Answer: O(nCells*log(nCells)) + O(nSelectedCells*log(nSelectedCells)) + O(nSelectedCells) Answer: O(nCells*log(nCells)) + O(nSelectedCells*log(nSelectedCells)) + O(nSelectedCells) Quiz: when would this be superior to naïve algorithm?

Project 6 6A: implement marching quads (Weds lecture), including all 16 cases 6B: implement marching cubes, but only a subset of the cases – We will use SVN to share our cases – There will be a case checker Ambiguities are hard