Progressive meshes

Hugues Hoppe

article1996SIGGRAPH3,441 citations

Introduces a continuous-resolution triangle mesh representation based on invertible edge collapse transformations that enables progressive transmission, smooth level-of-detail geomorphing, and view-dependent selective refinement while preserving surface appearance attributes.

Listen

Highly detailed triangle meshes have become essential for realism in computer graphics yet create heavy demands on rendering, storage, and transmission. The paper therefore introduces the progressive mesh representation, which stores any triangle mesh as a coarse base mesh plus a sequence of vertex-split records that incrementally restore the original. This structure directly targets five practical needs: automatic simplification, smooth level-of-detail transitions, progressive transmission, compact encoding, and view-dependent refinement.

The work evaluates both the representation itself and a new simplification algorithm that constructs it. The algorithm repeatedly collapses edges while minimizing an energy function that accounts for geometric error, spring regularization, scalar attributes such as color and normals, and the geometry of discontinuity curves. It records the inverse vertex-split operations to produce the progressive mesh directly. Experiments were performed on several scanned and modeled meshes ranging from a few thousand to roughly 150,000 faces, with quantitative timing and bit-rate results reported for each.

The progressive mesh format yields three to five most important outcomes. First, any intermediate mesh complexity can be retrieved in linear time simply by applying a prefix of the split sequence. Second, smooth visual transitions (geomorphs) can be constructed between any two such meshes without perceptible popping. Third, the same records enable progressive transmission that recovers the exact original mesh losslessly once all data arrive. Fourth, the encoding size remains competitive with specialized single-resolution compressors while also supporting selective refinement inside a view frustum or near silhouettes. Fifth, the appearance-preserving simplification produces meshes whose faces adapt naturally to material boundaries and scalar fields, often retaining visual fidelity at far lower face counts than geometry-only methods.

These capabilities matter because they let applications trade accuracy for speed on demand, stream geometry over modest bandwidth links, and reduce storage without separate preprocessing pipelines. The representation therefore lowers both computational cost and transmission latency while preserving the visual quality that motivates the use of detailed models in the first place.

The paper recommends deploying progressive meshes for web-based 3-D delivery, continuous level-of-detail rendering, and multigrid finite-element meshes. It also lists concrete next steps: an explicit optimization metric for normals, support for articulated models, and addition of spatial indexing to accelerate selective refinement. Before large-scale adoption, further validation on production pipelines and measurement of end-to-end bandwidth savings would be prudent.

The reported results rest on a modest number of representative models and a prototype implementation that was not tuned for maximum compression; quantitative error bounds are not provided, and the method assumes manifold triangle meshes. Within those boundaries the evidence for the listed functional benefits is consistent and reproducible.

  • Paper: Surface reconstruction from unorganized points, Hugues Hoppe et al. (1992). Understanding surface reconstruction from unorganized point sets provides foundational insights into handling arbitrary topology before reading about progressive mesh generation.
Cover for Progressive meshes

Abstract

Highly detailed geometric models are rapidly becoming common-place in computer graphics. These models, often represented as complex triangle meshes, challenge rendering performance, transmission bandwidth, and storage capacities. This paper introduces the progressive mesh (PM) representation, a new scheme for storing and transmitting arbitrary triangle meshes. This efficient, lossless, continuous-resolution representation addresses several practical problems in graphics: smooth geomorphing of level-of-detail approximations, progressive transmission, mesh compression, and selective refinement.

In addition, we present a new mesh simplification procedure for constructing a PM representation from an arbitrary mesh. The goal of this optimization procedure is to preserve not just the geometry of the original mesh, but more importantly its overall appearance as defined by its discrete and scalar appearance attributes such as material identifiers, color values, normals, and texture coordinates. We demonstrate construction of the PM representation and its applications using several practical models.

