Irregular to Completely Regular Meshing in Computer Graphics Hugues Hoppe Microsoft Research International Meshing Roundtable 2002/09/17 Hugues Hoppe Microsoft Research International Meshing Roundtable 2002/09/17
Complex meshes in graphics (1994) 70,000 faces
Complex meshes in graphics (1997) 860,000 faces
Complex meshes in graphics (2000) [Digital Michelangelo Project] 2,000,000,000 faces Challenges: - rendering - storage - transmission - scalability
Multiresolution geometry Semi-regularIrregular Completely regular
Multiresolution geometry l Irregular meshes n Progressive meshes [1996] n View-dependent refinement [1997] n Texture-mapping PM [2001] l Semi-regular meshes n Multiresolution analysis [1995] l Completely regular meshes n Geometry images [2002] l Irregular meshes n Progressive meshes [1996] n View-dependent refinement [1997] n Texture-mapping PM [2001] l Semi-regular meshes n Multiresolution analysis [1995] l Completely regular meshes n Geometry images [2002]
Goals in real-time rendering #1 : Rendering speed n frames/second #2 : Rendering quality n geometric “visual” accuracy n temporal continuity Not a Goal: l Mesh “quality” #1 : Rendering speed n frames/second #2 : Rendering quality n geometric “visual” accuracy n temporal continuity Not a Goal: l Mesh “quality”
Not a goal: mesh quality 13,000 faces 1,000 faces
Irregular meshes Vertex 1 x 1 y 1 z 1 Vertex 2 x 2 y 2 z 2 … Face Face … Rendering cost = vertex processing + rasterization ~ #vertices ~ constant yuck
Texture mapping Vertex 1 x 1 y 1 z 1 Vertex 2 x 2 y 2 z 2 … s1 t1s1 t1s2 t2s2 t2s1 t1s1 t1s2 t2s2 t2 normal map s t Face Face … “Visual” accuracy using coarse mesh
Goals in real-time rendering #1 : Rendering speed n Minimize #vertices best accuracy using irregular meshes #2 : Rendering quality n Use texture mapping parametrization #1 : Rendering speed n Minimize #vertices best accuracy using irregular meshes #2 : Rendering quality n Use texture mapping parametrization
Simplification: Edge collapse 13, faces M0M0M0M0 M1M1M1M1 M 175 ecol 0 ecol i ecol n-1 MnMnMnMn ecol
Invertible: vertex split transformation vsvsvsvs vlvlvlvl vrvrvrvr vspl(v s,v l,v r, … ) ecol
150 M0M0M0M0 M1M1M1M1 vspl Progressive mesh M … vspl i … 13,546 vspl n-1 MnMnMnMn progressive mesh (PM) representation vspl 0 … vspl i … vspl n-1 M0M0M0M0 MnMnMnMn
ApplicationsApplications l Continuous LOD l Geomorphs l Progressive transmission l Continuous LOD l Geomorphs l Progressive transmission demo
Progressive Mesh Summary PM VF M^ M0M0M0M0 n continuous-resolution n smooth LOD n progressive n space-efficient lossless n single resolution vspl
View-dependent refinement of PM’s actual view overhead view finer coarser M0M0M0M0 vspl 0 vspl 1 vspl i-1 vspl n-1
Parent-child vertex relations vsvsvsvs vtvtvtvt vuvuvuvu vsplit vsplit
v2v2v2v2 Vertex hierarchy vspl 0 M0M0M0M0 vspl 1 vspl 2 vspl 3 vspl 4 vspl 5 v1v1v1v1 v3v3v3v3 M0M0M0M0 v 10 v 11 vspl 3 v1v1v1v1 v2v2v2v2 v4v4v4v4 v5v5v5v5 vspl 0 v8v8v8v8 v9v9v9v9 vspl 2 v3v3v3v3 v6v6v6v6 v7v7v7v7 vspl 1 v5v5v5v5 v 12 v 13 vspl 4 v 10 vspl 5 v 14 v 15 v6v6v6v6 PM: MnMnMnMn M0M0M0M0
Selective refinement vspl 2 v 11 v1v1v1v1 v2v2v2v2 v4v4v4v4 v8v8v8v8 v9v9v9v9 v3v3v3v3 v7v7v7v7 v5v5v5v5 v 12 v 13 v 10 v 14 v 15 v6v6v6v6 v2v2v2v2 vspl 0 M0M0M0M0 vspl 1 vspl 3 vspl 4 vspl 5 v1v1v1v1 v3v3v3v3 M0M0M0M0 v 10 v 11 vspl 3 v1v1v1v1 v2v2v2v2 v4v4v4v4 v5v5v5v5 vspl 0 v6v6v6v6 v7v7v7v7 vspl 1 v5v5v5v5 v 12 v 13 vspl 4 v 10 selectively refined mesh v8v8v8v8 v9v9v9v9 vspl 2 v3v3v3v3 v8v8v8v8 v9v9v9v9 v3v3v3v3
initial mesh v5v5v5v5 v 10 v 11 v4v4v4v4 v8v8v8v8 v9v9v9v9 v7v7v7v7 v 12 v 13 v1v1v1v1 v2v2v2v2 v3v3v3v3 Runtime algorithm M0M0M0M0 v6v6v6v6 v 14 v 15 v 12 v 13 v 12 v 10 v 11 v 10 v 11 v4v4v4v4 v4v4v4v4 v6v6v6v6 v 14 v 15 v6v6v6v6 v 14 v 15 v8v8v8v8 v9v9v9v9 v3v3v3v3 v7v7v7v7 v7v7v7v7 v8v8v8v8 v8v8v8v8 v9v9v9v9 v9v9v9v9 new mesh dependency l Algorithm: n incremental n efficient n amortizable
DEMO: View-dependent LOD demo
Complex terrain model Puget Sound data 16K x 16K vertices ~537 million triangles 4m demo 4m demo 4m demo 4m demo 10m spacing, 0.1m resolution simpler 10m demo simpler 10m demo simpler 10m demo simpler 10m demo
Selective Refinement Summary PM VF M^vspl v1v1v1v1 M0M0M0M0 v2v2v2v2 M0M0M0M0 v3v3v3v3 v4v4v4v4 v5v5v5v5 v6v6v6v6 v7v7v7v7 v8v8v8v8 M ^ n view-dependent refinement n real-time algorithm n continuous-resolution n smooth LOD n space-efficient n progressive
Texture mapping progressive meshes l Construct texture atlas valid for all M 0 …M n. e.g faces pre-shaded demo pre-shaded demo pre-shaded demo pre-shaded demo [Sander et al 2001]
Multiresolution geometry l Irregular meshes n Progressive meshes [1996] n View-dependent refinement [1997] n Texture-mapping PM [2001] l Semi-regular meshes n Multiresolution analysis [1995] l Completely regular meshes n Geometry images [2002] l Irregular meshes n Progressive meshes [1996] n View-dependent refinement [1997] n Texture-mapping PM [2001] l Semi-regular meshes n Multiresolution analysis [1995] l Completely regular meshes n Geometry images [2002]
Semi-regular representations irregular base mesh semi-regular [Eck et al 1995] [Lee et al 1998] [Khodakovsky 2000] [Guskov et al 2000] [Lee et al 2000] …
Challenge: finding domain [Eck et al 1995] [Lee et al 1998] [Khodakovsky 2000] [Guskov et al 2000] [Lee et al 2000] … original surface base domain
TechniquesTechniques l “Delaunay” partition + parametrization l Mesh simplification + … [Lee et al. 1998] [Lee et al. 2000] [Eck et al. 1995] [Guskov et al. 2000]
Semi-regular: Applications l View-dependent refinement l Texture-mapping l Multiresolution editing l Compression l … l View-dependent refinement l Texture-mapping l Multiresolution editing l Compression l … [Lounsbery et al. 1994] [Certain et al. 1995] [Zorin et al. 1997] [Khodakovsky et al. 1999]
Multiresolution geometry l Irregular meshes n Progressive meshes [1996] n View-dependent refinement [1997] n Texture-mapping PM [2001] l Semi-regular meshes n Multiresolution analysis [1995] l Completely regular meshes n Geometry images [2002] l Irregular meshes n Progressive meshes [1996] n View-dependent refinement [1997] n Texture-mapping PM [2001] l Semi-regular meshes n Multiresolution analysis [1995] l Completely regular meshes n Geometry images [2002]
Mesh rendering: complicated process Vertex 1 x 1 y 1 z 1 Vertex 2 x 2 y 2 z 2 … random access! s1 t1s1 t1s2 t2s2 t2s1 t1s1 t1s2 t2s2 t2 Face Face …
Current architecture GPUGPU framebuffer Z-buffer geometrygeometry texturetexture $ $ $ $ random random random compression compression 2D image compression ~40M Δ/sec
New architecture n Minimize #vertices bandwidth, through compression. n Maximize sequential (non-random) access n Minimize #vertices bandwidth, through compression. n Maximize sequential (non-random) access GPUGPU framebuffer Z-buffer geometry & texture image sequential ~random great compression compression
Geometry Image geometry image 257 x 257; 12 bits/channel 3D geometry completely regular sampling [Gu et al 2002]
Basic idea demo cut parametrize
Basic idea cut sample
cut [r,g,b] = [x,y,z] render store
RenderingRendering (65x65 geometry image) demo
rendering geometry image x 12b/ch normal-map image x 8b/ch Rendering with attributes
normal map 512x512; 8b/ch Normal-Mapped Demo geometry image 129x129; 12b/ch demo pre-shaded demo pre-shaded demo pre-shaded demo pre-shaded demo
Advantages for hardware rendering l Regular sampling no vertex indices. l Unified parametrization no texture coordinates. Raster-scan traversal of source data Run-time decompression? Run-time decompression? l Regular sampling no vertex indices. l Unified parametrization no texture coordinates. Raster-scan traversal of source data Run-time decompression? Run-time decompression?
CompressionCompression 1.5 KB + topological sideband (12 B) fused cut 295 KB Image wavelet-coder
Compression results 1.5 KB 3 KB 12 KB 49 KB 295 KB
Semi-regularIrregular Completely regular Flexibility any input mesh subdivision connect. uniform grid Remeshingunnecessaryrequiredrequired Sharp features yesdifficultdifficult Neighborhood / multiresolution irregular, cumbersome mostly regular, but irregular vertices regular, except at “cut” Rendering vertex & tex. caching N-patches simple raster scan Compression poor, delta-encoding fancy wavelets, software easy wavelets, hardware? Element quality good if desired trouble areas
Texture Mapping Demo 2,000 faces demo
Displaced subdivision surfaces control mesh displaced surface [Lee et al 2000] scalar displacements surface movie
Mip-mappingMip-mapping 257x257129x12965x65
Some artifacts aliasing anisotropic sampling