40
Appearance-Preserving Simplification Appearance-Preserving Appearance-Preserving Simplification Simplification

Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Appearance-PreservingSimplification

Appearance-PreservingAppearance-PreservingSimplificationSimplification

Page 2: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

model courtesy of Stanford and Caltech

7809 tris

3905 tris

1951 tris

975 tris

488 tris

Page 3: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

SimplificationSimplificationSimplification

• Create representation for faster rendering

• Measure representation quality

• Allow speed-fidelity tradeoff

•• Create representation for faster renderingCreate representation for faster rendering

•• Measure representation qualityMeasure representation quality

•• Allow speed-fidelity tradeoffAllow speed-fidelity tradeoff

Page 4: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Appearance PreservationAppearance PreservationAppearance Preservation

Preserve three appearance attributes:

• Surface Position

• Surface Curvature

• Material Color

Each may require different sampling

Preserve three appearance attributes:Preserve three appearance attributes:

•• Surface PositionSurface Position

•• Surface CurvatureSurface Curvature

•• Material ColorMaterial Color

Each may require different samplingEach may require different sampling

Page 5: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Example - normals undersampledExample - normals undersampledExample - normals undersampled

13,433 triangles 1,749 triangles10 pixels of surface deviation

Page 6: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Example - normals properly sampledExample - normals properly sampledExample - normals properly sampled

13,433 triangles 1,749 triangles, 10 pixels of deviation

Page 7: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Talk OrganizationTalk OrganizationTalk Organization

• Overview

• Creating Maps

• Texture Error Metric

• Implementation and Results

• Conclusions

•• OverviewOverview

•• Creating MapsCreating Maps

•• Texture Error MetricTexture Error Metric

•• Implementation and ResultsImplementation and Results

•• ConclusionsConclusions

Page 8: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Traditional Polygonal RepresentationTraditional Polygonal RepresentationTraditional Polygonal Representation

v1, c1, n1

v = vertex coordinate = (x,y,z)c = color = (r,g,b)n = normal = (nx,ny,nz)

v2, c2, n2

v3, c3, n3

Page 9: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Traditional SimplificationTraditional SimplificationTraditional Simplification

• Filters surface position, colors, and normals

• Must filter all three equally

•• Filters surface position, colors, and normalsFilters surface position, colors, and normals

•• Must filter all three Must filter all three equallyequally

Page 10: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Decoupled RepresentationDecoupled RepresentationDecoupled Representation

texture map

normal map

v1, t1

v2, t2

v3, t3

v = vertex coordinate = (x,y,z)t = texture coordinate = (u,v)c = color = (r,g,b)n = normal vector = (nx,ny,nz)

c1

c2c3

n1

n2n3

Page 11: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Decoupled ApproachDecoupled ApproachDecoupled Approach

• Simplification filters surface position and texture

coordinates

• Color and normal attributes filtered per-pixel

(mip-mapping, etc.)

•• Simplification filters surface position and textureSimplification filters surface position and texture

coordinatescoordinates

•• Color and normal attributes filtered per-pixelColor and normal attributes filtered per-pixel

(mip-mapping, etc.)(mip-mapping, etc.)

Page 12: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Simplification System ArchitectureSimplification System ArchitectureSimplification System Architecture

SurfaceParameterization

MapCreation

SurfaceApproximation

TextureDeviation

Metric

SimplificationRepresentation

ConversionPolygonalSurface

Levels ofDetail

Texture andNormal Maps

Page 13: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Talk OrganizationTalk OrganizationTalk Organization

• Overview

• Creating Maps

• Texture Error Metric

• Implementation and Results

• Conclusions

•• OverviewOverview

•• Creating MapsCreating Maps

•• Texture Error MetricTexture Error Metric

•• Implementation and ResultsImplementation and Results

•• ConclusionsConclusions

Page 14: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Creating MapsCreating MapsCreating Maps

Resampling Process

• Scan-convert polygons into map

• Store color or normal attribute at pixels

Resampling ProcessResampling Process

•• Scan-convert polygons into mapScan-convert polygons into map

•• Store color or normal attribute at pixelsStore color or normal attribute at pixels

Page 15: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Sample Normal MapSample Normal MapSample Normal Map

polygonal surface patch normal map

Page 16: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Talk OrganizationTalk OrganizationTalk Organization

• Overview

• Creating Maps

• Texture Error Metric

• Implementation and Results

• Conclusions

•• OverviewOverview

•• Creating MapsCreating Maps