Table of Contents

  • 1 INTRODUCTION
  • 2 MESHES IN COMPUTER GRAPHICS
  • 3 PROGRESSIVE MESH REPRESENTATION
  • 3.1 Overview
  • 3.2 Geomorphs
  • 3.3 Progressive transmission
  • 3.4 Mesh compression
  • 3.5 Selective refinement
  • 4 PROGRESSIVE MESH CONSTRUCTION
  • 4.1 Background: mesh optimization
  • 4.2 Overview of the simplification algorithm
  • 4.3 Preserving surface geometry (Edist+EspringE_{dist} + E_{spring})
  • 4.4 Preserving scalar attributes (EscalarE_{scalar})
  • 4.5 Preserving discontinuity curves (EdiscE_{disc})
  • 4.6 Permitting changes to topology of discontinuity curves
  • 5 RESULTS
  • 6 RELATED WORK
  • Advantages of PM over MRA:
  • 7 SUMMARY AND FUTURE WORK

Knowls

  1. Knowl 1 — Progressive Mesh Representation

    definition

    A triangle mesh MM is defined as a tuple M=(K,V,D,S)M = (K, V, D, S), where:

    • KK is a simplicial complex specifying the connectivity (adjacency of vertices, edges, and faces);
    • V={v1,,vm}V = \{v_1, \dots, v_m\} is the set of vertex positions defining the geometry in R3\mathbb{R}^3;
    • D={df:fK}D = \{d_f : f \in K\} is the set of discrete attributes (such as shader material identifiers) associated with faces f={j,k,l}Kf = \{j, k, l\} \in K;
    • S={s(v,f):(v,f)corners(K)}S = \{s_{(v, f)} : (v, f) \in \text{corners}(K)\} is the set of scalar attributes (such as diffuse color (r,g,b)(r, g, b), normals (nx,ny,nz)(n_x, n_y, n_z), and texture coordinates (u,v)(u, v)) associated with mesh corners (v,f)(v, f), where a corner is a vertex-face pair.

    An edge collapse transformation ecol({vs,vt})\text{ecol}(\{v_s, v_t\}) unifies two adjacent vertices vsv_s and vtv_t into a single vertex vsv_s, removing vertex vtv_t and the two adjacent faces {vs,vt,vl}\{v_s, v_t, v_l\} and {vt,vs,vr}\{v_t, v_s, v_r\}.

    The inverse of an edge collapse is a vertex split transformation vsplit(s,l,r,t,A)\text{vsplit}(s, l, r, t, A), which introduces a new vertex vtv_t near vsv_s, adds two new faces {vs,vt,vl}\{v_s, v_t, v_l\} and {vt,vs,vr}\{v_t, v_s, v_r\} (or one face if on a boundary where vr=0v_r = 0), and updates local attribute information AA (the positions of vsv_s and vtv_t, discrete face attributes, and scalar corner attributes).

    An arbitrary triangle mesh M^=Mn\hat{M} = M^n is simplified into a coarse base mesh M0M^0 through a sequence of nn successive edge collapses:

    Mnecoln1Mn1ecoln2ecol0M0M^n \xrightarrow{\text{ecol}_{n-1}} M^{n-1} \xrightarrow{\text{ecol}_{n-2}} \dots \xrightarrow{\text{ecol}_0} M^0

    The progressive mesh (PM) representation of M^\hat{M} is defined as the tuple:

    (M0,{vsplit0,vsplit1,,vsplitn1})(M^0, \{\text{vsplit}_0, \text{vsplit}_1, \dots, \text{vsplit}_{n-1}\})

    Applying any prefix of ii vertex splits to M0M^0 yields an intermediate approximating mesh MiM^i, providing a continuous-resolution representation that reconstructs M^=Mn\hat{M} = M^n losslessly.

  2. Knowl 2 — Progressive Mesh Construction via Priority Queue Edge Collapses

    algorithm

    The progressive mesh construction algorithm simplifies an arbitrary mesh M^=Mn\hat{M} = M^n into a base mesh M0M^0 using only edge collapse transformations, generating the sequence of inverse vertex split records vspliti\text{vsplit}_i. Candidate edge collapses are prioritized using an energy metric ΔE=EKEK\Delta E = E_{K'} - E_K that evaluates geometric error, attribute deviation, and discontinuity curve preservation.

    Input: Initial mesh M^=(K,V,D,S)\hat{M} = (K, V, D, S), point sample set XM^X \subset \hat{M}, sharp edge point sample set XdiscX_{\text{disc}}, attribute weights cscalarc_{\text{scalar}}, stopping threshold mtargetm_{\text{target}}
    Output: Base mesh M0M^0 and sequence of detail records {vsplit0,,vsplitn1}\{\text{vsplit}_0, \dots, \text{vsplit}_{n-1}\}
    MM^M \leftarrow \hat{M}
    QQ \leftarrow empty priority queue
    for each candidate edge collapse ecol({vs,vt})\text{ecol}(\{v_s, v_t\}) in MM do
        if ecol({vs,vt})\text{ecol}(\{v_s, v_t\}) is legal (manifold-preserving) then
            ΔEComputeCollapseCost(M,{vs,vt},X,Xdisc,cscalar)\Delta E \leftarrow \text{ComputeCollapseCost}(M, \{v_s, v_t\}, X, X_{\text{disc}}, c_{\text{scalar}})
            Insert {vs,vt}\{v_s, v_t\} into QQ keyed by ΔE\Delta E
        end if
    end for
    n0n \leftarrow 0
    records\text{records} \leftarrow empty list
    while QQ is not empty and FaceCount(M)>mtarget\text{FaceCount}(M) > m_{\text{target}} do
        {vs,vt}ExtractMin(Q)\{v_s, v_t\} \leftarrow \text{ExtractMin}(Q)
        if ecol({vs,vt})\text{ecol}(\{v_s, v_t\}) remains legal then
            Record corresponding vsplitn(s,l,r,t,A)\text{vsplit}_n(s, l, r, t, A) into records\text{records}
            Apply ecol({vs,vt})\text{ecol}(\{v_s, v_t\}) to MM
            nn+1n \leftarrow n + 1
            for each edge {vj,vk}\{v_j, v_k\} in neighborhood of the collapsed edge do
                if ecol({vj,vk})\text{ecol}(\{v_j, v_k\}) is legal then
                    ΔEComputeCollapseCost(M,{vj,vk},X,Xdisc,cscalar)\Delta E \leftarrow \text{ComputeCollapseCost}(M, \{v_j, v_k\}, X, X_{\text{disc}}, c_{\text{scalar}})
                    Update or insert {vj,vk}\{v_j, v_k\} in QQ with priority ΔE\Delta E
                else
                    Remove {vj,vk}\{v_j, v_k\} from QQ if present
                end if
            end for
        end if
    end while
    M0MM^0 \leftarrow M
    Reverse the order of records\text{records} so that vspliti\text{vsplit}_i inverts ecoli\text{ecol}_i
    Renumber vertices and faces in M0M^0 and records\text{records} sequentially
    return M0,recordsM^0, \text{records}
  3. Knowl 3 — Geomorph Construction Between Arbitrary PM Resolution Levels

    model/method

    Given a coarse mesh McM^c and a finer mesh MfM^f (0c<fn0 \le c < f \le n) from a progressive mesh sequence, a geomorph MG(α)M^G(\alpha) with blend parameter α[0,1]\alpha \in [0, 1] defines a continuous visual transition such that MG(0)M^G(0) has the shape and appearance of McM^c and MG(1)=MfM^G(1) = M^f.

    The mesh connectivity of MG(α)M^G(\alpha) is fixed to that of MfM^f, denoted KfK^f. A surjective ancestor map Ac:{1,,m0+f}{1,,m0+c}A^c : \{1, \dots, m_0 + f\} \to \{1, \dots, m_0 + c\} maps each vertex index jj of MfM^f to its corresponding ancestor vertex in McM^c:

    Ac(j)={j,jm0+cAc(sjm01),j>m0+cA^c(j) = \begin{cases} j, & j \le m_0 + c \\ A^c(s_{j - m_0 - 1}), & j > m_0 + c \end{cases}

    where sis_i is the split vertex index from vspliti\text{vsplit}_i.

    The vertex positions vjG(α)v_j^G(\alpha) of MG(α)M^G(\alpha) linearly interpolate between the ancestor position in McM^c and the final position in MfM^f:

    vjG(α)=αvjf+(1α)vAc(j)cv_j^G(\alpha) = \alpha v_j^f + (1 - \alpha) v_{A^c(j)}^c

    Discrete face attributes require no interpolation: faces in MfM^f that are absent in McM^c have their vertices mapped to identical ancestors at α=0\alpha = 0, rendering those triangles degenerate (zero area) and invisible at the coarse level.

    Scalar corner attributes s(v,f)s_{(v, f)} are interpolated across α\alpha. If a corner (v,f)(v, f) in MfM^f is newly created and not present in McM^c, its coarse attribute value is obtained by backtracking through ancestor corners in intermediate meshes that share the identical attribute value; if no ancestor corner shares the value, the attribute remains constant over α\alpha.

  4. Knowl 4 — Selective Refinement Using Closest Living Ancestors

    model/method

    Selective refinement adapts mesh detail locally by evaluating an application-defined boolean predicate REFINE(v)\text{REFINE}(v) (such as view-frustum inclusion, screen projected face area, or silhouette edge proximity) on candidate vertex splits.

    When selectively refining an initial mesh McM^c by iterating through vsplitc,,vsplitn1\text{vsplit}_c, \dots, \text{vsplit}_{n-1}, applying a split vspliti(si,li,ri,Ai)\text{vsplit}_i(s_i, l_i, r_i, A_i) directly requires vertices vliv_{l_i} and vriv_{r_i} to exist. Because adjacent vertices outside the refinement region may not have been created, the split condition is relaxed using a dynamically updated closest living ancestor map A:{1,,m0+n}{1,,m0+n}A': \{1, \dots, m_0 + n\} \to \{1, \dots, m_0 + n\}:

    A(j)={j,if vj exists in the current meshA(sjm01),otherwiseA'(j) = \begin{cases} j, & \text{if } v_j \text{ exists in the current mesh} \\ A'(s_{j - m_0 - 1}), & \text{otherwise} \end{cases}

    The split transformation is applied if and only if:

    1. vsiv_{s_i} is present in the current mesh (i.e., A(si)=siA'(s_i) = s_i) and the vertices vA(li)v_{A'(l_i)} and vA(ri)v_{A'(r_i)} are both currently adjacent to vsiv_{s_i}; and
    2. REFINE(vsi)\text{REFINE}(v_{s_i}) evaluates to true.

    When executed, the transformation is parameterized as vsplit(si,A(li),A(ri),Ai)\text{vsplit}(s_i, A'(l_i), A'(r_i), A_i). This prevents cracking and avoids stalling refinement when expected neighbors lie outside the active region.

  5. Knowl 5 — Geometric Energy Optimization and Adaptive Spring Regularization

    equation

    The geometric error of approximating a dense set of sampled points XR3X \subset \mathbb{R}^3 by a mesh M=(K,V)M = (K, V) is evaluated and minimized using the energy terms:

    Egeom(V)=Edist(V)+Espring(V)E_{\text{geom}}(V) = E_{\text{dist}}(V) + E_{\text{spring}}(V)

    where the distance energy measures the sum of squared Euclidean distances from the sampled points to the surface:

    Edist(V)=xiXd2(xi,ϕV(K))=xiXminbiKxiϕV(bi)2E_{\text{dist}}(V) = \sum_{x_i \in X} d^2(x_i, \phi_V(|K|)) = \sum_{x_i \in X} \min_{b_i \in |K|} \|x_i - \phi_V(b_i)\|^2

    and the spring regularization energy places zero-rest-length springs along edges to prevent under-constrained optimization:

    Espring(V)={j,k}Kκvjvk2E_{\text{spring}}(V) = \sum_{\{j, k\} \in K} \kappa \|v_j - v_k\|^2

    The spring constant κ\kappa is computed adaptively for each candidate edge collapse based on the ratio r=XlocalFlocalr = \frac{|X_{\text{local}}|}{F_{\text{local}}} of point samples to faces in the local transformation neighborhood:

    κ={102,r<4104,4r<8108,r8\kappa = \begin{cases} 10^{-2}, & r < 4 \\ 10^{-4}, & 4 \le r < 8 \\ 10^{-8}, & r \ge 8 \end{cases}

    When evaluating ecol({vs,vt})\text{ecol}(\{v_s, v_t\}), the unified vertex position vsv_s is optimized by alternating between calculating projection parameterizations bib_i and solving a linear least-squares system for vsv_s, testing three starting positions vs=(1α)vsi+1+αvti+1v_s = (1 - \alpha)v_s^{i+1} + \alpha v_t^{i+1} for α{0,0.5,1}\alpha \in \{0, 0.5, 1\} and selecting the candidate that achieves minimal energy.

  6. Knowl 6 — Scalar Attribute Optimization at Mesh Corners

    model/method

    To preserve continuous and piecewise continuous scalar fields (such as color, normals, or texture coordinates) during mesh simplification without computing high-dimensional non-geometric spatial projections, scalar attribute error is measured using fixed geometric parameterizations biKb_i \in |K|:

    Escalar(V,S)=(cscalar)2xiXxiϕV(bi)2E_{\text{scalar}}(V, S) = (c_{\text{scalar}})^2 \sum_{x_i \in X} \|\underline{x}_i - \underline{\phi}_V(b_i)\|^2

    where xiRd\underline{x}_i \in \mathbb{R}^d is the sampled scalar attribute at point xix_i, ϕV(bi)\underline{\phi}_V(b_i) is the interpolated scalar field at barycentric coordinate bib_i, and cscalarc_{\text{scalar}} is a user-defined scaling weight relating scalar attribute error to geometric error.

    For corner attributes at a unified vertex vsv_s:

    1. The set of corners incident to vsv_s is partitioned into disjoint equivalence classes based on matching attribute values across adjacent faces.
    2. For each independent partition, the optimal scalar attribute value is solved via an uncoupled linear least-squares problem using the parameterizations bib_i obtained during geometric optimization.
    3. Attributes with bounded ranges (e.g., color components (r,g,b)[0,1](r, g, b) \in [0, 1]) are clipped to their valid intervals.
    4. Unit surface normals (nx,ny,nz)(n_x, n_y, n_z) are not solved via non-linear least squares; instead, the new normal at vsv_s is linearly interpolated from the normals of vsi+1v_s^{i+1} and vti+1v_t^{i+1} using the parameter α{0,0.5,1}\alpha \in \{0, 0.5, 1\} that minimized the geometric energy.
  7. Knowl 7 — Preservation and Topological Penalization of Discontinuity Curves

    model/method

    Discontinuity curves arise from surface boundaries, discrete face attribute differences (dfldfrd_{f_l} \ne d_{f_r}), and scalar corner attribute differences (s(vj,fl)s(vj,fr)s_{(v_j, f_l)} \ne s_{(v_j, f_r)} or s(vk,fl)s(vk,fr)s_{(v_k, f_l)} \ne s_{(v_k, f_r)}) across an edge {vj,vk}\{v_j, v_k\}, designated as sharp(vj,vk)\text{sharp}(v_j, v_k).

    A candidate edge collapse ecol({vs,vt})\text{ecol}(\{v_s, v_t\}) modifies the topology of discontinuity curves if any of the following conditions hold (where #sharp(v)\#\text{sharp}(v) is the number of sharp edges incident to vv):

    • sharp(vs,vl)sharp(vt,vl)\text{sharp}(v_s, v_l) \land \text{sharp}(v_t, v_l)
    • sharp(vs,vr)sharp(vt,vr)\text{sharp}(v_s, v_r) \land \text{sharp}(v_t, v_r)
    • #sharp(vs)1#sharp(vt)1¬sharp(vs,vt)\#\text{sharp}(v_s) \ge 1 \land \#\text{sharp}(v_t) \ge 1 \land \neg\text{sharp}(v_s, v_t)
    • #sharp(vs)3#sharp(vt)3sharp(vs,vt)\#\text{sharp}(v_s) \ge 3 \land \#\text{sharp}(v_t) \ge 3 \land \text{sharp}(v_s, v_t)
    • sharp(vs,vt)#sharp(vs)=1#sharp(vt)2\text{sharp}(v_s, v_t) \land \#\text{sharp}(v_s) = 1 \land \#\text{sharp}(v_t) \ne 2
    • sharp(vs,vt)#sharp(vt)=1#sharp(vs)2\text{sharp}(v_s, v_t) \land \#\text{sharp}(v_t) = 1 \land \#\text{sharp}(v_s) \ne 2

    Geometric accuracy along discontinuity curves is maintained by sampling points XdiscX_{\text{disc}} from sharp edges in M^\hat{M} and adding an energy term Edisc(V)E_{\text{disc}}(V) measuring squared distances from XdiscX_{\text{disc}} to the sharp edges of MM.

    To allow simplification of small or distant features without strictly locking topology, edge collapses that alter discontinuity curve topology are permitted but penalized by adding an energy penalty to ΔE\Delta E:

    ΔEtopo=Xdisc,{vs,vt}vsvt2\Delta E_{\text{topo}} = |X_{\text{disc}, \{v_s, v_t\}}| \|v_s - v_t\|^2

    where Xdisc,{vs,vt}|X_{\text{disc}, \{v_s, v_t\}}| is the count of sharp-edge sample points projecting onto edge {vs,vt}\{v_s, v_t\}.

  8. Knowl 8 — Progressive Mesh Encoding and Compression

    model/method

    The progressive mesh representation allows compact encoding of both mesh connectivity and geometry:

    • Connectivity Encoding: For each vertex split vspliti(si,li,ri,Ai)\text{vsplit}_i(s_i, l_i, r_i, A_i), vertex vsiv_{s_i} is identified using log2n\lceil \log_2 n \rceil bits. The neighbor vertices vliv_{l_i} and vriv_{r_i} are chosen from the ordered neighborhood of vsiv_{s_i} (average degree 6). Storing the permutation index requires log2P26=log230=5\lceil \log_2 P_2^6 \rceil = \lceil \log_2 30 \rceil = 5 bits, resulting in approximately (log2n+5)n(\lceil \log_2 n \rceil + 5)n bits for overall connectivity.
    • Geometry Encoding: Coordinates are quantized to 16-bit fixed precision integers. For an edge collapse with starting position vn{vs,vt,vs+vt2}v_n \in \{v_s, v_t, \frac{v_s + v_t}{2}\}, the split positions vsi+1v_s^{i+1} and vti+1v_t^{i+1} are delta-encoded as either {vsvn,vtvn}\{v_s - v_n, v_t - v_n\} or {vs+vt2vn,vtvs2}\{\frac{v_s+v_t}{2} - v_n, \frac{v_t - v_s}{2}\}. The quantized deltas are compressed using separate Huffman tables for each candidate type, achieving geometry storage of 31 to 50 bits per vertex.
    • Attribute Encoding: Material identifiers and corner scalar attributes are delta-predicted from adjacent faces in MiM^i using control bits.
  9. Knowl 9 — Quantitative Performance of PM Construction and Compression

    data/table

    Quantitative performance and parameter configurations for constructing progressive meshes from five test models on a 150 MHz SGI Indigo2 workstation (128 MB memory) are shown below. The table details original mesh complexity (m0+nm_0 + n vertices, face count), base mesh complexity (m0m_0 vertices, face count), point sampling parameters, discontinuity curve sample count Xdisc|X_{\text{disc}}|, geometry compression rate in bits per vertex, and total optimization runtime.

    Object Original M^\hat{M} Base M0M^0 User param. Xdisc|X_{\text{disc}}| VV bits/nn Time (min)
    m0+nm_0+n #faces m0m_0 #faces X(m0+n)|X| - (m_0+n) ccolorc_{\text{color}}
    cessna 6,795 13,546 97 150 100,000 - 46,811 46 23
    terrain 33,847 66,960 3 1 0 - 3,796 46 16
    mandrill 40,000 79,202 3 1 0 0.1 4,776 31 19
    radiosity 78,923 150,983 1,192 1,191 200,000 0.01 74,316 37 106
    fandisk 6,475 12,946 27 50 10,000 - 5,924 50 19

    The results show that complex models with up to 150,983 faces can be reduced to minimal base meshes (11 to 1,1911,191 faces) while retaining the full sequence of detail records for exact reconstruction. Quantized, Huffman-coded geometry storage ranges from 31 to 50 bits per vertex across all datasets.

  10. Knowl 10 — Properties and Trade-offs of Progressive Meshes Compared to Multiresolution Wavelet Analysis

    theoretical result

    Progressive meshes (PM) and surface multiresolution analysis (MRA) wavelets both provide continuous-resolution representations, but exhibit distinct structural properties:

    1. Lossless vs. Approximate Recovery: MRA requires detail wavelet coefficients to lie on a domain with subdivision connectivity, recovering arbitrary meshes M^\hat{M} only within an ϵ\epsilon-tolerance. In contrast, PM is strictly lossless (Mn=M^M^n = \hat{M}) and operates on arbitrary irregular connectivity.
    2. Approximation Quality: Approximating meshes MiM^i in a PM sequence can alter connectivity freely, optimizing triangle distributions to geometric features and outperforming subdivision-restricted MRA meshes at equivalent face counts.
    3. Discontinuity Representation: PM can introduce surface creases and sharp boundaries at arbitrary locations and resolution levels. MRA cannot effectively capture creases unless they align parametrically with base mesh edges, and cannot naturally represent discrete face attributes without non-continuous Haar bases.
    4. Parameterization and Error Bounds: MRA provides a smooth parameterization between resolutions that facilitates multiresolution editing, provides guaranteed maximum error bounds ϵ\epsilon, and supports independent compression of geometry and color. PM yields piecewise linear, non-smooth parameterizations and lacks strict maximum error bounds in its standard construction.

Coverage note — No substantial contributed material was omitted; all primary contributions regarding progressive mesh representation, geomorphing, selective refinement, energy-based optimization, attribute preservation, compression, and experimental comparisons are covered.

References

  1. 1.APPLE COMPUTER, INC. 3D graphics programming with QuickDraw 3D. Addison Wesley, 1995.
  2. 2.CERTAIN, A., POPOVIC, J., DUCHAMP, T., SALESIN, D., STUETZLE, W., AND DEROSE, T. Interactive multiresolution surface viewing. Computer Graphics (SIGGRAPH '96 Proceedings) (1996).
  3. 3.CLARK, J. Hierarchical geometric models for visible surface algorithms. Communications of the ACM 19, 10 (Oct. 1976), 547–554.
  4. 4.COHEN, J., VARSHNEY, A., MANOCHA, D., TURK, G., WEBER, H., AGARWAL, P., BROOKS, F., AND WRIGHT, W. Simplification envelopes. Computer Graphics (SIGGRAPH '96 Proceedings) (1996).
  5. 5.CURLESS, B., AND LEVOY, M. A volumetric method for building complex models from range images. Computer Graphics (SIGGRAPH '96 Proceedings) (1996).
  6. 6.DEERING, M. Geometry compression. Computer Graphics (SIGGRAPH '95 Proceedings) (1995), 13–20.
  7. 7.ECK, M., DEROSE, T., DUCHAMP, T., HOPPE, H., LOUNSBERY, M., AND STUETZLE, W. Multiresolution analysis of arbitrary meshes. Computer Graphics (SIGGRAPH '95 Proceedings) (1995), 173–182.
  8. 8.FUNKHOUSER, T., AND SÉQUIN, C. Adaptive display algorithm for interactive frame rates during visualization of complex virtual environments. Computer Graphics (SIGGRAPH '93 Proceedings) (1995), 247–254.
  9. 9.HOPPE, H., DEROSE, T., DUCHAMP, T., MCDONALD, J., AND STUETZLE, W. Mesh optimization. Computer Graphics (SIGGRAPH '93 Proceedings) (1993), 19–26.
  10. 10.LOUNSBERY, J. M. Multiresolution analysis for surfaces of arbitrary topological type. PhD thesis, Dept. of Computer Science and Engineering, U. of Washington, 1994.
  11. 11.LOUNSBERY, M., DEROSE, T., AND WARREN, J. Multiresolution analysis for surfaces of arbitrary topological type. Submitted for publication. (TR 93-10-05b, Dept. of Computer Science and Engineering, U. of Washington, January 1994.).
  12. 12.ROSSIGNAC, J., AND BORREL, P. Multi-resolution 3D approximations for rendering complex scenes. In Modeling in Computer Graphics, B. Falcidieno and T. L. Kunii, Eds. Springer-Verlag, 1993, pp. 455–465.
  13. 13.SCHRÖDER, P., AND SWELDENS, W. Spherical wavelets: Efficiently representing functions on the sphere. Computer Graphics (SIGGRAPH '95 Proceedings) (1995), 161–172.
  14. 14.SCHROEDER, W., ZARGE, J., AND LORENSEN, W. Decimation of triangle meshes. Computer Graphics (SIGGRAPH '92 Proceedings) 26, 2 (1992), 65–70.
  15. 15.TAUBIN, G., AND ROSSIGNAC, J. Geometry compression through topological surgery. Research Report RC-20340, IBM, January 1996.
  16. 16.TURAN, G. Succinct representations of graphs. Discrete Applied Mathematics 8 (1984), 289–294.
  17. 17.TURK, G. Re-tiling polygonal surfaces. Computer Graphics (SIGGRAPH '92 Proceedings) 26, 2 (1992), 55–64.
  18. 18.UPSTILL, S. The RenderMan Companion. Addison-Wesley, 1990.
  19. 19.WITTEN, I., NEAL, R., AND CLEARY, J. Arithmetic coding for data compression. Communications of the ACM 30, 6 (June 1987), 520–540.

Citation

MLA
Hoppe, H. “Progressive Meshes”. Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, 1996, pp. 99–108, https://doi.org/10.1145/237170.237216.
APA
Hoppe, H. (1996). Progressive meshes. Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, 99–108. https://doi.org/10.1145/237170.237216
Chicago
Hoppe, H. 1996. “Progressive Meshes”. Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, 99–108. https://doi.org/10.1145/237170.237216.
Harvard
Hoppe, H. (1996) “Progressive meshes”, Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. ACM, pp. 99–108. Available at: https://doi.org/10.1145/237170.237216.
Vancouver
1. Hoppe H (1996) Progressive meshes. In: Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. ACM, pp 99–108

BibTeX

@inproceedings{Hoppe_1996, series={SIGGRAPH96}, title={Progressive meshes}, url={http://dx.doi.org/10.1145/237170.237216}, DOI={10.1145/237170.237216}, booktitle={Proceedings of the 23rd annual conference on Computer graphics and interactive techniques}, publisher={ACM}, author={Hoppe, Hugues}, year={1996}, month=Aug, pages={99–108}, collection={SIGGRAPH96} }
Metadata:Crossref

Source Code

This paper has an official code repository available. Click below to access the source code.

View Repository

Access the Paper

This paper is available from its original source. Click below to access the PDF.

Open PDF