690 likes | 834 Views
Computer Graphics Research at Virginia. David Luebke Department of Computer Science. Outline. Why I like graphics My current research VDS Gaze NPR Scanning Monticello. Why Graphics?. Graphics is cool I like to see what I’m doing I like to show people what I’m doing
E N D
Computer Graphics Research at Virginia David Luebke Department of Computer Science
Outline • Why I like graphics • My current research • VDS • Gaze • NPR • Scanning Monticello
Why Graphics? • Graphics is cool • I like to see what I’m doing • I like to show people what I’m doing • Graphics is interesting • Involves simulation, algorithms, architecture… • Graphics is moving quickly • Intel vs. nVidia... • Graphics is fun • Graphics is important
Why Graphics? • Entertainment: Cinema Universal: Jurassic Park Pixar: Geri’s Game
Why Graphics? • Entertainment: Games id: Quake II Cyan: Riven
Why Graphics? • Medical Visualization The Visible Human Project MIT: Image-Guided Surgery Project
Why Graphics? • Computer Aided Design (CAD)
Why Graphics? • Scientific Visualization
Outline • Why I like graphics • My current research • VDS: View-Dependent Simplification • Gaze • Art-Based Rendering • Scanning Monticello
The Problem:Massive Model Rendering • Problem: interactive visualization of very complex environments • Who cares? • Scientific visualization • Medical visualization • Computer Aided Design (CAD )
Massive Model Examples:Aerospace CAD • Cassini space probe model • 415,000polygons Courtesy Jet Propulsion Laboratory
Massive Model Examples:Maritime CAD • SubmarineTorpedoRoom • 700,000polygons Courtesy General Dynamics, Electric Boat Div.
Massive Model Examples:Structural CAD • Coal-firedpower plant • 13 millionpolygons Courtesy ABB Engineering
Massive Model Examples: More Maritime CAD • Double Eagle container ship • 82 million polygons Courtesy Newport News Shipbuilding
The Holy Grail… Deussen et al: Realistic Modeling of Plant Ecosystems
Level of Detail • The problem: • Polygons rule the world(of interactive graphics) • Polygonal models are often too complex to render at interactive rates • One solution: • Level-of-detail methods simplify the polygonal geometry of small or distant objects
Level of DetailTraditional Approach • Create levels of detail (LODs) of objects: 249,924 polys 62,480 polys 7,809 polys 975 polys Courtesy IBM
Level of Detail:Traditional Approach • Distant objects use coarser LODs:
Limitations ofTraditional LOD • Most algorithms are: • Too fragile for messy CAD models • Too slow for large CAD models • Not suited for drastic simplification
Drastic Simplification: Large Objects Courtesy IBM and ACOG
Drastic Simplification: Small Objects Courtesy Electric Boat
Drastic Simplification:Preserving Topology • Rotor model: • 21 holes • 4736 faces Courtesy Alpha_1 Project, University of Utah
Drastic Simplification:Preserving Topology 21 holes, 1006 faces 1 hole, 46 faces
The Problems WithDrastic Simplification • For drastic simplification: • Large objects must be subdivided • Small objects must be combined • Topology must be simplified • Difficult or impossible with traditional LOD
A New Approach • Dynamic: simplify objects on the fly • View-dependent: account for viewpoint • Global: simplify scenes, not objects • Automatic: simplify without user’s help
Dynamic Level of Detail • A relatively recent departure from the traditional static approach: • Static LOD: create individual LODs in a preprocess • Dynamic LOD: create data structure from which a desired level of detail can be extracted at run time.
View-Dependent LOD: Examples • Show nearby portions of object at higher resolution than distant portions View from eyepoint Birds-eye view
View-Dependent LOD: Examples • Show silhouette regions of object at higher resolution than interior regions
View-Dependent LOD: Examples • Show more detail where the user is looking than in their peripheral vision: 11,726 triangles
View-Dependent LOD: Examples • Show more detail where the user is looking than in their peripheral vision: 34,321 triangles
Dynamic LOD: How Does It Work? • So…dynamic LOD is great, but how do we implement it? • Basically, with one big data structure: the vertex tree • Represents the entire model • Hierarchy of all vertices in model • Queried each frame for updated scene
The Vertex Tree • Each vertex tree node contains: • A subset of model vertices • A representative vertex or repvert • Folding a node collapses its vertices to the repvert • Unfolding a node splits the repvert back into vertices
Vertex Tree Example 8 7 R 2 I II 10 6 9 3 10 A B C 3 1 1 2 7 4 5 6 8 9 4 5 Vertex tree Triangles in active list
Vertex Tree Example 8 7 R A 2 I II 10 6 9 3 10 A B C 3 1 1 2 7 4 5 6 8 9 4 5 Vertex tree Triangles in active list
Vertex Tree Example 8 R A I II 10 6 9 3 10 A B C 3 1 2 7 4 5 6 8 9 4 5 Vertex tree Triangles in active list
Vertex Tree Example 8 R A I II 10 6 9 3 10 A B C 3 B 1 2 7 4 5 6 8 9 4 5 Vertex tree Triangles in active list
Vertex Tree Example 8 R A I II 10 9 3 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example 8 R A C I II 10 9 3 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R A C I II 10 3 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R A C II I II 10 3 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R A II I II 10 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R A I II I II 10 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R I II I II 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R I II I II R 10 A B C 3 B 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
Vertex Tree Example R I II R 10 A B C 3 1 2 7 4 5 6 8 9 Vertex tree Triangles in active list
8 A 10 6 9 3 4 5 The Vertex Tree:Tris and Subtris 8 7 Fold Node A 2 10 6 9 3 UnfoldNode A 1 4 5 Node->Tris: triangles that change shape upon folding Node->Subtris: triangles that disappear completely
Each node’s tris and subtris can be computed offline to be accessed very quickly at run time This is the key observation behind dynamic simplification The Vertex Tree:Tris and Subtris
Outline • Why I like graphics • My current research • VDS • Gaze: gaze-directed rendering • NPR • Scanning Monticello
Gaze-Directed Rendering • View-dependent rendering opens up a new door: gaze-directed rendering • Track the user’s eye gaze • Give more detail to region of interest, less elsewhere
Gaze-Directed Rendering: ERICA • Problem 1: how to do eye tracking? • Answer ERICA project (Prof. Hutchinson) • Main uses: disabled access, gaze analysis • ERICA pros: • non-intrusive eye tracking • 60 Hz, ~1 cm accuracy • ERICA cons: • No windows (working on it) • Head must stay very still (working on it) • Currently a bit bulky (working on it)