Terrain Level Of Detail - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Terrain Level Of Detail

Description:

Easy view culling and collision detection. Used by most implementers. TINs ... Fast hierarchical culling, triangle stripping, and optional multithreading of ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 42
Provided by: marti275
Category:

less

Transcript and Presenter's Notes

Title: Terrain Level Of Detail


1
Terrain Level Of Detail
2
Contents
  • Background
  • History, applications, data sizes
  • Important Concepts
  • regular grids v TINs, quadtrees v bintrees,
    out-of-core paging, web streaming
  • Implementations
  • Lindstrom 96, Duchaineau 97, Röttger 98, Hoppe
    98, DeFloriani 00, Lindstrom 01
  • Available software

3
Gameplay Goals for Terrain
From Jonathan Blows SIGGRAPH 2000 Course
  • Large enough to travel around for hours
  • Detailed when seen at human scale
  • Dynamic modification of terrain data
  • Runs at high, stable frame rates
  • Need fast rotation of viewpoint

4
Background
  • One of the first real uses of LOD
  • Important for applications such as
  • Flight simulators
  • Terrain-based computer games
  • Geographic Information Systems (GIS)
  • Virtual tourism, real-estate, mission planning
  • Sustained RD since the 1970s
  • Other terms include
  • generalization (GIS)

5
Terrain LOD Example
  • Screenshot of the Grand Canyon with debug view
    using the Digital Dawn Toolkit, now incorporated
    into Crystal Space

6
Terrain LOD vs Generic LOD
  • Terrain is easier...
  • Geometry is more constrained
  • Normally uniform grids of height values
  • More specialized and simpler algorithms
  • Terrain is more difficult...
  • Continuous and very large models
  • Simultaneously very close and far away
  • Necessitates view-dependent LOD
  • Often requires paging from disk (out-of-core)

7
Large Terrain Databases
  • USGS GTOPO30
  • 30 arc-second (1 km) resolution elevation
  • 43,200 x 21,600 1.8 billion triangles
  • NASA EOS satellite ASTER
  • 30-m resolution elevation data
  • from 15-m near infrared stereo imagery
  • USGS National Elevation Dataset (NED)
  • 50,000 quads at around 50 GB

8
Regular Grids
  • Uniform array of height values
  • Simple to store and manipulate
  • Encode in raster formats (DEM, GeoTIFF)
  • Easy to interpolate to find elevations
  • Less disk/memory (only store z value)
  • Easy view culling and collision detection
  • Used by most implementers

9
TINs
  • Triangulated Irregular Networks
  • Fewer polygons needed to attain required accuracy
  • Higher sampling in bumpy regions and coarser in
    flat ones
  • Can model maxima, minima, ridges, valleys,
    overhangs, caves
  • Used by Hoppe 98 DeFloriani 00

10
LOD Hierarchy Structures
QuadTree Hierarchy
BinTree Hierarchy
11
Quadtrees
  • Each quad is actually two triangles
  • Produces cracks and T-junctions
  • Easy to implement
  • Good for out-of-core operation

12
Bintrees
  • Terminology
  • binary triangle tree (bintree, bintritree, BTT)
  • right triangular irregular networks (RTIN)
  • longest edge bisection
  • Easier to avoid cracks and T-junctions
  • Neighbor is never more than 1 level away
  • Used by Lindstrom 96 Duchaineau 97

13
Cracks and T-Junctions
  • Avoid cracks
  • Force cracks into T-junctions / remove floating
    vertex
  • Fill cracks with extra triangles
  • Avoid T-junctions
  • Continue to simplify ...

14
Avoiding T-junctions
15
Avoiding T-junctions
Pseudo code to do triangle splitting and avoid
T-junctions
  • Split(BinTri tri)
  • if tri-gtBottomNeighbor is valid
  • if tri-gtBottomNeighbor-gtBottomNeighbor ! tri
  • Split(tri-gtBottomNeighbor)
  • Split2(tri)
  • Split2(tri-gtBottomNeighbor)
  • tri-gtLeftChild-gtRightNeighbor
  • tri-gtBottomNeighbor-gtRightChild
  • tri-gtRightChild-gtLeftNeighbor
  • tri-gtBottomNeighbor-gtLeftChild
  • tri-gtBottomNeighbor-gtLeftChild-gtRightNeighbor
  • tri-gtRightChild
  • tri-gtBottomNeighbor-gtRightChild-gtLeftNeighbor
  • tri-gtLeftChild
  • else
  • Split2(tri)
  • tri-gtLeftChild-gtRightNeighbor 0
  • tri-gtRightChild-gtLeftNeighbor 0

Split2(tri) tri-gtLeftChild
AllocateBinTri() tri-gtRightChild
AllocateBinTri() tri-gtLeftChild-gtLeftNeighbor
tri-gtRightChild tri-gtRightChild-gtRightNeighbor
tri-gtLeftChild tri-gtLeftChild-gtBottomNeighbor
tri-gtLeftNeighbor if tri-gtLeftNeighbor is
valid if tri-gtLeftNeighbor-gtBottomNeighbor
tri tri-gtLeftNeighbor-gtBottomNeighbor
tri-gtLeftChild else
tri-gtLeftNeighbor-gtRightNeighbor
tri-gtLeftChild tri-gtRightChild-gtBottom
Neighbor tri-gtRightNeighbor if
tri-gtRightNeighbor is valid if
tri-gtRightNeighbor-gtBottomNeighbor tri
tri-gtRightNeighbor-gtBottomNeighbor
tri-gtRightChild else
tri-gtRightNeighbor-gtLeftNeighbor
tri-gtRightChild tri-gtLeftChild-gtLeftCh
ild 0 tri-gtLeftChild-gtRightChild 0
tri-gtRightChild-gtLeftChild 0
tri-gtRightChild-gtRightChild 0
Code by S. McNally on GameDev.net, optimized by
A. Ögren
16
Out-of-core operation
  • Virtual memory solutions
  • mmap() used by Lindstrom 01
  • VirtualAlloc() / VirtualFree() used by Hoppe 98
  • Explicit paging from disk
  • NPSNET (NPS) Falby 93
  • VGIS (GVU) Davis 99
  • OpenGL Performer Active Surface Def (ASD)
  • SGI InfiniteReality (IR) Clipmapping

