RealTime Continuous Level of Detail Rendering of Height Fields - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

RealTime Continuous Level of Detail Rendering of Height Fields

Description:

Project the delta segment to find the screen space distance p( ) (in pixels) ... How many pixels? Assume midpoint of delta segment is in center of view ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 20
Provided by: brook72
Category:

less

Transcript and Presenter's Notes

Title: RealTime Continuous Level of Detail Rendering of Height Fields


1
Real-Time Continuous Level of Detail Rendering of
Height Fields
  • Peter Lindstrom David Koller William Ribarsky
    Larry F. Hodges Nick Faust Gregory A.
    Turner
  • ACM SIGGRAPH 1996

2
Introduction
  • Terrain visualization typically requires
    geometric complexity beyond the limits of current
    hardware
  • Simplification algorithms are used to generate
    models at various levels of detail
  • Display system chooses and renders the
    appropriate LOD model
  • This algorithm provides for continuous LOD

3
Introduction
  • Works on regularly gridded height fields
  • Uses screen-space error threshold
  • Two levels of simplification, coarse and fine
  • Compute and generate appropriate LOD dynamically
    in real-time
  • Achieves interactive frame rates

4
Features
  • Large reduction in polygons to be rendered-
    typically orders of magnitude
  • Smooth, continuous changes between LODs- both
    number and distribution
  • Dynamic generation of LODs in real-time- no
    pre-processing, allows terrain deformation
  • User specified image quality metric- image
    accurate to X pixels

5
Motivation Criteria
  • Geometry should be easily queried at any
    instant- allow for surface following (TINs cant
    do 12)
  • Changes to mesh geometry shouldnt kill
    performance
  • Localized high frequency data shouldnt have a
    global effect on the complexity of the model
    (bump in block)
  • Small changes in the view lead to small changes
    in complexity (ie. Discrete LOD popping)
  • Provide a means to bound the loss in image
    quality

6
The Height Field
  • Height field is a rectilinear grid of points
  • Dimensions must be 2n 1
  • Smallest is 3x3, group these into 2x2 recursively
    to make larger meshes.
  • For any level l, the vertex dimensions are 2l1.
    The mesh at each level is a block or a discrete
    LOD model
  • Lower resolution blocks are made by discarding
    every other row and column of four higher
    resolution blocks (make a quadtree)

Lowest level vertices
grouping
decimation
7
Simplification
8
Fine Grained Simplification
  • Combine two smaller co-triangles into one larger
    triangle if conditions are met (normals are
    close)
  • Find the maximum vertical distance (?) between
    the two co-triangles and their parent triangle

D
9
Project the Delta Segment
  • Project the delta segment to find the screen
    space distance p(?) (in pixels)
  • If p(?) is smaller than the threshold for any
    triangle co-triangle pair substitute the parent
    triangle
  • Continue recursively
  • Note error is defined with respect to previous
    iteration, not base mesh

10
How many pixels?
  • Assume midpoint of delta segment is in center of
    view- more error toward edge of screen
  • eviewpoint, ddistance from e to projection
    plane, ?number of pixels per world co-ordinate,
    vmidpoint of ?

Reduces to a few adds and multiplies
Where
(a constant)
11
Coarse Grained Simplification
  • Not practical to run this on all vertices every
    frame
  • If maximum delta projection of all lowest level
    vertices in a block lt threshold, swap in lower
    res
  • If we know ?max and the axis aligned bounding box
    for block we can determine if any ? gt threshold
  • Determine the smallest ? (?l) that can exceed
    threshold and the largest ? (?h) that can be
    smaller than threshold
  • Vertices with ? lt ?l can be tossed, ? gt ?h cant
  • Vertices in between must be evaluated with old
    equation

12
Icky Math
  • We can actually do better
  • Find spot in bounding box that maximizes the
    delta projection, and spot that minimizes it
  • Compute maximum delta that stays under threshold
    where maximized (?l) and vice versa (?h)
  • If ?max lt ?l swap in lower resolution block,
    recurse
  • Else if ?max gt ?l swap in 4 higher resolution
    blocks

13
What Was That?
14
Cleaning Up
  • Must handle adjacent blocks of different
    resolution
  • If a vertex is enabled on a border of one block,
    it is enabled in any other blocks it is a part of
  • Just implemented with pointers to vertices
  • Vertex has a locked attribute so that it cant
    be disabled by a neighbouring block

15
Results
  • 20 FPS on 150 MHz Onyx with 13 million polygons
  • Polys rendered depends on complexity of terrain,
    not of polys

16
Visuals
Threshold 1 pixel
Threshold 4 pixels
17
More Visuals
Threshold 1 pixel
Before Simplification 13,304,214 Polys
After Simplification 64,065 Polys
18
Discussion
  • Love that screen space error metric!
  • Note because of approximations, up to 5 of
    delta projections are bigger than the threshold
  • No way to lock in a framerate? (Maybe adjust
    threshold based on previous frametime?)
  • Texturing? (Do you need a texture as big as the
    world?)
  • Doesnt explicitly take advantage of temporal
    coherence
  • Could current hardware be used to project the
    deltas instead of the approximation?

19
Fin
Write a Comment
User Comments (0)
About PowerShow.com