Overview Overview l Introduction l Background l Ingredients for a - - PDF document

overview overview
SMART_READER_LITE
LIVE PREVIEW

Overview Overview l Introduction l Background l Ingredients for a - - PDF document

Level-Of-Detail (LOD) Data Structures for Level-Of-Detail (LOD) Data Structures for Tetrahedral Meshes Tetrahedral Meshes Leila De Floriani Leila De Floriani University of Maryland, College Park (USA) and University of Genova, Genova (Italy)


slide-1
SLIDE 1

1 1

Level-Of-Detail (LOD) Data Structures for Level-Of-Detail (LOD) Data Structures for Tetrahedral Meshes Tetrahedral Meshes

Leila De Floriani Leila De Floriani University of Maryland, College Park (USA) and University of Genova, Genova (Italy)

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l Ingredients for a Level-Of-Detail (LOD) model l Selective refinement queries on volume data sets l Data structures for irregular meshes l Data structures for regular meshes l Selective refinement algorithms l Conclusions: results and research issues

slide-2
SLIDE 2

2 2

VIS 2003 Tutorial, October 20, 2003

Why Level-Of-Detail (LOD) Models?

Why Level-Of-Detail (LOD) Models?

l l

Aim: Aim: modeling and visualizing large volume data sets large volume data sets

l l

LOD Model: LOD Model: – reduces the size size of the output data set – allows varying the accuracy varying the accuracy in different parts of the field domain – can be generated off-line generated off-line through an accurate simplification algorithm

l

We focus on LOD models LOD models based on tetrahedral meshes tetrahedral meshes

VIS 2003 Tutorial, October 20, 2003

LOD Models LOD Models

l

They are built off-line

  • ff-line through a simplification process (top-down refinement
  • r bottom-up decimation)

l

They encode all atomic updates performed during simplification

l

They are queried on-line

  • n-line to extract variable-resolution meshes
  • ff-line
  • n-line
slide-3
SLIDE 3

3 3

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l l Background

Background

l Ingredients for a Level-Of-Detail (LOD) model l Selective refinement queries on volume data sets l Data structures for irregular meshes l Data structures for regular meshes l Selective refinement algorithms l Conclusions: results and research issues

VIS 2003 Tutorial, October 20, 2003

Tetrahedral Meshes Tetrahedral Meshes

Tetrahedral mesh: Tetrahedral mesh: connected set of tetrahedra such that – their union covers the field domain – any two distinct tetrahedra have disjoint interiors Regular (structured) mesh Regular (structured) mesh: : generated by a recursive subdivision process based

  • n points on a regular grid
slide-4
SLIDE 4

4 4

VIS 2003 Tutorial, October 20, 2003

Conforming Tetrahedral Meshes Conforming Tetrahedral Meshes

Conforming meshes Conforming meshes: : any two intersecting cells meet at a common lower-dimensional cell (face, edge, or vertex)

Non-conforming Non-conforming mesh mesh Conforming Conforming mesh mesh In 2D In 2D In 3D In 3D Non-conforming Non-conforming mesh mesh Conforming Conforming mesh mesh t

VIS 2003 Tutorial, October 20, 2003

Why Why Conforming Meshes? Conforming Meshes?

l

Tetrahedral meshes are used as decompositions of the domain of a scalar field

l

Conforming meshes are a way of ensuring (at least C0) continuity in the resulting approximation

C C0 surface surface Non-continuous Non-continuous surface surface Non-conforming Non-conforming mesh mesh Conforming Conforming mesh mesh

slide-5
SLIDE 5

5 5

VIS 2003 Tutorial, October 20, 2003

Data structures for tetrahedral meshes Data structures for tetrahedral meshes

Indexed data structure with adjacencies: Indexed data structure with adjacencies: – vertex coordinates – for each tetrahedron:

  • links to its four vertices
  • links to its four face-adjacent tetrahedra

Indexed data structure: Indexed data structure:

– vertex coordinates – for each tetrahedron: links to its four vertices

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l l Ingredients for a Level-Of-Detail (LOD) model

Ingredients for a Level-Of-Detail (LOD) model

l Selective refinement queries on volume data sets l Data structures for irregular meshes l Data structures for regular meshes l Selective refinement algorithms l Conclusions: results and research issues

slide-6
SLIDE 6

6 6

VIS 2003 Tutorial, October 20, 2003

Ingredients for a LOD model Ingredients for a LOD model

l

The coarsest coarsest mesh mesh approximation

l

The collection of all updates collection of all updates performed

  • n a mesh during simplification

(refinement or decimation)

l

A dependency relation dependency relation among updates

l l

The The dependency relation dependency relation drives the extraction of meshes at intermediate resolutions

VIS 2003 Tutorial, October 20, 2003

Ingredients for a LOD model: Ingredients for a LOD model: updates updates

