Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids Frank Losasso Hugues Hoppe

advertisement
Geometry Clipmaps:
Terrain Rendering Using Nested Regular Grids
Frank Losasso
Hugues Hoppe
Stanford University
Microsoft Research
Terrain Rendering Challenges
Mount Rainier
Primary Dataset:
United States at 30m spacing
20 Billion samples
Olympic
Mountains
• Concise storage  No paging hick-ups
• Real-Time frame rates  60 fps
• Visual continuity  No temporal pops
Previous Work
• Irregular Meshes (e.g. [Hoppe 98])
– Fewest polygons
– Extremely CPU intensive
• Bin-trees (e.g. [Lindstrom et al 96])
– Simpler data structures / algorithms
– Still CPU intensive
• Bin-tree Regions (e.g. [Cignoni et al 03])
– Precomputed regions
 Decreased CPU cost
– Temporal continuity difficult
Previous Work
• Texture Clipmaps [Tanner 1998]
– ‘Infinitely’ large textures
– Clipped mipmap hierarchy
• Modeling for the Plausible Emulation of
Large Worlds [Dollins 2002]
– Quadtree LOD around viewer
– Terrain synthesis
Geometry Clipmaps
•
•
•
•
Store data in uniform 2D grids
Level-of-Detail from nesting of grids
Refine based on distance
Main Advantages
– Simplicity
– Compression
– Synthesis
Terrain as a Pyramid
•Terrain as mipmap pyramid
•LOD using nested grids
Coarsest Level
Finest Level
Puget Sound
Individual Clipmap Levels
• Uniform 2D grid
• Indexed triangle strip
– Efficient caching
– 60 M triangles/second
• 255-by-255 grid
• Expected Soon:
– Vertex Textures
Inter-Level Transitions
• Between respective power-of-2 grids
Inter-Level Transitions
No transition
Gaps in geometry
Geometry transition
Gaps in texturing/shading
Geometry & texture
transition
Inter-Level Transitions
• Vertex shader  blend geometry
• Pixel shader  blend textures
– Both are inexpensive
Clipmap Update
• For each level
– Calculate new clipmap region
– Fill new L-shaped region
– Use toroidal arrays for efficiency
Clipmap Update
• Update levels coarse-to-fine
– Use limited update budget
– Only render updated data
Fine levels may be cropped
Rendering load decreases as update load becomes
to large for the budget
‘Filling’ New Regions
• Two Sources:
– Computed on-demand  at 60 frames/second
Decompressed
explicit terrain
Synthesized
new terrain
Clipmap Update
• Fine level from coarse level
• U is a 16 point C1 smooth interpolant
• For synthesized terrain, X = Gaussian noise
• For explicit terrain, X = compression residual
Terrain Synthesis
• Adds high frequency detail
• Upsample then add Gaussian noise
– Precomputed 50-by-50 noise texture
– Per-octave amplitude from real terrain
Texture Synthesis
Subdivision Interpolant
Bilinear Interpolant (C0)
16-point Interpolant (C1)
Terrain Compression
• Create mipmap fine-to-coarse
• D found from data such that:
Terrain Compression
• Calculate residuals coarse-to-fine
– Upsample and compute
inter-level residual
– Quantize and compress residual
– Replace approximation
 Prevent error accumulation
Compression Results
• U.S height map
– 30m horizontal spacing
– 1m vertical resolution
– 216,000-by-93,600 grid
– 40GB uncompressed
– 350MB compressed  factor of over 100
– rms error 1.8m (6% of sample spacing)
Compression Results
LOD scheme
Number of Runtime Bytes per
samples
space
sample
8M
50 MB
6.0
256 M
5.0 GB
19.5
Cignoni et al [02]
64 M
115 MB
1.8
Geometry Clipmaps
20 G
375 MB
0.02
Hoppe [98]
Lindstrom [02]
Level-of-detail Error
• Analyzed statistically  See paper
• For U.S. terrain (640-by-480 resolution)
– rms error = 0.15 pixels
– max error = 12 pixels
– 99.9th percentile = 0.90 pixels
United States of America
Graphics Hardware Friendly
• Can be implemented in hardware
– Clipmap levels as high-precision textures
– Subdivision and normal calculation [Losasso et al 03]
– Morphing already done in hardware
– Noise from Noise() or from texture
• Uploaded on-demand
– Decompressed terrain
Limitations
• Statistical error analysis
– Assumes bounded spectral density
• Unnecessarily many triangles
– Assumes uniformly detailed terrain
but, allows for optimal rendering throughput
Advantages
•
•
•
•
•
Simplicity
Optimal rendering throughput
Visual continuity
Steady rendering
Graceful degradation
• Compression
• Synthesis
Download