Pattern-Based Texturing Revisited / GRAVIR-IMAG-INRIA Grenoble, FRANCE Fabrice Neyret Marie-Paule Cani
The texturing problem texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity
The texturing problem texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity
The texturing problem texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity
The texturing problem texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity texturing without: distortiondistortion discontinuitydiscontinuity obvious periodicityobvious periodicity
Texturing Methods single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture
Texturing Methods single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture
Texturing Methods single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture
Texturing Methods single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture
Texturing Methods single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture single image mapping [ Catmull74 ]single image mapping [ Catmull74 ] –need pre-distortion, large texture pattern tilingpattern tiling –distortion, periodicity interactive painting [ Haeberli+90 ]interactive painting [ Haeberli+90 ] –large texture proceduralprocedural solid noise filtering [ Perlin85, Worley96... ] solid noise filtering [ Perlin85, Worley96... ] –only for volumetric material surface idem, + reaction-diffusion [Turk+91, Witkin+91] surface idem, + reaction-diffusion [Turk+91, Witkin+91] –distortion, large texture
Advantages of Pattern Tiling reusabilityreusability –material sample high resolution with little memoryhigh resolution with little memory less designer workless designer work standardstandard –e.g., graphics libraries reusabilityreusability –material sample high resolution with little memoryhigh resolution with little memory less designer workless designer work standardstandard –e.g., graphics libraries
Drawbacks of Pattern Tiling distortion [ LM98... ]distortion [ LM98... ] discontinuity [ MYV93 ]discontinuity [ MYV93 ] obvious periodicity [ Stam97 ]obvious periodicity [ Stam97 ] distortion [ LM98... ]distortion [ LM98... ] discontinuity [ MYV93 ]discontinuity [ MYV93 ] obvious periodicity [ Stam97 ]obvious periodicity [ Stam97 ]
Our Method No global parameterizationNo global parameterization –tiling + continuity constraints No distortion or discontinuityNo distortion or discontinuity –equilateral triangular tiles Texture tiling independent of geometry facesTexture tiling independent of geometry faces –texture mesh vs. geometry mesh No global parameterizationNo global parameterization –tiling + continuity constraints No distortion or discontinuityNo distortion or discontinuity –equilateral triangular tiles Texture tiling independent of geometry facesTexture tiling independent of geometry faces –texture mesh vs. geometry mesh
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme [ Turk92 ] geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme local u,v geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Our scheme geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Local Parameterization geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
d2 d3 d1 Local Parameterization Geodesic barycentric coordinates geodesic distance to border (shortest path on the surface)geodesic distance to border (shortest path on the surface) –flood fill from each border normalizenormalize Other choices Levy and Mallet [98]Levy and Mallet [98] Eck et al. [95] (harmonic maps)Eck et al. [95] (harmonic maps) Lee et al. [98] ( MAPS )Lee et al. [98] ( MAPS ) Geodesic barycentric coordinates geodesic distance to border (shortest path on the surface)geodesic distance to border (shortest path on the surface) –flood fill from each border normalizenormalize Other choices Levy and Mallet [98]Levy and Mallet [98] Eck et al. [95] (harmonic maps)Eck et al. [95] (harmonic maps) Lee et al. [98] ( MAPS )Lee et al. [98] ( MAPS )
Matching of Patterns geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Matching of Patterns Escher ( )Escher ( ) Penrose ( )Penrose ( ) Graph coloringGraph coloring Stam [97]Stam [97] Escher ( )Escher ( ) Penrose ( )Penrose ( ) Graph coloringGraph coloring Stam [97]Stam [97] M.C. Escher 1943
Matching of Patterns vertex Boundary Condition edge Boundary Condition edge Boundary Condition central zone
Matching of Patterns vertex Boundary Condition edge Boundary Condition edge Boundary Condition central zone
Matching of Patterns vertex Boundary Condition edge Boundary Condition edge Boundary Condition central zone
Matching of Patterns vertex Boundary Condition edge Boundary Condition edge Boundary Condition central zone Pattern set
edge Boundary Condition edge Boundary Condition Matching of Patterns vertex Boundary Condition central zone
1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns 1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns Tunings yielding 4 patterns
1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns 1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns Tunings yielding 4 patterns
1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns 1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns Tunings yielding 4 patterns E E E E E E E E E E E E
1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns 1 vertex Boundary Condition 1 edge BC per pair of vertex 2 constraints E and E per edge 2 constraints E and E per edge 2 kinds of edge constraint 2 kinds of edge constraint 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 4 patterns 4 patterns Tunings yielding 4 patterns E E E E E E E E E E E E
1 vertex Boundary Condition 1 edge BC per pair of vertex 1 central zone per triple of edges 1 vertex Boundary Condition 1 edge BC per pair of vertex 1 central zone per triple of edges Tunings yielding 4 patterns
1 vertex Boundary Condition 1 sym edge BC per pair of vertex 1 kind of edge constraint (E = E) 1 kind of edge constraint (E = E) 1 triple of edges 1 triple of edges 4 central zones per triple of edges 1 vertex Boundary Condition 1 sym edge BC per pair of vertex 1 kind of edge constraint (E = E) 1 kind of edge constraint (E = E) 1 triple of edges 1 triple of edges 4 central zones per triple of edges Tunings yielding 4 patterns
1 vertex Boundary Condition 2 sym edges BC per pair of vertex 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges 1 vertex Boundary Condition 2 sym edges BC per pair of vertex 4 possible triples of edges 4 possible triples of edges 1 central zone per triple of edges Tunings yielding 4 patterns
2 vertex Boundary Conditions 1 sym edge BC per pair of vertex 3 kinds of edge constraint 3 kinds of edge constraint 4 possible triples of compatible edges 4 possible triples of compatible edges 1 central zone per triple of edges 2 vertex Boundary Conditions 1 sym edge BC per pair of vertex 3 kinds of edge constraint 3 kinds of edge constraint 4 possible triples of compatible edges 4 possible triples of compatible edges 1 central zone per triple of edges Tunings yielding 4 patterns
Pattern Generation geometric mesh build texture mesh project on surface parameterize patches match patterns textured mesh generate patterns
Pattern Generation Images: photo editingphoto editing drawingdrawingImages: photo editingphoto editing drawingdrawing E E E E E E E E E E
Pattern Generation Images: photo editingphoto editing drawingdrawingImages: photo editingphoto editing drawingdrawing
Pattern Generation Procedural: PerlinPerlin WorleyWorleyProcedural: PerlinPerlin WorleyWorley
Video now, the video now, the video
Conclusions A new texturing approach with little distortion, little discontinuity, no periodicitywith little distortion, little discontinuity, no periodicity pattern-based, thus less work, high resolution, reusable samplespattern-based, thus less work, high resolution, reusable samples compatible with real-time renderingcompatible with real-time rendering A new texturing approach with little distortion, little discontinuity, no periodicitywith little distortion, little discontinuity, no periodicity pattern-based, thus less work, high resolution, reusable samplespattern-based, thus less work, high resolution, reusable samples compatible with real-time renderingcompatible with real-time rendering
Future Work multiscale patternsmultiscale patterns –handles and legs heterogeneityheterogeneity –varying pattern occurrence –varying tile size (field, curvature) anisotropyanisotropy –tensor field –open problem! multiscale patternsmultiscale patterns –handles and legs heterogeneityheterogeneity –varying pattern occurrence –varying tile size (field, curvature) anisotropyanisotropy –tensor field –open problem!