Pattern-Based Texturing Revisited

46
Pattern-Based Texturing Pattern-Based Texturing Revisited Revisited / GRAVIR-IMAG-INRIA / GRAVIR-IMAG-INRIA Grenoble, FRANCE Grenoble, FRANCE Fabrice Neyret Marie-Paule Cani Fabrice Neyret Marie-Paule Cani MAGIS i

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 Presentation

Transcript of Pattern-Based Texturing Revisited

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!