In simplification simplification - refinement refinement or decimation decimation - an initial mesh undergoes a sequence of updates. Refinement: Refinement: from coarse from coarse to fine to fine Update Update = replacement of a set of tetrahedra in a mesh with another set which covers the same portion of the domain

slide-7
SLIDE 7

7 7

VIS 2003 Tutorial, October 20, 2003

Ingredients for a LOD model: Ingredients for a LOD model: updates updates

Decimation: Decimation: from fine to from fine to coarse coarse Refinement Refinement

VIS 2003 Tutorial, October 20, 2003

Ingredients for a LOD model: Ingredients for a LOD model: dependency dependency relation relation

l l

Dependency relation Dependency relation between pairs of refinement updates: an update B directly depends directly depends on an update A if and only if if and only if some tetrahedron introduced by A is removed by B

l

The transitive closure transitive closure of the dependency relation defines a partial order partial order

Updates 1 and 2 are independent ndependent Update 3 depends depends on both both updates 1 and 2

slide-8
SLIDE 8

8 8

VIS 2003 Tutorial, October 20, 2003

LOD Models: LOD Models: properties properties

From a LOD model , we can extract any mesh obtained from the coarsest mesh by applying any sequence of refinement updates compatible with the dependency relation

Mesh A: Mesh A: initial mesh initial mesh Mesh C: Mesh C: A + update 2 A + update 2 Mesh E: A + updates 1, 2, 3 (or 2,1,3) Mesh E: A + updates 1, 2, 3 (or 2,1,3) Mesh B: A + update 1 Mesh B: A + update 1 Mesh D: A + updates 1 and 2 Mesh D: A + updates 1 and 2 (or 2 and 1) (or 2 and 1)

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l Ingredients for a Level-Of-Detail (LOD) model l l Selective refinement queries on volume data sets

Selective refinement queries on volume data sets

l Data structures for irregular meshes l Data structures for regular meshes l Selective refinement algorithms l Conclusions: results and research issues

slide-9
SLIDE 9

9 9

VIS 2003 Tutorial, October 20, 2003

Selective refinement queries Selective refinement queries

[

[Cignoni Cignoni at el., 2003] at el., 2003]

l

A set of basic queries for analysis analysis and visualization visualization of a volume data set at different levels of detail

l

All instances of selective refinement selective refinement: extract extract from a LOD model a mesh mesh with the smallest smallest possible number of tetrahedra satisfying some user-defined criterion based criterion based

  • n LOD
  • n LOD

l

LOD depends on approximation error approximation error

VIS 2003 Tutorial, October 20, 2003

Uniform LOD Uniform LOD

Input Input parameters parameters: : an accuracy threshold E Error Error(t) (t)£ £E E for every tetrahedron t t in the extracted mesh

Buckyball Buckyball 12.5 million 12.5 million tetrahedra tetrahedra E = 5% of the field range E = 5% of the field range 274,460 274,460 tetrahedra tetrahedra

slide-10
SLIDE 10

10 10

VIS 2003 Tutorial, October 20, 2003

Variable Variable LOD LOD based on spatial location based on spatial location

Input Input parameters parameters: : a Region Region of interest

  • f interest (

(ROI) R ROI) R and two two accuracy thresholds accuracy thresholds E E1 and and E E2 (E1<E2): – Error(t) £ E1 for each tetrahedron t interesecting R – Error(t) £ E2 for any other tetrahedron

ROI = box ROI = box E=0.01% in the ROI E=0.01% in the ROI size = 1/3 of reference mesh size = 1/3 of reference mesh BluntFin BluntFin: : 222,528 222,528 tetrahedra tetrahedra ROI =cross plane ROI =cross plane E= 2% in the ROI E= 2% in the ROI size = 7% of reference mesh size = 7% of reference mesh Turbine Blade Turbine Blade 576,566 576,566 tetrahedra tetrahedra

VIS 2003 Tutorial, October 20, 2003

Variable LOD Variable LOD based on field values based on field values

Input Input parameters parameters: : a collection collection of

  • f field values

field values FV FV and two accuracy thresholds two accuracy thresholds E1 and E2 (E1<E2): – Error(t) £ E1 for every tetrahedron t interesecting the isosurfaces of values in FV – Error(t) £E2 for any other tetrahedron

E = 0.1% along the E = 0.1% along the blue isosurface blue isosurface 25% size of the mesh 25% size of the mesh at uniform LOD with at uniform LOD with error = 0.1% error = 0.1% Plasma: Plasma: 1,500,282 1,500,282 tetrahedra tetrahedra

slide-11
SLIDE 11

11 11

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l Ingredients for a Level-Of-Detail (LOD) model l Selective refinement queries on volume data sets l l Data structures for irregular meshes

Data structures for irregular meshes

l Data structures for regular meshes l Selective refinement algorithms l Conclusions: results and research issues