•• Texture Error MetricTexture Error Metric

•• Implementation and ResultsImplementation and Results

•• ConclusionsConclusions

Page 17: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Error Sources Effects on ImageError SourcesError Sources Effects on ImageEffects on Image

• Simplification of vertex coordinates

Silhouette deviation

• Simplification of texture coordinates

Texture deviation (distortion)

• Attribute mip-mapping

Overblurring of attributes

•• Simplification of vertex coordinatesSimplification of vertex coordinates

Silhouette deviationSilhouette deviation

•• Simplification of texture coordinatesSimplification of texture coordinates

Texture deviation (distortion)Texture deviation (distortion)

•• Attribute mip-mappingAttribute mip-mapping

Overblurring of attributesOverblurring of attributes

Page 18: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Texture Deviation MetricTexture Deviation MetricTexture Deviation Metric

• Distance between corresponding 3D points

• Same 2D texture coordinates

• Projects at run time to 2D pixel deviation

• Intuitive error tolerance specification

• Pixels of deviation for both surface position andtexture error!

•• Distance between Distance between correspondingcorresponding 3D points 3D points

•• Same 2D texture coordinatesSame 2D texture coordinates

•• Projects at run time to 2D pixel deviationProjects at run time to 2D pixel deviation

•• Intuitive error tolerance specificationIntuitive error tolerance specification

•• Pixels of deviation for both surface position andPixels of deviation for both surface position andtexture error!texture error!

Page 19: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Point CorrespondencePoint CorrespondencePoint Correspondence

mesh Mmesh Mii mesh Mmesh Mi+1i+1

2D texture domain2D texture domain

(i+1)(i+1)stst edge collapse edge collapse

XXii XXi+1i+1

xx ei,i+1(x) = || Xi+1 - Xi ||

Ei,i+1 = max ei,i+1(x) x∈∈∈∈P

P

Page 20: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Measuring Texture DeviationMeasuring Texture DeviationMeasuring Texture Deviation

• Texture deviation is piecewise-linear distancefunction

• Extrema occur at vertices and edge intersections in2D texture domain

• Check only these extrema to find maximum

•• Texture deviation is piecewise-linear distanceTexture deviation is piecewise-linear distancefunctionfunction

•• Extrema occur at vertices and edge intersections inExtrema occur at vertices and edge intersections in2D texture domain2D texture domain

•• Check only these extrema to find maximumCheck only these extrema to find maximum

Page 21: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Mapping in Texture DomainMapping in Texture DomainMapping in Texture Domain

= extrema of texture deviation function

Page 22: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Video ExampleVideo ExampleVideo Example

Constraining Texture DistortionConstraining Texture DistortionConstraining Texture Distortion

Page 23: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Lion’s TailLion’s TailLion’s Tail

1,743 tris 108 tris 434 tris

original mesh only surfacedeviation measured

3 pixels of screen-space deviation

surface and texturedeviation measured

Page 24: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Talk OrganizationTalk OrganizationTalk Organization

• Overview

• Creating Maps

• Texture Error Metric

• Implementation and Results

• Conclusions

•• OverviewOverview

•• Creating MapsCreating Maps

•• Texture Error MetricTexture Error Metric

•• Implementation and ResultsImplementation and Results

•• ConclusionsConclusions

Page 25: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Simplification PreprocessSimplification PreprocessSimplification Preprocess

• Parameterize and create maps

• Priority queue of edge collapses

• 3D surface deviation used to compute new vertex

• 3D texture deviation determines edge priority

• Generate LODs with 3D texture error metric

•• Parameterize and create mapsParameterize and create maps

•• Priority queue of edge collapsesPriority queue of edge collapses

•• 3D surface deviation used to compute new vertex3D surface deviation used to compute new vertex

•• 3D texture deviation determines edge priority3D texture deviation determines edge priority

•• Generate LODs with 3D texture error metricGenerate LODs with 3D texture error metric

Page 26: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Simple Viewer ApplicationSimple Viewer ApplicationSimple Viewer Application

• User specifies 2D error tolerance in pixels

• For each object

• Determine viewing distance

• Compute bound on 3D tolerance

• Choose LOD: 3D error < 3D tolerance

• Use custom normal map shader on PixelFlow

•• User specifies 2D error tolerance in pixelsUser specifies 2D error tolerance in pixels

•• For each objectFor each object

•• Determine viewing distanceDetermine viewing distance

•• Compute bound on 3D toleranceCompute bound on 3D tolerance

