1 / 40

Levels of Detail

Levels of Detail. COMP 770 3/25/09. Problem. Models can be very detailed Look great when close up Last week we explored one way of attacking this problem. 13M Triangles. 1M Triangles. 8M Elevation Points. Problem. Q: Why else might we want to reduce the working set size?.

daryl-lane
Download Presentation

Levels of Detail

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Levels of Detail COMP 770 3/25/09

  2. Problem • Models can be very detailed • Look great when close up • Last week we explored one way of attacking this problem 13M Triangles 1M Triangles 8M Elevation Points

  3. Problem Q: Why else might we want to reduce the working set size? • Even after visibility culling we can have too many visible triangles • Won’t this problem go away with faster GPUs? • The real world has virtually infinite complexity • Our ability to model and capture this complexity outpaces rendering performance 372M Triangles 100M Triangles 270M Elevation Points 82M Triangles

  4. Levels of Detail • Basic Idea: Render using fewer triangles when model is farther from viewer • Methods: • Multi-resolution modeling • Remeshing • Parametric Surfaces • Subdivision Surfaces • Polygonal Simplification • Image Impostors

  5. LOD Hierarchy • [Clark76] First LOD paper • Replace each object in the scene graph with a hierarchy of objects at differing resolutions • Select LOD based on size of screen-space projection • Integrates VFC with LOD search • Supports out-of-core rendering • Most LOD systems today are based on this basic concept

  6. Polygonal Simplification • Method for reducing the polygon count of mesh • Local Operators: • Vertex Clustering • Vertex Removal • Edge Collapse • Triangle Collapse • Global Operators: • Low-Pass Filtering • Morphological Operators • Alpha-Hull

  7. Vertex Clustering • [Rossignac & Borrel 93] • Weight vertices by: • Inverse of max angle between edges (why?) • Size of largest adjacent face (why?) • Impose a grid on the model • Compute weighted average vertex in each cell • Triangles become: • Triangles • Lines • Points • Keep the unique primitives

  8. Vertex Clustering • How do we create a set of LODs? • What are the limitations on this method? • Main Benefits: • Hard to target a polygon count • Poor error control • Not invariant to rotation or translation • Mixed primitive types • Simple • Robust

  9. Vertex Clustering • [Low & Tan 97] • Improve on R&B in a several ways including: • Floating-cell clustering • Improved angle weight [draw it] • Rendering using thick lines

  10. Vertex Removal • [Schroeder et al. 92] • Designed for Marching Cubes Output • Remove a triangle and re-triangulate hole • Ignores non-manifold vertices • Properties: • Preserves topology • Uses original vertices • Linear

  11. Edge Collapse • Introduced by [Hoppe93] • Variation: Half-Edge Collapse edge collapse b c a vertex split

  12. Foldovers • Collapsing an edge can flip a face edge collapse b a c vertex split

  13. Virtual Edge Collapse • Extension of edge collapse to two vertices not connected by an edge • Allows topological simplification • Also known as vertex-pair collapse • Usually limited to small distance to avoid O(n2) virtual edges

  14. Edge Collapse • Allows geomorphs • Fine-grained: 2 triangles removed for manifold case • Topology preserving • Half-edge collapse preserves vertex set

  15. Low-Pass Filtering • [He et al. 96] • Convert polygon mesh to volumetric representation • Apply low-pass filter to volumetric data • Reconstruct the mesh using marching cubes

  16. Morphological Operators • [Nooruddin99] • Convert polygon mesh to volumetric representation • Apply dilation operator followed by erosion operator • Reconstruct with marching cubes • Apply polygonal simplifcation

  17. Topological Simplification Using Alpha-Hulls • [El-Sana and Varshney 98] • Definition: • Set of points P • Spherical ball b with radius alpha • If b is placed such that it does not intersect P it is empty • The alpha-hull is the complement of empty balls

  18. Topological Simplification Using Alpha-Hulls • Intuitively, we roll a ball around the points to define the new surface • If the ball does not fit into a concavity it is filled • If the ball does not fit in to a hole it is closed • If the ball does not fit between two objects it is closed • What if alpha=0? • What if alpha=infinity? • Show paper images

  19. Discrete LOD • Use local or global operators to compute a set of LOD meshes • At runtime select an LOD mesh and render it • Possible Criteria: • Distance to user • Fraction visible • Eccentricity • Visual Importance • Extension: HLODS [Erikson01]

  20. Continuous LOD • Progressive Meshes [Hoppe96] • Iteratively decimate a mesh using edge collapse operator • Store the inverse vertex split for each collapse • The most simplified mesh (base mesh) and vsplit records form the progressive mesh: M0→M1 →… → Mn

  21. Continuous LOD • Rather than a few discrete LODs we have a full range • Vertex split does not require much storage • Can geomorph between LODs • Show video

  22. View-Dependent LOD • So far we have: • Discrete LOD: fixed models at various fidelities • Continuous LOD: a progression of meshes from coarse to fine • Consider a case like this:

  23. View-Dependent LOD • Create an LOD representation at runtime according to view-parameters • What view-dependent criteria can we use? • More detail close to the viewer • Preserve the silhouette of the object • Preserve specular highlights • Aggressively simplify the backfaces

  24. View-Dependent LOD • Organize the simplification operations as a hierarchy • Compute a front in the hierarchy • Use temporal coherence • [Luebke&Erikson97] use octree clustering • [Hoppe96] uses edge collapse • Show video

  25. View-Dependent LOD • View-Dependent LOD has fidelity advantages but not generally used. • Why? • Expensive to traverse hierarchy front • Dynamically generated geometry difficult to render optimally

  26. CHPM • [Yoon et al. 2004] • Addresses problems of vertex hierarchy • Same framework used for LOD collision detection

  27. CHPM • Video: • http://gamma.cs.unc.edu/QVDR • Collision: • http://gamma.cs.unc.edu/MRC

  28. Simplification Error • Why measure error? • Better quality LOD • Know the quality of the LOD • Usually, we want to measure appearance • Generally, we use a geometric measure as a proxy • Error measures are used in three ways: • To pick which operation to perform • To determine resulting surface from an operation (e.g. position of replacement vertex) • To pick an LOD at runtime • Two common LOD selection criteria: • Target framerate • Target quality

  29. Hausdorff Distance A B • A measure of surface deviation • h(A,B)=maxaminb(|a-b|) • H(A,B)=max(h(a,b),h(b,a)) • h is sometimes called the one-sided Hausdorff distance • Provides a bound on the maximum possible error • Project to screen space to get deviation in pixels

  30. Vertex Plane Distance • [Ranford 96] • One metric is the max distance between the vertex and the planes of the supported triangles E=maxp(p•v) v a b

  31. Quadric Error Metric • [Garland & Heckbert 97] • Use sum of squared distance rather than max distanceE=(p•v)2= (vTp) (pTv)=vT[(p pT)]v = vT[Qp]v = vTQv • Additional plane can be incorporated by a 4x4 matrix addition • Cost to compute the error given a quadric and vertex is constant

  32. Attributes • Vertices have more than just position: • Colors • Normals • Texture Coords • And now varying input to programs • Vertices may lie at a discontinuity • Different Textures • Different Material Properties • Different Shaders

  33. Attributes • [Hoppe98] introduces the idea of wedges • Wedges separate discrete attributes at a vertex • A wedge disappears when all its triangles collapse

  34. Attributes • Earlier algorithms ignored attributes or simply propagated their values • Can simply use the same metric as for position: • Normals in Euclidean space • Colors in RGB space • Better: • Normals in spherical domain • Colors in a perceptually linear color space • Generally total error is a weighted sum of position and attribute errors

  35. Normal cones • [Luebke & Erikson 97] • Used in view-dependent LOD to determine likelihood that a vertex represents the silhouette or be at a specular highlight cluster

  36. GAPS • [Erikson99] • Uses a threshold distance τ • Vertex pairs within distance τ are candidates • τ grows over simplification process • Allows topological simplification at all scales

  37. Image Driven Simplification • Render the object from a sampling of view-points • Measure error as RMS of pixels • Only redraw relevant triangles • Benefits? • Drawbacks?

  38. Simplification Envelopes • Compute interior and exterior offset surfaces at distance ε • Remove vertices and retriangulate if new surface does not intersect envelopes • Limitations?

  39. Other Forms of LOD • Image impostors • Warping (e.g. [Rafferty98]) • Texture Depth Meshes (e.g. [Aliaga99]) • Shader LOD • Number of shaders • Number of textures • Simulation LOD • Time steps • Simulation resolution • Number of particles • Lighting • Number and type of lights used

  40. Resources • LOD Book: Luebke et al. • www.lodbook.com • Surveys: • http://www.cs.cmu.edu/afs/cs/user/garland/www/multires/survey.html • http://www.cs.umd.edu/class/spring2005/cmsc828v/papers/surveyMINGLE.pdf • http://citeseer.ist.psu.edu/247479.html • http://www.cs.virginia.edu/~luebke/publications/pdf/cg+a.2001.pdf

More Related