VIS 2003 Tutorial, October 20, 2003

LOD data structures for irregular meshes LOD data structures for irregular meshes

l l

Graph-based data structures Graph-based data structures versus versus tree-based data structures tree-based data structures: :

– – Graph-based data structures: Graph-based data structures: dependency relation described by a DAG DAG (Directed Acyclic Graph) – – Tree-based data structures: Tree-based data structures: dependency relation described by a tree tree and by a numbering scheme

l l

Explicit Explicit versus versus implicit representation implicit representation of the

  • f the updates

updates: :

– – Explicit representations: Explicit representations:

  • all tetrahedra affected by an update are encoded explicitly

explicitly – – Implicit representations: Implicit representations:

  • procedural description

procedural description of the update

slide-12
SLIDE 12

12 12

VIS 2003 Tutorial, October 20, 2003

An explicit data structure An explicit data structure [De Floriani, Magillo,

[De Floriani, Magillo, Puppo Puppo, 1997] , 1997]

l l

Dependency relation Dependency relation encoded as a DAG DAG

l

Each tetrahedron tetrahedron created by any update is encoded once

  • nce through the indexes to its four

indexes to its four vertices vertices

l

For each update u: update u: – number and indexes of the tetrahedra deleted by u – number of tetrahedra created by u and index of the first tetrahedron created by u

l l

Dimension-independent implementation Dimension-independent implementation in a C++ C++ library library available in the public domain

http://www.disi.unige.it/person/MagilloP/MT/

VIS 2003 Tutorial, October 20, 2003

An explicit data structure: storage cost An explicit data structure: storage cost

l l

360n 360n bytes when built through half-edge collapse

l l

3.5 times 3.5 times the cost of encoding the mesh at full resolution in an indexed data structure indexed data structure

l l

1.8 times 1.8 times the cost of encoding the mesh at full resolution in an indexed data structure with indexed data structure with adjacencies adjacencies

l l

Remark: Remark: cost of encoding error information has not been considered

slide-13
SLIDE 13

13 13

VIS 2003 Tutorial, October 20, 2003

Implicit LOD data structures for irregular meshes Implicit LOD data structures for irregular meshes

l

LOD model built through full-edge collapse full-edge collapse (Full-Edge MT Full-Edge MT)

[Cignoni et al., 2003]:

dependency relation dependency relation represented as a binary tree binary tree

l

LOD model built through half-edge collapse half-edge collapse (Half-Edge MT) Half-Edge MT)

[Danovaro and De Floriani, 2002]:

dependency relation dependency relation represented as a DAG DAG

VIS 2003 Tutorial, October 20, 2003

Full-edge collapse/vertex split Full-edge collapse/vertex split

l

Contract an edge e =(v e =(v1

1,v

,v2

2)

) to a new new vertex v: e =(v v: e =(v1

1,v

,v2

2)

)fi fi v v

l l

(Full-)vertex split: (Full-)vertex split: inverse of full-edge collapse

Full-edge collapse Full-vertex split Full-edge collapse Full-vertex split

On average, 33 On average, 33 tetrahedra are modified and 6 6 of them are collapsed into triangles In 2D In 2D In 3D In 3D

slide-14
SLIDE 14

14 14

VIS 2003 Tutorial, October 20, 2003

Full-Edge Multi-Tessellation (MT) Full-Edge Multi-Tessellation (MT) [

[Cignoni Cignoni et al., 2003] et al., 2003]

l

Based on full-edge collapse full-edge collapse

l l

Updates: Updates: – – full-edge collapses to the edge mid- full-edge collapses to the edge mid- point and full-vertex splits point and full-vertex splits

l l

Dependency relation: Dependency relation: – – view-dependent tree view-dependent tree [El Sana and

Varshney, 1999] - implicit encoding of

the dependency relation specific for full-edge collapse

Full-edge collapse Full-vertex split

VIS 2003 Tutorial, October 20, 2003

Encoding a view-dependent tree Encoding a view-dependent tree

l

A binary tree binary tree used to encode the dependency dependency between vertex v v and vertices v v1 and v v2 where e=(v e=(v1,v ,v2) )fi fi v v

l

All dependencies captured through vertex vertex enumeration enumeration: – vertices of the initial mesh (leaves in tree) are arbitrarily arbitrarily numbered – the other vertices (internal nodes) are numbered in progressive order progressive order of their creation

12 11 10 1 4 3 6 2 5 7 9 8

slide-15
SLIDE 15

15 15

VIS 2003 Tutorial, October 20, 2003

View-dependent tree: vertex-split rule View-dependent tree: vertex-split rule

l

Vertex v

v can be split

split into edge (v

(v1

1,v

,v2

2)

)

  • nly if all adjacent vertices of v

v have a label

less than less than v

v.

12 11 10 1 4 3 6 2 5 7 9 8

