15 Efficient mesh models
Steve Marschner CS5625 Spring 2020
Follows chapter 16 in RTR 4e
15 E ffi cient mesh models Steve Marschner CS5625 Spring 2020 - - PowerPoint PPT Presentation
15 E ffi cient mesh models Steve Marschner CS5625 Spring 2020 Follows chapter 16 in RTR 4e Basics of e ffi ciency for meshes Use triangle or quad meshes general polygon meshes lead to too much complexity quad meshes are great for some
Follows chapter 16 in RTR 4e
Use triangle or quad meshes
Use shared-vertex triangle meshes for GPU applications
Store most data at vertices
Optimizing vertex order
Reducing the number of triangles
Triangle strips gain efficiency by caching the most recent two vertices
With indexed meshes, saving indices is less important
(“transparent” vertex caching)
Newer systems are built with post-transform vertex caches
As with other applications of caches, now order of data access matters
[Hoppe 1999] r is the average cache miss rate
[Sander et al. 2007 “Fast Triangle Reordering for Vertex Locality and Reduced Overdraw”]
Many ways to simplify meshes
Particularly simple and effective is edge collapses, or edge contractions:
Edge-collapse simplification produces a sequence of meshes
Key question: where to put the vertex after the collapse?
It depends on the mesh geometry:
before the edge collapse
A particularly convenient error metric: sum of squared distances to planes
with (a, b, c) components normalized
With the error in the form of a quadric per vertex:
simply sum the errors of the two vertices:
∆(v) = ∆1(v) + ∆2(v) = vT Q1v + vT Q2v = vT (Q1 + Q2)v
<latexit sha1_base64="CuIkw7Zzlgy9z1iFLE8caL2K53E=">ACmXicbVFb9MwGHUyLl2B0cHjXiwqUCegubRs5QExLg8T4mET6zap6SLH/bJZc5xgO9GqaD90/4J/AHayTQPxSZbOd/5fDlOCs6U9v0rx125d/Bw85q9HjJ2tPe+vPDlVeSgpTmvNcHidEAWcCpDseFBJIlHI6S8y+2f1SBVCwXB3pZwDwjp4KljBJtpLinoq/ANRlEVbWJX3ALY2DVnh9w8OGR1HXWqrq5ABH2X4cWGxNt0po8V3boPVZk21vWjnu9f3hJHjnb49wC8bvr8HWCAdDv6n+x1+oqb143VmLFjktMxCacqLULPAL/Sbl8FPMayI1oxwu1GpoCD0nJzCzEBMlDzusnoEr80ygKnuTRLaNyodydqkim1zBLjzIg+U/2rPi/3qzU6WReM1GUGgRtD0pLjnWObeB4wSRQzZcGECqZuSumZ0QSqs23dKNmsPamyjBPycz7zhJ5NLTcJGlHhOUlwvwzLmSXbytzFbmNU2C4zCcjG2CFoyCGzC5TfAwHAajob8/7u98bqNEHbSBXqABCtA2kG7aA9NEUVX6LfTcVbdDfeTu+t+a62ucz3zHP1V7o8/Xt7GoA=</latexit>69k faces 1k faces surfaces of constant cost for reducing to 999 faces [Garland & Heckbert 1997 “Surface Simplification Using Quadric Error Metrics”]
Key observation: edge collapse is invertible
Thus a sequence of edge collapses, reversed, is a representation for a mesh
[Hoppe 1996 “Progressive Meshes”]
Store full representation, load various levels of detail
Can interpolate (“geomorphs”)
Extra details (of QEM and PM)
[Hoppe 1996 “Progressive Meshes”]
[Hoppe 1996 “Progressive Meshes”]