•• Choose LOD: 3D error < 3D toleranceChoose LOD: 3D error < 3D tolerance

•• Use custom normal map shader on PixelFlowUse custom normal map shader on PixelFlow

Page 27: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Results - PreprocessResults - PreprocessResults - Preprocess

• Torus 79,202 triangles 4.4 mins

• Lion 86,844 triangles 7.4 mins

• Armadillo 2,040,000 triangles 190 mins

Timings run on MIPS R10000 processor

•• Torus Torus 79,202 triangles79,202 triangles 4.4 mins4.4 mins

•• LionLion 86,844 triangles86,844 triangles 7.4 mins7.4 mins

•• Armadillo Armadillo 2,040,000 triangles2,040,000 triangles 190 mins190 mins

Timings run on MIPS R10000 processorTimings run on MIPS R10000 processor

Page 28: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Results - ViewerResults - ViewerResults - Viewer

Trivial overhead for run-time LOD selectionTrivial overhead for run-time LOD selectionTrivial overhead for run-time LOD selection

Page 29: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Video DemonstrationVideo DemonstrationVideo Demonstration

Appearance-Preserving Simplification:

The “Armadillo” Model

Appearance-Preserving Simplification:Appearance-Preserving Simplification:

The “Armadillo” ModelThe “Armadillo” Model

Page 30: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Armadillo ModelArmadillo ModelArmadillo Model

1 M triangles 7,800 triangles 7,800 triangles16 pixels of deviation

model courtesy ofStanford / Cal Tech

Page 31: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Talk OrganizationTalk OrganizationTalk Organization

• Overview

• Creating Maps

• Measuring Error

• Implementation and Results

• Conclusions

•• OverviewOverview

•• Creating MapsCreating Maps

•• Measuring ErrorMeasuring Error

•• Implementation and ResultsImplementation and Results

•• ConclusionsConclusions

Page 32: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Hardware RequirementsHardware RequirementsHardware Requirements

• Texture and normal (or bump) map capability

• Bandwidth for attribute map lookups

• Per-pixel lighting computation

• Currently implemented on PixelFlow

• Coming soon to more commercial hardware

•• Texture and normal (or bump) map capabilityTexture and normal (or bump) map capability

•• Bandwidth for attribute map lookupsBandwidth for attribute map lookups

•• Per-pixel lighting computationPer-pixel lighting computation

•• Currently implemented on PixelFlowCurrently implemented on PixelFlow

•• Coming soon to more commercial hardwareComing soon to more commercial hardware

Page 33: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Normal Map vs. Bump MapNormal Map vs. Bump MapNormal Map vs. Bump Map

Normal map• Absolute normals in object space

• Constant as object is simplified

—Same normal map okay for all LODs

Bump map• Perturbations of triangle normal

• Changes as object is simplified

—Need different bump map for each LOD

Normal mapNormal map•• Absolute normals in object spaceAbsolute normals in object space

•• Constant as object is simplifiedConstant as object is simplified

——Same normal map okay for all LODsSame normal map okay for all LODs

Bump mapBump map•• Perturbations of triangle normalPerturbations of triangle normal

•• Changes as object is simplifiedChanges as object is simplified

——Need different bump map for each LODNeed different bump map for each LOD

Page 34: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Is This Really Simplification?Is This Really Simplification?Is This Really Simplification?

YES!!

• Rasterization cost greatly reduced

• Shading cost depends only on screen resolution(and depth complexity)

YES!!YES!!

•• Rasterization cost greatly reducedRasterization cost greatly reduced

•• Shading cost depends only on screen resolutionShading cost depends only on screen resolution(and depth complexity)(and depth complexity)

Page 35: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

ContributionsContributionsContributions

• Use of decoupled representation for simplification

• New texture deviation metric

• Intuitive error tolerance specification

• Simplification that preserves shaded appearance

•• Use of decoupled representation for simplificationUse of decoupled representation for simplification

•• New texture deviation metricNew texture deviation metric

•• Intuitive error tolerance specificationIntuitive error tolerance specification

•• Simplification that preserves shaded appearanceSimplification that preserves shaded appearance

Page 36: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Future WorkFuture WorkFuture Work

• Application to view-dependent simplification

• Parameterizations for better attribute filtering

• Handling of more degenerate models

•• Application to view-dependent simplificationApplication to view-dependent simplification

•• Parameterizations for better attribute filteringParameterizations for better attribute filtering

•• Handling of more degenerate modelsHandling of more degenerate models