VIS 2003 Tutorial, October 20, 2003

View-dependent tree: edge-collapse rule View-dependent tree: edge-collapse rule

l

Edge (v

(v1

1,v

,v2

2)

)

can be collapsed collapsed into a vertex v

v

  • nly if all vertices adjacent to v

v1

1 and v

v2

2

are roots roots, or their parents have a label greater than greater than v

v.

12 11 10 1 4 3 6 2 5 7 9 8

slide-16
SLIDE 16

16 16

VIS 2003 Tutorial, October 20, 2003

Encoding a full-edge collapse/vertex-split Encoding a full-edge collapse/vertex-split

l l

Geometric information Geometric information: offset values for coordinate coordinate and field values field values

l l

Error Error information

l l

Topological information Topological information (for performing vertex split): one bit

  • ne bit for each tetrahedron

each tetrahedron t t in the star of v v : – bit=0 if t t becomes incident in v v1 – bit=1 if t t becomes incident in v2

l

Any face common to tetrahedra marked differently expands into a tetrahedron incident at edge e=(v e=(v1, v , v2) )

Full-edge collapse Full-vertex split In vertex split, In vertex split, yellow yellow and and green green faces become faces become tetrahedra tetrahedra

VIS 2003 Tutorial, October 20, 2003

Full-edge MT: storage cost Full-edge MT: storage cost

l l

Updates: Updates: – Offset values for coordinate coordinate and field values: field values: 8n bytes 8n bytes – – Topological information Topological information 8n bytes 8n bytes for the for the bitstream bitstream (at most 64 tetrahedra in the star

  • f v):

l l

View-dependent tree: View-dependent tree: 12n bytes 12n bytes

l l

Total cost: Total cost: 28n bytes 28n bytes

l l

With respect to With respect to mesh at full resolution mesh at full resolution: : – – 33% 33% wrt indexed representation – – 15% 15% wrt indexed + adjacencies

l l

Remark: Remark: cost of encoding error information has not been considered

Full-edge collapse Full-vertex split

slide-17
SLIDE 17

17 17

VIS 2003 Tutorial, October 20, 2003

Half-edge collapse/vertex split Half-edge collapse/vertex split

l

Contract an edge e =(v,w) e =(v,w) to vertex w: w: e =(v,w) e =(v,w)fi fi w w

l l

(Half-)vertex split: (Half-)vertex split: inverse operation fi insertion of vertex v v

Half-edge collapse Half-vertex split Half-edge collapse Half-vertex split

On average, 16 On average, 16 tetrahedra are modified and 5 5 of them are collapsed into triangles In 2D In 2D In 3D In 3D

VIS 2003 Tutorial, October 20, 2003

Half-Edge Multi-Tessellation (MT) Half-Edge Multi-Tessellation (MT)

[ [Danovaro Danovaro et al., 2002] et al., 2002]

l

Based on half-edge collapse half-edge collapse

l l

Updates: Updates: half-edge collapses and half-vertex splits

l l

Dependency relation: Dependency relation: – compact DAG encoding [Klein

and Gumhold, 1998]

– each arc in the DAG is encoded

  • nce

Half-edge collapse Half-vertex split

slide-18
SLIDE 18

18 18

VIS 2003 Tutorial, October 20, 2003

Encoding half-edge collapse and half-vertex split Encoding half-edge collapse and half-vertex split

l l

Geometric information: Geometric information: coordinates

coordinates and field value field value at vertex v v

l l

Error Error associated with update associated with update

l l

Topological information: Topological information:

– – for for half-edge collapse half-edge collapse (v, w) (v, w)fi fi w w vertex w encoded as:

  • a tetrahedron

tetrahedron t t in the star of v v

  • index

index of w w inside t t – – for for half-vertex split half-vertex split w w fi fi (v, w) (v, w) the region of influence R: region of influence R: the portion of the star of w w affected by half-edge split

  • starting face f:

starting face f: a tetrahedron tetrahedron t t in the star of v v + index of f f in t t

  • traversal of the tetrahedral partition of R

traversal of the tetrahedral partition of R encoded as a bit stream

Half-edge collapse Half-vertex split

VIS 2003 Tutorial, October 20, 2003

Encoding the region of influence Encoding the region of influence

Encoding a breadth-first traversal breadth-first traversal of the dual graph of the tetrahedral partition of the region of influence region of influence

Traversal starts at the encoded tetrahedron t t entering t t from face f f The three remaining faces f f’ ’ of each visited tetrahedron t t’ ’ are labeled as follows: label( label( f f’ ’) =1 ) =1 if the tetrahedron adjacent to t t’ ’ along f f’ ’ must be visited label( label( f f’ ’) =0 ) =0 otherwise Current tetrahedron: green green Visited tetrahedra: yellow yellow Tetrahedra to be visited: white white