17
Streaming over the Web
  • TerraVision (SRI) Leclerc 94, Reddy 99

18
TerraVision Movie
19
Texture issues
  • Need to handle paging of imagery as well as
    geometry (satellite imagery resolution is
    generally gt than elevation resolution)
  • Hardware support for paging (clipmaps)
  • Detail textures for close-to-ground detail
  • Texture compression useful?

20
Lindstrom et al. 1996
  • One of first real-time view-dependent algorithms,
    referred to as continuous LOD (CLOD)
  • Regular grid, bintree, quadtree blocks
  • Mesh broken into rectangular blocks with a
    top-down coarse-grained simplification
  • Then per-vertex simplification performed within
    each block
  • Frame-to-frame coherence
  • Maintain an active cut of blocks
  • Only visit vertices if could change in frame

21
Lindstrom et al. 1996
  • Vertex removal scheme
  • Merge based upon a measure of screen-space error
    between the two surfaces, d
  • Used a nonlinear mapping of d to represent
    0..65535 in only 8 bits

22
Lindstrom et al. 1996
Hunter-Liggett US Army base 2-m res 8 x 8km 32
M polys
23
Lindstrom et al. 1996
24
Duchaineau et al. 1997
  • Real-time Optimally Adapting Meshes (ROAM)
  • Regular grid, bintree, 2 priority queues
  • 1 priority-ordered list of triangle splits
  • 1 priority-ordered list of triangle merges
  • Frame coherence
  • pick up from previous frames queue state
  • Very popular with source code and implementation
    notes available

25
Duchaineau et al. 1997
  • Split-Only ROAM often used in games
  • Used by Seumas McNally in TreadMarks
  • Removes the frame coherence portion
  • Dont need 2 priority-sorted queues
  • Implemenation available as SMTerrain in the
    vterrain.org VTP software
  • Good article on Split-Only ROAM at Gamasutra by
    Bryan Turner

26
Duchaineau et al. 1997
ROAM Split and Merge Diamonds
27
Duchaineau et al. 1997
  • Principal metric was screen-based geometric error
    with guaranteed bound on the error
  • Hierarchy of volumes called wedgies
  • Covers the (x,y) extent of a triangle and extends
    over the height range z-eT through zeT

28
Duchaineau et al. 1997
29
Röttger et al. 1998
  • Extended Lindstroms CLOD work
  • Regular grid, quadtree, top-down
  • World space metric considered
  • viewer distance terrain roughness
  • Integrated vertex geomorphing
  • Deal with tears by skipping center vertex of
    higher resolution adjacent edge

30
Röttger et al. 1998
Hawaii
31
Hoppe 1998
  • View-Dependent Progressive Meshes (VDPM) from
    Hoppe 97 applied to terrain
  • TIN-based, out-of-core (VirtualAlloc/Free)
  • Integrated vertex geomorphing
  • Tears between blocks avoided by not simplifying
    at block boundaries
  • Notes that larger errors can occur between grid
    points and precomputes maximum height deviations

32
Hoppe 1998
Grand Canyon, Arizona 4,097 x 2,049 8 x 4
blocks of 513 x 513
33
Hoppe Video
34
DeFloriani et al. 2000
  • VARIANT. Uses Multi-Triangulation (MT)
  • General TIN approach applied to terrain
  • Plug in different simp. error routines
  • Supports analyses visibility, elevation along a
    path, contour extraction, viewshed
  • Frame coherence (use previous state)
  • Freely available C library for MT

35
DeFloriani et al. 2000
36
Lindstrom Pascucci 2001
  • Visualization of Large Terrains Made Easy
  • Regular gridded, top-down, bintree
  • Out-of-core with mmap() and spatial org.
  • Fast hierarchical culling, triangle stripping,
    and optional multithreading of refinement and
    rendering tasks
  • Uses a nesting of error metric terms (bounding
    spheres)

37
Lindstrom Pascucci 2001
Puget Sound, Washington 16,385 x 16,385 512 MB
38
Lindstrom Pascucci Video
39
Available Software
  • Virtual Terrain Project (VTP)
  • http//www.vterrain.org/
  • TerraVision
  • http//terravision.sourceforge.net/
  • SOAR
  • http//www.cc.gatech.edu/lindstro/software/soar/
  • ROAM
  • http//www.cognigraph.com/ROAM_homepage/
  • Source code links (ROAM, VTP, MT, etc.)
  • http//www.LODBook.com/source/

40
Terrain Data Resources
  • Large Terrain Databases
  • http//www.cc.gatech.edu/projects/large_models/
  • Terrain Models on LODBook.com
  • http//www.LODBook.com/terrain/
  • GeoVRML Data Resources Page
  • http//www.geovrml.org/data/

41
End of Presentation
End of Presentation
Write a Comment
User Comments (0)
About PowerShow.com