Page 37: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Related Work - RepresentationRelated Work - RepresentationRelated Work - Representation

Parameterization• Lee et al. 98• Krishnamurthy/Levoy 96• Eck et al. 95• Maillot et al. 93• Kent et al. 92

Graph Drawing• Battista et al. 94• Fraysseix 90• Chiba et al. 85

ParameterizationParameterization•• Lee et al. 98Lee et al. 98•• Krishnamurthy/Levoy 96Krishnamurthy/Levoy 96•• Eck et al. 95Eck et al. 95•• Maillot et al. 93Maillot et al. 93•• Kent et al. 92Kent et al. 92

Graph DrawingGraph Drawing•• Battista et al. 94Battista et al. 94•• Fraysseix 90Fraysseix 90•• Chiba et al. 85Chiba et al. 85

Attribute Maps• Peercy et al. 97• Becker and Max 93• Fournier 92• Cabral et al. 87• Kajiya 85• Cook 84• Williams 83• Blinn 78• Catmull 74

Attribute MapsAttribute Maps•• Peercy et al. 97Peercy et al. 97•• Becker and Max 93Becker and Max 93•• Fournier 92Fournier 92•• Cabral et al. 87Cabral et al. 87•• Kajiya 85Kajiya 85•• Cook 84Cook 84•• Williams 83Williams 83•• Blinn 78Blinn 78•• Catmull 74Catmull 74

Page 38: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

Related Work - SimplificationRelated Work - SimplificationRelated Work - Simplification

Surface Deviation• Garland/Heckbert 97• Bajaj/Schikore 96• Cohen/Varshney et al. 96• Klein et al. 96• Ronfard/Rossignac 96• Guéziec 95• Kalvin/Taylor 94• Hoppe 93• Rossignac/Borrel 93

Surface DeviationSurface Deviation•• Garland/Heckbert 97Garland/Heckbert 97•• Bajaj/Schikore 96Bajaj/Schikore 96•• Cohen/Varshney et al. 96Cohen/Varshney et al. 96•• Klein et al. 96Klein et al. 96•• Ronfard/Rossignac 96Ronfard/Rossignac 96•• Guéziec 95Guéziec 95•• Kalvin/Taylor 94Kalvin/Taylor 94•• Hoppe 93Hoppe 93•• Rossignac/Borrel 93Rossignac/Borrel 93

Attributes

• Erikson/Manocha 98

• Bastos et al. 97

• Xia et al. 97

• Klein 97

• Certain et al. 96

• Hoppe 96

• Hughes et al. 96

AttributesAttributes

•• Erikson/Manocha 98Erikson/Manocha 98

•• Bastos et al. 97Bastos et al. 97

•• Xia et al. 97Xia et al. 97

•• Klein 97Klein 97

•• Certain et al. 96Certain et al. 96

•• Hoppe 96Hoppe 96

•• Hughes et al. 96Hughes et al. 96

Page 39: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

AcknowledgmentsAcknowledgmentsAcknowledgments

Stefan Gottschalk

Lifeng Wang and Xing Xing Computer

Peter Schröder

Stanford Computer Graphics Laboratory

UNC Walkthrough Project

UNC PixelFlow Project

Hewlett Packard Visualize PxFl Team

Stefan GottschalkStefan Gottschalk

Lifeng Wang and Xing Xing ComputerLifeng Wang and Xing Xing Computer

Peter SchröderPeter Schröder

Stanford Computer Graphics LaboratoryStanford Computer Graphics Laboratory

UNC Walkthrough ProjectUNC Walkthrough Project

UNC PixelFlow ProjectUNC PixelFlow Project

Hewlett Packard Visualize PxFl TeamHewlett Packard Visualize PxFl Team

Page 40: Appearance-Preserving Simplification · model courtesy of Stanford and Caltech 7809 tris 3905 tris 1951 tris 975 tris 488 tris

AcknowledgmentsAcknowledgmentsAcknowledgments

Army Research Office

Defense Advanced Research Project Agency

Intel

National Science Foundation

National Institutes of Health

Office of Naval Research

Alfred P. Sloan Foundation

Army Research OfficeArmy Research Office

Defense Advanced Research Project AgencyDefense Advanced Research Project Agency

IntelIntel

National Science FoundationNational Science Foundation

National Institutes of HealthNational Institutes of Health

Office of Naval ResearchOffice of Naval Research

Alfred P. Sloan FoundationAlfred P. Sloan Foundation