slide-19
SLIDE 19

19 19

VIS 2003 Tutorial, October 20, 2003

Half-Edge MT: storage cost Half-Edge MT: storage cost

l l

Update: Update: 16n 16n bytes – Coordinates and field of v v: 8n 8n bytes – Connectivity information: 8n 8n bytes

  • bitstream : 45n

45n bits

  • starting face (7 bits) + vertex w (7 bits):

14n 14n bits

l l

DAG: DAG: 36n 36n bytes

l l

Total cost: 52n Total cost: 52n bytes

l

With respect to mesh at full resolution mesh at full resolution: : – – 50% 50% wrt indexed representation – – 25% 25% wrt indexed + adjacencies

l l

Remark: Remark: cost of encoding error information has not been considered

Half-edge collapse Half-vertex split

VIS 2003 Tutorial, October 20, 2003

Half-edge and full-edge MT:storage costs Half-edge and full-edge MT:storage costs

Full-edge MT: 53% 53% of space

  • f Half-edge MT

36 16 12 16

10 20 30 40 50 60

Update 16 16 DAG 36 12 Half-edge MT Full-edge MT

50 100 150 200 250 300 350 400

Half MT Full MT Explicit Indexed Indexed +adj

Storage cost

Comparisons with explicit data structure and mesh at full resolution

slide-20
SLIDE 20

20 20

VIS 2003 Tutorial, October 20, 2003

Half-edge versus full-edge MT: Half-edge versus full-edge MT: size of the

size of the extracted meshes extracted meshes

Data from 7 7 different data sets On x axis: On x axis: error thresholds as a percentage of the field range On y axis: On y axis: ratio between number of tetrahedra in the extracted mesh and the mesh at full resolution

Uniform LOD Uniform LOD Variable LOD based on field Variable LOD based on field values values

VIS 2003 Tutorial, October 20, 2003

Half-edge versus full-edge MT Half-edge versus full-edge MT

l l

Size of the meshes Size of the meshes extracted from a Half-edge MT versus size of the meshes extracted from a Full-edge MT on average: – – 30% 30% at uniform LOD – – 68% 68% at variable LOD

l

In a Half-edge MT, Half-edge MT, updates are of smaller size: smaller size: on average, 11 11 tetrahedra affected by a vertex split (half-edge) versus 27 27 (full-edge)

l l

Our current work: Our current work:

– a modified view-dependent tree view-dependent tree for half-edge collapse: about 65% 65% of the space required by our current DAG implementation – a new encoding for half-edge collapses half-edge collapses (consistent with the view- dependent tree implementation)

slide-21
SLIDE 21

21 21

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l Ingredients for a Level-Of-Detail (LOD) model l Selective refinement queries on volume data sets l Data structures for irregular meshes l l Data structures for regular meshes

Data structures for regular meshes

l Selective refinement algorithm l Conclusions: results and research issues

VIS 2003 Tutorial, October 20, 2003

LOD models for regular meshes LOD models for regular meshes

l l

Models generated by Models generated by red/green tetrahedron red/green tetrahedron refinement refinement [Bank’83;Bey’95; Grosso’97;Zhang’95]

– based on the recursive partition of a tetrahedron into eight tetrahedra – – Drawback: Drawback: non-conforming meshes are generated and must be made conforming through specific irregular refinement rules In 2D In 2D

slide-22
SLIDE 22

22 22

VIS 2003 Tutorial, October 20, 2003

LOD Models for regular meshes LOD Models for regular meshes

l l

Models generated by Models generated by tetrahedron/octahedron refinement tetrahedron/octahedron refinement [Greiner’00;Chang’03] – recursive partition of the space into tetrahedra and octahedra – objective: only two congruent shapes

l l

Models generated by Models generated by regular tetrahedron bisection regular tetrahedron bisection [Rivara’92;

Zhou’97; Ohlberger’97; Gerstner‘99-00;Nielson’00; Lee’00; Pascucci’02; Gregorski’02]

VIS 2003 Tutorial, October 20, 2003

Regular tetrahedron bisection Regular tetrahedron bisection

A tetrahedron is bisected along its longest longest edge

1/2 pyramid 1/2 pyramid 1/4 pyramid 1/4 pyramid 1/8 pyramid 1/8 pyramid Tetrahedron bisection applied recursively to a cubic cubic domain generates three three classes of congruent congruent tetrahedral shapes

slide-23
SLIDE 23

23 23

VIS 2003 Tutorial, October 20, 2003

Regular tetrahedron bisection Regular tetrahedron bisection

Tetrahedron bisection may generate non-conforming non-conforming meshes meshes To generate conforming conforming meshes meshes, all tetrahedra sharing an edge must be split at the same time

diamond diamond The tetrahedra which are split at the same time form a diamond diamond

VIS 2003 Tutorial, October 20, 2003

