pattern-based texturing revisited
DESCRIPTION
Pattern-Based Texturing Revisited. / GRAVIR-IMAG-INRIA Grenoble, FRANCE. Fabrice Neyret Marie-Paule Cani. The texturing problem. texturing without: distortion discontinuity obvious periodicity. The texturing problem. texturing without: distortion discontinuity - PowerPoint PPT PresentationTRANSCRIPT
Pattern-Based TexturingPattern-Based TexturingRevisitedRevisited
/ GRAVIR-IMAG-INRIA/ GRAVIR-IMAG-INRIA Grenoble, FRANCE Grenoble, FRANCE/ GRAVIR-IMAG-INRIA/ GRAVIR-IMAG-INRIA Grenoble, FRANCE Grenoble, FRANCE
Fabrice Neyret Marie-Paule CaniFabrice Neyret Marie-Paule Cani
MAGISi
The texturing problemThe texturing problem
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
The texturing problemThe texturing problem
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
The texturing problemThe texturing problem
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
The texturing problemThe texturing problem
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
texturing without:texturing without:
• distortiondistortion
• discontinuitydiscontinuity
• obvious periodicityobvious periodicity
Texturing MethodsTexturing Methods• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]
– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
Texturing MethodsTexturing Methods• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]
– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
Texturing MethodsTexturing Methods• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]
– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
Texturing MethodsTexturing Methods• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]
– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
Texturing MethodsTexturing Methods• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]
– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
• single image mapping single image mapping [ [ Catmull74Catmull74 ] ]– need pre-distortion, large textureneed pre-distortion, large texture
• pattern tilingpattern tiling– distortion, periodicitydistortion, periodicity
• interactive painting interactive painting [ [ Haeberli+90Haeberli+90 ] ]– large texturelarge texture
• proceduralprocedural solidsolid noise filtering [ noise filtering [ Perlin85, Worley96Perlin85, Worley96 ... ] ... ]
– only for volumetric materialonly for volumetric material
surfacesurface idem, + reaction-diffusion [idem, + reaction-diffusion [Turk+91, Witkin+91Turk+91, Witkin+91]]– distortion, large texturedistortion, large texture
Advantages of Pattern TilingAdvantages of Pattern Tiling
• reusabilityreusability – material samplematerial sample
• high resolution with little memoryhigh resolution with little memory
• less designer workless designer work
• standardstandard – e.g., graphics librariese.g., graphics libraries
• reusabilityreusability – material samplematerial sample
• high resolution with little memoryhigh resolution with little memory
• less designer workless designer work
• standardstandard – e.g., graphics librariese.g., graphics libraries
Drawbacks of Pattern TilingDrawbacks of Pattern Tiling
• distortion distortion [ [ LM98LM98 ... ] ... ]
• discontinuity discontinuity [ [ MYV93MYV93 ] ]
• obvious periodicity obvious periodicity [ [ Stam97Stam97 ] ]
• distortion distortion [ [ LM98LM98 ... ] ... ]
• discontinuity discontinuity [ [ MYV93MYV93 ] ]
• obvious periodicity obvious periodicity [ [ Stam97Stam97 ] ]
Our MethodOur Method• No global parameterizationNo global parameterization
– tiling + continuity constraintstiling + continuity constraints
• No distortion or discontinuityNo distortion or discontinuity– equilateral triangular tilesequilateral triangular tiles
• Texture tiling independent of geometry facesTexture tiling independent of geometry faces– texture mesh vs. geometry meshtexture mesh vs. geometry mesh
• No global parameterizationNo global parameterization– tiling + continuity constraintstiling + continuity constraints
• No distortion or discontinuityNo distortion or discontinuity– equilateral triangular tilesequilateral triangular tiles
• Texture tiling independent of geometry facesTexture tiling independent of geometry faces– texture mesh vs. geometry meshtexture mesh vs. geometry mesh
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur scheme
[ Turk92 ]
geometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur scheme
local u,v
local u,v
local u,v
geometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Our schemeOur schemegeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Local ParameterizationLocal Parameterizationgeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
d2
d3d1
Local ParameterizationLocal Parameterization
Geodesic barycentric coordinatesGeodesic barycentric coordinates• geodesic distance to bordergeodesic distance to border
(shortest path on the surface)(shortest path on the surface)– flood fill from each borderflood fill from each border
• normalizenormalize
Other choicesOther choices• Levy and Mallet [98]Levy and Mallet [98]• Eck et al. [95] Eck et al. [95] (harmonic maps)(harmonic maps)
• Lee et al. [98] Lee et al. [98] ((MAPSMAPS))
Geodesic barycentric coordinatesGeodesic barycentric coordinates• geodesic distance to bordergeodesic distance to border
(shortest path on the surface)(shortest path on the surface)– flood fill from each borderflood fill from each border
• normalizenormalize
Other choicesOther choices• Levy and Mallet [98]Levy and Mallet [98]• Eck et al. [95] Eck et al. [95] (harmonic maps)(harmonic maps)
• Lee et al. [98] Lee et al. [98] ((MAPSMAPS))
Matching of PatternsMatching of Patternsgeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Matching of PatternsMatching of Patterns
• Escher Escher (1898-1972)(1898-1972)
• Penrose Penrose (1931- ...)(1931- ...)
• Graph coloringGraph coloring
• Stam Stam [97][97]
• Escher Escher (1898-1972)(1898-1972)
• Penrose Penrose (1931- ...)(1931- ...)
• Graph coloringGraph coloring
• Stam Stam [97][97]
M.C. Escher 1943
Matching of PatternsMatching of Patterns
vertex Boundaryvertex BoundaryConditionCondition
edgeedge Boundary Boundary Condition Condition central central
zonezone
Matching of PatternsMatching of Patterns
vertex Boundaryvertex BoundaryConditionCondition
edgeedge Boundary Boundary Condition Condition
central central zonezone
Matching of PatternsMatching of Patterns
vertex Boundaryvertex BoundaryConditionCondition
edgeedge Boundary Boundary Condition Condition
central central zonezone
Matching of PatternsMatching of Patterns
vertex Boundaryvertex BoundaryConditionCondition
edgeedge Boundary Boundary Condition Condition
central central zonezone
Pattern setPattern set
edgeedge Boundary Boundary Condition Condition
Matching of PatternsMatching of Patterns
vertex Boundaryvertex BoundaryConditionCondition
central central zonezone
11 vertex Boundary Conditionvertex Boundary Condition
11 edge BC per pair of vertexedge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edgescentral zone per triple of edges
44 patternspatterns
11 vertex Boundary Conditionvertex Boundary Condition
11 edge BC per pair of vertexedge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edgescentral zone per triple of edges
44 patternspatterns
Tunings yielding 4 patternsTunings yielding 4 patterns
11 vertex Boundary Condition vertex Boundary Condition
11 edge BC per pair of vertexedge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edgescentral zone per triple of edges
44 patternspatterns
11 vertex Boundary Condition vertex Boundary Condition
11 edge BC per pair of vertexedge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edgescentral zone per triple of edges
44 patternspatterns
Tunings yielding 4 patternsTunings yielding 4 patterns
11 vertex Boundary Conditionvertex Boundary Condition
11 edge BC per pair of vertex edge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edgescentral zone per triple of edges
44 patternspatterns
11 vertex Boundary Conditionvertex Boundary Condition
11 edge BC per pair of vertex edge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edgescentral zone per triple of edges
44 patternspatterns
Tunings yielding 4 patternsTunings yielding 4 patterns
EE
EE EEEE
EE EEEE
EE
EE
EE
EE
EE
11 vertex Boundary Conditionvertex Boundary Condition
11 edge BC per pair of vertexedge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edges central zone per triple of edges
44 patterns patterns
11 vertex Boundary Conditionvertex Boundary Condition
11 edge BC per pair of vertexedge BC per pair of vertex
22 constraints E and E per edge constraints E and E per edge
22 kinds of edge constraint kinds of edge constraint
44 possible triples of edges possible triples of edges
11 central zone per triple of edges central zone per triple of edges
44 patterns patterns
Tunings yielding 4 patternsTunings yielding 4 patterns
EE
EE EEEE
EE EEEE
EE
EE
EE
EE
EE
11 vertex Boundary Condition vertex Boundary Condition
11 edge BC per pair of vertex edge BC per pair of vertex
11 central zone per triple of edges central zone per triple of edges
11 vertex Boundary Condition vertex Boundary Condition
11 edge BC per pair of vertex edge BC per pair of vertex
11 central zone per triple of edges central zone per triple of edges
Tunings yielding 4 patternsTunings yielding 4 patterns
11 vertex Boundary Condition vertex Boundary Condition
11 sym edgesym edge BC per pair of vertex BC per pair of vertex 11 kind of edge constraint (E = E) kind of edge constraint (E = E) 11 triple of edges triple of edges
44 central zones per triple of edges central zones per triple of edges
11 vertex Boundary Condition vertex Boundary Condition
11 sym edgesym edge BC per pair of vertex BC per pair of vertex 11 kind of edge constraint (E = E) kind of edge constraint (E = E) 11 triple of edges triple of edges
44 central zones per triple of edges central zones per triple of edges
Tunings yielding 4 patternsTunings yielding 4 patterns
11 vertex Boundary Condition vertex Boundary Condition
22 sym edgessym edges BC per pair of vertex BC per pair of vertex
44 possible triples of edges possible triples of edges
11 central zone per triple of edges central zone per triple of edges
11 vertex Boundary Condition vertex Boundary Condition
22 sym edgessym edges BC per pair of vertex BC per pair of vertex
44 possible triples of edges possible triples of edges
11 central zone per triple of edges central zone per triple of edges
Tunings yielding 4 patternsTunings yielding 4 patterns
22 vertex Boundary Conditions vertex Boundary Conditions
11 sym edgesym edge BC per pair of vertex BC per pair of vertex 33 kinds of edge constraint kinds of edge constraint 44 possible triples of compatible edges possible triples of compatible edges
11 central zone per triple of edges central zone per triple of edges
22 vertex Boundary Conditions vertex Boundary Conditions
11 sym edgesym edge BC per pair of vertex BC per pair of vertex 33 kinds of edge constraint kinds of edge constraint 44 possible triples of compatible edges possible triples of compatible edges
11 central zone per triple of edges central zone per triple of edges
Tunings yielding 4 patternsTunings yielding 4 patterns
Pattern GenerationPattern Generationgeometric meshgeometric mesh
build texture meshbuild texture mesh
project on surfaceproject on surface
parameterize patchesparameterize patches
match patternsmatch patterns
textured meshtextured mesh
generate generate patternspatterns
Pattern GenerationPattern Generation
Images:Images:
• photo editing photo editing
• drawingdrawing
Images:Images:
• photo editing photo editing
• drawingdrawing
EEEEEEEE EE EE
EEEE
EEEE
Pattern GenerationPattern Generation
Images:Images:
• photo editing photo editing
• drawingdrawing
Images:Images:
• photo editing photo editing
• drawingdrawing
Pattern GenerationPattern Generation
Procedural:Procedural:
• PerlinPerlin
• WorleyWorley
Procedural:Procedural:
• PerlinPerlin
• WorleyWorley
VideoVideo
now, the now, the videovideo now, the now, the videovideo
ConclusionsConclusions
A new texturing approachA new texturing approach
• with little distortion, little discontinuity, no periodicitywith little distortion, little discontinuity, no periodicity
• pattern-based, thuspattern-based, thus
less work, high resolution, reusable samples less work, high resolution, reusable samples
• compatible with real-time renderingcompatible with real-time rendering
A new texturing approachA new texturing approach
• with little distortion, little discontinuity, no periodicitywith little distortion, little discontinuity, no periodicity
• pattern-based, thuspattern-based, thus
less work, high resolution, reusable samples less work, high resolution, reusable samples
• compatible with real-time renderingcompatible with real-time rendering
Future WorkFuture Work
• multiscale patternsmultiscale patterns– handles and legshandles and legs
• heterogeneityheterogeneity– varying pattern occurrencevarying pattern occurrence
– varying tile size (field, curvature)varying tile size (field, curvature)
• anisotropyanisotropy– tensor fieldtensor field– open problem!open problem!
• multiscale patternsmultiscale patterns– handles and legshandles and legs
• heterogeneityheterogeneity– varying pattern occurrencevarying pattern occurrence
– varying tile size (field, curvature)varying tile size (field, curvature)
• anisotropyanisotropy– tensor fieldtensor field– open problem!open problem!