introduction to massive model visualization patrick cozzi analytical graphics, inc
Post on 16-Dec-2015
228 Views
Preview:
TRANSCRIPT
Contents
Minimal computer graphics background Culling Level of Detail (LOD) Memory Management Videos throughout
Computer Graphics Background
1 triangle = 3 vertices Gross over simplification: 3 floats per vertex
(x0, y0, z0)
(x1, y1, z1) (x2, y2, z2)
Computer Graphics Background
Triangles go through graphics pipeline to become pixels
View parameters define the size and shape of the world
viewer
near plane
far plane
Computer Graphics Background
CPU GPU Monitor
Vertex Processing
Geometry Processing
Fragment Processing
PCIe Bus
Color
Depth
Stencil
Example Massive Models
Procedurally generated model of Pompeii: ~1.4 billion polygons.Image from [Mueller06]
Example Massive Models
Boeing 777 model: ~350 million polygons.Image from http://graphics.cs.uni-sb.de/MassiveRT/boeing777.html
Trends
No upper bound on model complexity– Procedural generation– Laser scans– Aerial imagery
Image from [Lakhia06]
Trends
High GPU throughput– At least 10-200 million triangles per second
Widen gap between processor and memory performance
CPU – GPU bottleneck
Goal
output-sensitivity: performance as a function of the number of pixels rendered, not the size of the model
View Frustum Culling
Can be slower than brute force. When?
culled
rendered
culled
culled
rendered
rendered
Occlusion Culling
From-region or from-point Most are conservative Occluder Fusion Difficult for general scenes with arbitrary
occluders. So make simplifying assumptions:– [Wonka00] – urban environments– [Ohlarik08] – planets and satellites
Hardware Occlusion Queries
From-point visibility that handles general scenes with arbitrary occluders and occluder fusion
How?– Use the GPU
Hardware Occlusion Queries
Render occluders Render object’s BV using HOQ Render full object based on result
Hardware Occlusion Queries
CPU stalls and GPU starvation
Draw o1 Draw o2 Draw o3
Draw o1 Draw o2 Draw o3
CPU
GPU
Query o1
Query o1
Draw o1
Draw o1
-- stall --
-- starve --
CPU
GPU
Level of Detail
Generation: less triangles, simpler shader Selection: distance, pixel size Switching: avoid popping
Discrete, Continuous, Hierarchical
Simplification Operations
edge collapse
Also• Vertex Merge• Vertex Removal• Cell Collapse• See [Luebke01]
Hierarchical LOD
visit(node) { if (computeSSE(node) < pixel tolerance) { render(node); } else { foreach (child in node.children) visit(child); } }
Node Refinement
Hierarchical LOD
Easy to– Add view frustum culling– Add occlusion culling via HOQs
Render front to back
– Use VMSSE to drive refinement
Requires preprocessing Is Culling + HLOD enough?
Out-of-Core HLOD
visit(node) { if ((computeSSE(node) < pixel tolerance) || (not all children resident)) { render(node); foreach (child in node.children) requestResidency(child); } else { foreach (child in node.children) visit(child); } }
Out-of-Core HLOD
Multithreaded– Disk reads– Decompression, normal generation, etc
Cache management– Prioritize reads, e.g. distance from viewer– Replacement policy
Skeleton in memory?– BV, error metric, parent – child relationships
Out-of-Core Prefetching
0 1
2 3
4 5
6 7
[Varadhan02]– Coherence of Front– Prefetch ascendants/descendants– Prefetch with enlarged view frustum– Prioritize
Compression
“Size is Speed” Geometric
– Vertices, Indices– I/O and Rendering Performance
Texture– Performance or Quality
RenderDisk De/re-compress
Cache Coherent Layouts
Vertex Shader
Post VS Cache
Pre VS Cache
GPU Main Memory
Primitive Assembly
ReorderTriangles
ReorderVertices
Reorder vertices and indies to maximize GPU cache hits
Cache Coherent Layouts
Minimize ACMR– Average Cache Miss Ratio
Cache Oblivious [Yoon05] Linear Time [Sander07]
Not Covered Today
Dynamic Scenes Clustered backface culling IBR, Mapping Sorting Batching Ray Tracing
Summary
Combine culling, LOD, and out-of-core techniques
Keep the CPU and GPU busy Exploit Coherence: Spatial and
Temporal
For More Information
[Gobbetti08] – Technical Strategies for Massive Model Visualization
[Luebke01] – A Developer’s Survey of Polygonal Simplification Algorithms
My email: pjcozzi@siggraph.org
About Analytical Graphics, Inc
COTS software for national security and space professionals
Rated best place to work: 2004-2006. 3rd in 2007.
top related