Diamonds Diamonds

Three kinds of diamonds diamonds – – plane-aligned: plane-aligned: four 1/2 pyramids – – axis-aligned axis-aligned: eight 1/4 pyramids – – non-aligned: non-aligned: six 1/8 pyramids

plane-aligned plane-aligned axis-aligned axis-aligned non-aligned non-aligned 1/2 pyramid 1/2 pyramid 1/4 pyramid 1/4 pyramid 1/8 pyramid 1/8 pyramid

slide-24
SLIDE 24

24 24

VIS 2003 Tutorial, October 20, 2003

LOD data structures based on tetrahedron LOD data structures based on tetrahedron bisection bisection

l l

Hierarchy of Hierarchy of Tetrahedra Tetrahedra: binary forest of binary forest of tetrahedra tetrahedra encoding the nested structure defined by tetrahedron bisection

l l

DAG of diamonds: DAG of diamonds: – – DAG of DAG of tetrahedra tetrahedra clusters clusters which are split at the same time to produce a conforming mesh – DAG encodes the dependency relation among diamonds

VIS 2003 Tutorial, October 20, 2003

Hierarchy of Hierarchy of Tetrahedra Tetrahedra (HT) (HT)

l

Each node node in the hierarchy corresponds to a tetrahedron tetrahedron in the nested domain partition

l

The children children of a node t t are the tetrahedra

  • btained by splitting t

t along its longest edge

t

It extends the hierarchy of right It extends the hierarchy of right triangles used in terrain modeling triangles used in terrain modeling

slide-25
SLIDE 25

25 25

VIS 2003 Tutorial, October 20, 2003

Hierarchy of Hierarchy of Tetrahedra Tetrahedra (HT): a data structure (HT): a data structure

l

Vertex coordinates and connectivity information are implicit implicit

l

Only field values field values and error information error information need to be encoded

l l Data structure:

Data structure:

– a table of field values field values – a forest of six full binary trees six full binary trees encoded as an array: each element contains the approximation error(s) approximation error(s) – alternatively, errors can be associated with vertices

In 2D In 2D

VIS 2003 Tutorial, October 20, 2003

Computing diamonds from a HT Computing diamonds from a HT

l

When extracting a mesh from a HT we need to compute diamonds on-the-fly diamonds on-the-fly

l l

Problem: Problem: given a tetrahedron t t and an edge e e of t t, find all the tetrahedra sharing edge e e with t t Sub-problem: Sub-problem: find the face-adjacent neighbors to a given tetrahedron We apply the traditional approach to neighbor finding neighbor finding in a quadtree combined with the use of location codes It requires traversing the diamond of t t by navigating through face-adjacent neighbors t f t e

slide-26
SLIDE 26

26 26

VIS 2003 Tutorial, October 20, 2003

Location codes in a HT Location codes in a HT

l l

Location code Location code for a tetrahedron t t: – – level level of t t in the tree – – path path from the root to t t

l l

Location codes Location codes are not not explicitly stored, but they are computed on-the-fly when computing diamonds Location codes for a hierarchy of right triangles

VIS 2003 Tutorial, October 20, 2003

Finding a face-neighbor: an example Finding a face-neighbor: an example

Input: Input: location code location code

  • f a tetrahedron
  • f a tetrahedron

(1010101011) and (1010101011) and

  • ne of its faces
  • ne of its faces

Output: Output: Location Location code of the code of the neighbor: neighbor: 101 1011 1101011 101011

slide-27
SLIDE 27

27 27

VIS 2003 Tutorial, October 20, 2003

Finding neighbors in constant time Finding neighbors in constant time

[Lee, De Floriani and [Lee, De Floriani and Samet Samet, 2001] , 2001]

l l

Basic steps of the algorithm: Basic steps of the algorithm: given a tetrahedron t t and a face f f of t t

– find nearest common ancestor nearest common ancestor of t t and of its neighbor along face f f – – reflect the path reflect the path to the input node to obtain the path to the neighbor fi inversion of just one bit just one bit corresponding to the child of the common ancestor

l

To find the nearest common ancestor: nearest common ancestor: – – use of bit manipulation use of bit manipulation and binary arithmetic on the location binary arithmetic on the location code of t code of t – no need to perform tree traversal

VIS 2003 Tutorial, October 20, 2003

DAG of diamonds DAG of diamonds [Pascucci

[Pascucci’ ’02] 02]

l l

Nodes: Nodes: diamonds diamonds – at level 3j non-aligned non-aligned diamonds – at level 3j+1 plane-aligned plane-aligned diamonds – at level 3j+2 axis-aligned axis-aligned diamonds

l l

Root: Root: non-aligned diamond describing the initial cubic subdivision

l l

Arcs: Arcs: encode the parent-child parent-child relation among diamonds plane-aligned plane-aligned axis-aligned axis-aligned non-aligned non-aligned initial cubic subdivision initial cubic subdivision

