400 likes | 493 Views
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?.
E N D
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? • 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
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
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
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
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
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
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
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
Edge Collapse • Introduced by [Hoppe93] • Variation: Half-Edge Collapse edge collapse b c a vertex split
Foldovers • Collapsing an edge can flip a face edge collapse b a c vertex split
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
Edge Collapse • Allows geomorphs • Fine-grained: 2 triangles removed for manifold case • Topology preserving • Half-edge collapse preserves vertex set
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
Morphological Operators • [Nooruddin99] • Convert polygon mesh to volumetric representation • Apply dilation operator followed by erosion operator • Reconstruct with marching cubes • Apply polygonal simplifcation
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
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
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]
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
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
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:
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
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
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
CHPM • [Yoon et al. 2004] • Addresses problems of vertex hierarchy • Same framework used for LOD collision detection
CHPM • Video: • http://gamma.cs.unc.edu/QVDR • Collision: • http://gamma.cs.unc.edu/MRC
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
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
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
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
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
Attributes • [Hoppe98] introduces the idea of wedges • Wedges separate discrete attributes at a vertex • A wedge disappears when all its triangles collapse
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
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
GAPS • [Erikson99] • Uses a threshold distance τ • Vertex pairs within distance τ are candidates • τ grows over simplification process • Allows topological simplification at all scales
Image Driven Simplification • Render the object from a sampling of view-points • Measure error as RMS of pixels • Only redraw relevant triangles • Benefits? • Drawbacks?
Simplification Envelopes • Compute interior and exterior offset surfaces at distance ε • Remove vertices and retriangulate if new surface does not intersect envelopes • Limitations?
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
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