Title: 1:303:15 Advanced Features
1130-315 Advanced Features
- 130-200 Volume Rendering (Shirley)
- 200-230 Massive Models (Slusallek)
- 230-300 Hardware Support
- GPU ray tracing demo (Foley)
- Ray processing unit (RPU) (Slusallek)
- Future challenges (Mark)
- 315-330 Break
2Overview
- Isosurfacing done implicitly at every pixel
- Care is needed for data layout, but otherwise is
brute force - Direct volume rendering harder but possible
3Isosurfacing for Analytic Functions
- f(x,y,z)0
- ray tracing via root finding (e.g. Kalra and Barr
89) - explicit polygonalization (e.g. Stander and Hart
97)
4Trilinear Cells are Easier
5Isosurfacing for a Trilinear Cell
- Marching Cubes
- Lorensen and Cline (87)
- Wyvill and Wyvill (86)
6Why Not Always Use Marching Cubes?
- Marching cubes can generate millions of polygons
- Reduce by decimation (e.g. Shekhar et. al 96)
- Reduce by culling (e.g. Livnat and Hansen 98)
7Isosurfacing for a Trilinear Cell
8Isosurfacing for a Piecewise Linear Cell
marching cubes
ray tracing
9Effects of Direct Cubic Solution
10Effects of Direct Cubic Solution
11Effects of Direct Cubic Solution
12Effects of Direct Cubic Solution
13Effects of Direct Cubic Solution
14Effects of Direct Cubic Solution
15Effects of Direct Cubic Solution
16Effects of Direct Cubic Solution
17Effects of Direct Cubic Solution
18Isosurfacing for a grid of cells
ray
19(No Transcript)
20Previous Ray Tracing for Isosurfaces
- Marschner and Lobb (94)
- Lin and Ching (96)
21Feature Comparison
- Ray Tracing
- Implicit geometry
- Software shading
- Marching Cubes
- Explicit geometry
- Hardware shading
22Shadows
without
with
23Transparency
243D textures
25Optimizations
- Parallelism
- Hierarchical data representation
- Data layout for better locality
26Hierarchical Data Representation
- Skip over cells which do not contain an
isosurface - Wilhelms and van Gelder (90) - Keep macrocells which contain the min/max
values for contained cells
27Two Level Representation
ray
ray
28Two Level Representation
ray
ray
29Two Level Representation
ray
ray
30Two Level Representation
ray
ray
31Two Level Representation
ray
ray
32Two Level Representation
ray
ray
33Two Level Representation
ray
ray
34Two Level Representation
ray
ray
35Number of Hierarchy Levels
- Traversal from cell to cell is cheaper than
moving up and down levels - Would like to skip large empty regions
- We use 3 or 4 levels in practice
36Data Layout (Bricking)
- Optimizing for memory locality
- Two levels (bricks and metabricks)
- Common trick (e.g. Cox and Ellsworth 97)
37Brick
Metabrick
1 2 3 10 11 12 4 5 6 13 14 15 7 8 9 16
17 18
144...
153...
38Data Layout (Bricking)
- Brick sizes (Cache line and page sized cubes)
- 16 bit data
- 32 bit data
39Combining Hierarchy and Bricking
- Requirements of hierarchy are different than
the brick sizes - Traversal at finest level of hierarchy can cross
brick boundaries - Must compute indices into bricked array
40Indexing
- Consider 6x6x6 bricks of 3x3x3 bricks
- index (x/3/6)666333nynz
(y/3/6)666333nz (z/3/6)666333
(x/36)66333 (y/36)6333
(z/36)333 (x3)33 (y3)3 (z3) - Very expensive
- Integer division and modulus
41What about that function?
- index (x/3/6)666333nynz
(y/3/6)666333nz (z/3/6)666333
(x/36)66333 (y/36)6333
(z/36)333 (x3)33 (y3)3 (z3) - index fx(x) fy(y) fz(z)
42Optimization Results
.
0
6
.
8
1
.
5
B
o
n
e
f
r
o
m
f
e
e
t
5
0
.
9
1
1
.
3
1
.
2
Relative times
43Where time is spent
44Unstructured data
Mike Parker
45- 128 CPU altix (1.3GHz Itanium 2),
- 1M pixels
- 10Gb model, 170 timesteps 82x82x332 plus 1.1
million particles 15-20 fps
James Bigler
46(No Transcript)
47Questions
- What data structure is best for uniform grids?
- Faster Isosurface Ray Tracing using Implicit
KD-Trees, Wald, Friedrich, Marmitt, Slusallek and
Seidel, IEEE TVCG - What is best for unstructured grids?
- Faster direct volume rendering?
- Custom hardware? (SUNY SB)
48- Thanks to
- Steve Parker
- Mike Parker
- James Bigler
- SGI