slide-28
SLIDE 28

28 28

VIS 2003 Tutorial, October 20, 2003

DAG of diamonds: parent/child relation DAG of diamonds: parent/child relation

l l

Parents Parents of a diamond D: diamonds that must be split to create the tetrahedra of D

l l

Children Children of D : diamonds created when D is split

Diamond Diamond D : : plane-aligned (4 tetrahedra) The two two parents of D A A B B C C D D C C A A D D B B E E F F G G H H E E F F G G H H Tetrahedra E, F, G, H in D are generated by splitting tetrahedra A,B,C and D in the parents Diamond Diamond D

VIS 2003 Tutorial, October 20, 2003

DAG of diamonds: data structure DAG of diamonds: data structure [Gregovski

[Gregovski’ ’02] 02]

l

A diamond diamond is associated with a vertex vertex in the regular grid of index (i,j,k) (i,j,k)

l l

Diamond: Diamond: – – (i,j,k) (i,j,k) index + diamond type diamond type – approximation error, min and max scalar field values, and gradient encoded for each diamond – – storage cost: storage cost: 3 bytes per diamond

l

Parents and children are not not stored, but computed on-the-fly

slide-29
SLIDE 29

29 29

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l Ingredients for a Level-Of-Detail (LOD) model l Selective refinement queries on volume data sets l Data structures for irregular meshes l Data structures for regular meshes l l Selective refinement algorithms

Selective refinement algorithms

l Conclusions: results and research issues

VIS 2003 Tutorial, October 20, 2003

Algorithms for selective refinement Algorithms for selective refinement

l l

Selective refinement Selective refinement: – extract a mesh with the smallest possible number of tetrahedra satisfying some user-defined criterion based on LOD

l

Any extracted mesh corresponds to a consistent set of updates consistent set of updates in the LOD model

l l

A consistent set S of updates: A consistent set S of updates: if an update u u belongs to S S, all updates that precedes u u must be in S S

Updates 1, 2 and 3 form Updates 1, 2 and 3 form a a consistent set consistent set Extracted mesh Extracted mesh

slide-30
SLIDE 30

30 30

VIS 2003 Tutorial, October 20, 2003

Algorithms for selective refinement Algorithms for selective refinement

l

Based on traversal of the DAG traversal of the DAG or of the tree

  • r of the tree describing

the dependency relation among updates

l

They construct a consistent set S consistent set S of updates

l

The mesh associated with such set S S is the solution to the query

l

Two approaches: – – top-down: top-down: it generates a mesh from scratch – – incremental: incremental: it modifies a previously extracted mesh by locally refining or by locally coarsening it

VIS 2003 Tutorial, October 20, 2003

Top-down approach: an example Top-down approach: an example

slide-31
SLIDE 31

31 31

VIS 2003 Tutorial, October 20, 2003

Top-down approach Top-down approach

Input: Input: LOD model and LOD criterion Output: Output: mesh satisfying LOD criterion

Red Red updates updates need need to be to be performed to performed to satisfy the LOD satisfy the LOD criterion criterion

Initialization step: Initialization step: set S ‹ coarsest mesh Generic step Generic step: :

l Add a red

red update u u to S S

l If set S

S U U {u} {u} is not consistent, then recursively add all updates preceding u u

  • n which u

u depends

VIS 2003 Tutorial, October 20, 2003

Top-down approach: implementation issues Top-down approach: implementation issues

l

Efficiently implemented as a depth-first traversal depth-first traversal

l

Often implemented by using a priority queue priority queue (ordered according to decreasing error values): updates having larger error values are performed first – the resulting algorithm is interruptible interruptible (i.e., intermediate steps produce “balanced” approximations of the resulting mesh) – it uses extra storage extra storage for encoding the priority queue (in our experiments on a hierarchy of tetrahedra: size of the queue size of the queue = 10-16% 10-16% of the size of the extracted mesh)

slide-32
SLIDE 32

32 32

VIS 2003 Tutorial, October 20, 2003

Incremental approach: an example Incremental approach: an example

VIS 2003 Tutorial, October 20, 2003

Incremental approach Incremental approach

Initialization step: Initialization step: set S S ‹ set of updates corresponding to M Generic step: Generic step: – Add red updates red updates to S S, and all all those updates that are necessary to maintain S S a consistent set – Remove green updates green updates if possible

Red updates Red updates must be performed to satisfy the new LOD criterion Green updates Green updates are not necessary to satisfy the new LOD criterion

Input: Input: LOD model, previously extracted mesh M M, and new LOD criterion

slide-33
SLIDE 33

33 33

VIS 2003 Tutorial, October 20, 2003

Incremental approach: implementation issues Incremental approach: implementation issues

l l

