appearance-preserving simplificationcohen/virtualworlds/media/pdf/aps.color.pdf•• armadillo...
Post on 27-Jun-2020
2 Views
Preview:
TRANSCRIPT
Appearance-PreservingSimplification
Appearance-PreservingAppearance-PreservingSimplificationSimplification
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
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
Example - normals undersampledExample - normals undersampledExample - normals undersampled
13,433 triangles 1,749 triangles10 pixels of surface deviation
Example - normals properly sampledExample - normals properly sampledExample - normals properly sampled
13,433 triangles 1,749 triangles, 10 pixels of deviation
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
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
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
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
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.)
Simplification System ArchitectureSimplification System ArchitectureSimplification System Architecture
SurfaceParameterization
MapCreation
SurfaceApproximation
TextureDeviation
Metric
SimplificationRepresentation
ConversionPolygonalSurface
Levels ofDetail
Texture andNormal Maps
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
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
Sample Normal MapSample Normal MapSample Normal Map
polygonal surface patch normal map
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
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
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!
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
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
Mapping in Texture DomainMapping in Texture DomainMapping in Texture Domain
= extrema of texture deviation function
Video ExampleVideo ExampleVideo Example
Constraining Texture DistortionConstraining Texture DistortionConstraining Texture Distortion
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
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
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
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
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
Results - ViewerResults - ViewerResults - Viewer
Trivial overhead for run-time LOD selectionTrivial overhead for run-time LOD selectionTrivial overhead for run-time LOD selection
Video DemonstrationVideo DemonstrationVideo Demonstration
Appearance-Preserving Simplification:
The “Armadillo” Model
Appearance-Preserving Simplification:Appearance-Preserving Simplification:
The “Armadillo” ModelThe “Armadillo” Model
Armadillo ModelArmadillo ModelArmadillo Model
1 M triangles 7,800 triangles 7,800 triangles16 pixels of deviation
model courtesy ofStanford / Cal Tech
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
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
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
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)
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
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
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
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
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
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
top related