Direct algorithm Direct algorithm: all refinement updates which do not satisfy the new LOD criterion are performed first, and the coarsening updates whenever feasible.

l l

Priority-based algorithm Priority-based algorithm [Cignoni’03, Gregorski’02]: interleaving refinement and coarsening updates by using – a split queue split queue containing candidate refinement updates – a merge queue merge queue containing candidate coarsening updates

l

A priority-based algorithm is interruptible and the size of the extracted mesh can be effectively used as a parameter

VIS 2003 Tutorial, October 20, 2003

Selective refinement on a Hierarchy of Selective refinement on a Hierarchy of Tetrahedra Tetrahedra (HT) (HT)

l

Selective refinement algorithms on a HT require computing diamonds diamonds

  • n-the-fly to generate conforming meshes

l

Two approaches: – – neighbor finding neighbor finding – – error saturation error saturation

l l

Error saturation: Error saturation: the simultaneous split of all tetrahedra in a diamond is forced by the error values assigned to the tetrahedra in the hierarchy

slide-34
SLIDE 34

34 34

VIS 2003 Tutorial, October 20, 2003

Selective refinement on a HT: some results Selective refinement on a HT: some results

l

Comparisons on queries at uniform LOD uniform LOD between – – depth-first algorithm depth-first algorithm using constant-time neighbor finding constant-time neighbor finding – – depth-first algorithm depth-first algorithm on a HT with error saturation HT with error saturation

l l

Results Results: – – size of the extracted meshes: size of the extracted meshes: mesh extracted from a HT with error from a HT with error saturation saturation contains 5% 5% more tetrahedra, on average – same number of tetrahedron splits per second number of tetrahedron splits per second

VIS 2003 Tutorial, October 20, 2003

Overview Overview

l Introduction l Background l Ingredients for a Level-Of-Detail (LOD) model l Selective refinement queries on volume data sets l Data structures for irregular meshes l Data structures for regular meshes l Selective refinement algorithms l l Conclusions: results and research issues

Conclusions: results and research issues

slide-35
SLIDE 35

35 35

VIS 2003 Tutorial, October 20, 2003

Results: regular versus irregular data Results: regular versus irregular data structures structures

l l

Storage cost: Storage cost: regular data structures regular data structures considerably more compact than irregular data structures: irregular data structures: coordinates and structural information are implicit

l l

Selectivity: Selectivity: – Half-Edge MT more selective more selective than HT at uniform LOD at uniform LOD – Half-Edge MT less selective less selective at variable LODs Experiments Experiments performed on HT HT and Half-edge MT Half-edge MT with error on error on tetrahedra tetrahedra and with error on updates error on updates

Small- Small-Bucky Bucky Plasma Plasma

VIS 2003 Tutorial, October 20, 2003

Uniform LOD Uniform LOD

From a Half-edge MT: Half-edge MT: 24% 24% size of mesh at full resolution From a HT: HT: 45% 45% size of mesh at full resolution Smallbucky Plasma

Meshes at uniform LOD uniform LOD with error = 0.1%

slide-36
SLIDE 36

36 36

VIS 2003 Tutorial, October 20, 2003

Variable LOD based on spatial location Variable LOD based on spatial location

Size of the extracted mesh on the right = 6.2% 6.2% mesh at uniform LOD with error 0.1% Smallbucky Plasm a

Mesh at uniform LOD uniform LOD with error =0.1% Mesh at variable LOD variable LOD with error =0.1% only in the box

VIS 2003 Tutorial, October 20, 2003

Variable LOD based on field values Variable LOD based on field values

Size of the extracted mesh on the right = 25% mesh at uniform LOD with error 0.1% Smallbucky Smallbucky Plasma Plasma

Mesh at uniform LOD uniform LOD with error =0.1% Mesh at variable LOD variable LOD with error =0.1% only along the blu iso-surface

slide-37
SLIDE 37

37 37

VIS 2003 Tutorial, October 20, 2003

Some research issues Some research issues

l l

Dealing with massive irregular meshes: Dealing with massive irregular meshes: – – out-of-core

  • ut-of-core simplification algorithms

– – out-of-core

  • ut-of-core LOD data structures

– – out-of-core

  • ut-of-core algorithms for selective refinement

l

From geometry-based geometry-based to structural structural LOD models: – combining a LOD representation with a morphological morphological description description of the field – generating LOD models through simplification algorithms guided by the field morphology morphology

l

LOD models for four and higher-dimensional four and higher-dimensional scalar fields scalar fields

VIS 2003 Tutorial, October 20, 2003

Acknowledgements Acknowledgements

l l

University of University of Genova Genova: : Emanuele Danovaro, Paola Magillo and Enrico Puppo

l l

Italian National Research Council: Italian National Research Council: Paolo Cignoni and Roberto Scopigno

l l

University of Maryland University of Maryland: : Michael Lee and Hanan Samet