Presentation is loading. Please wait.

Presentation is loading. Please wait.

Texture Synthesis on Surfaces Paper by Greg Turk Presentation by Jon Super.

Similar presentations


Presentation on theme: "Texture Synthesis on Surfaces Paper by Greg Turk Presentation by Jon Super."— Presentation transcript:

1 Texture Synthesis on Surfaces Paper by Greg Turk Presentation by Jon Super

2 Texture Synthesis on Surfaces +

3 Goals of texture placement Take a 2D texture and wrap it onto a surface Avoid noticeable seams between patches Avoid noticeable seams between patches Minimize stretching and distortion Minimize stretching and distortion Produce a natural-looking result Produce a natural-looking result

4 The next best thing Lapped Textures – Praun et al. – SIGGRAPH00 Uses many overlapped texture patches Aligns patches with underlying vector field Generally minimizes distortion

5 The next best thing Lapped texture’s shortcomings Low-frequency components Low-frequency components Boundary mismatch Boundary mismatch Direction field singularities Direction field singularities

6 Texture synthesis to the rescue!

7 Process Create a mesh hierarchy over the model Create a mesh hierarchy over the model Set up a vector field over the mesh Set up a vector field over the mesh Calculate sweep distance for each vertex Calculate sweep distance for each vertex Assign colors based on neighbors Assign colors based on neighbors

8 Process Create a mesh hierarchy over the model Create a mesh hierarchy over the model Set up a vector field over the mesh Set up a vector field over the mesh Calculate sweep distance for each vertex Calculate sweep distance for each vertex Assign colors based on neighbors Assign colors based on neighbors

9 Mesh Hierarchy Equivalent of a Gaussian pyramid to a surface Multiple layers of different resolutions Multiple layers of different resolutions Each layer has 4 times the number of vertices of the layer above it Each layer has 4 times the number of vertices of the layer above it Each layer contains every vertex of the layer above it Each layer contains every vertex of the layer above it

10 Point placement n points randomly placed on the surface n points randomly placed on the surface Repulsion between the points spaces them evenly Repulsion between the points spaces them evenly These points are now fixed in place, representing level m of an m-level mesh These points are now fixed in place, representing level m of an m-level mesh Repeated for each layer, adding 3 times more points each time (3n, 12n, etc) Repeated for each layer, adding 3 times more points each time (3n, 12n, etc)

11 Connectivity Connectivity between vertices of each layer Connectivity between vertices of each layer Delaunay triangulation applied Delaunay triangulation applied Mesh is connected in a web of triangles Mesh is connected in a web of triangles

12 Mesh hierarchy operations Interpolation Interpolation Low-pass filtering Low-pass filtering Downsampling Downsampling Upsampling Upsampling

13 Process Create a mesh hierarchy over the model Create a mesh hierarchy over the model Set up a vector field over the mesh Set up a vector field over the mesh Calculate sweep distance for each vertex Calculate sweep distance for each vertex Assign colors based on neighbors Assign colors based on neighbors

14 Vector field Provides order to the placement of the texture on the model Provides order to the placement of the texture on the model Each mesh vertex is given a vector Each mesh vertex is given a vector User initiates the process by defining a few key vectors (~12) User initiates the process by defining a few key vectors (~12)

15 Vector field creation All vertices not user-defined set to 0 All vertices not user-defined set to 0 User-defined vectors are downsampled to the coarsest mesh User-defined vectors are downsampled to the coarsest mesh Low-pass filtering to fill out top mesh Low-pass filtering to fill out top mesh Upsample for each layer to fill to bottom Upsample for each layer to fill to bottom

16 Process Create a mesh hierarchy over the model Create a mesh hierarchy over the model Set up a vector field over the mesh Set up a vector field over the mesh Calculate sweep distance for each vertex Calculate sweep distance for each vertex Assign colors based on neighbors Assign colors based on neighbors

17 Surface sweeping Uses the directional flow of the vector field to assign ordering to the vertices Uses the directional flow of the vector field to assign ordering to the vertices Ordering will allow a sort of raster scan over the 3D model Ordering will allow a sort of raster scan over the 3D model The color in the image The color in the image cycles as the sweep cycles as the sweep distance increases distance increases

18 Sweep distance calculation Select an anchor point to base the distance Select an anchor point to base the distance Each vertex takes the value that is the weighted sum of what its neighbors think Each vertex takes the value that is the weighted sum of what its neighbors think Distance along the flow direction added to the neighbor’s sweep distance Distance along the flow direction added to the neighbor’s sweep distance Sweep distances will propagate out from the anchor until every vertex has one Sweep distances will propagate out from the anchor until every vertex has one

19 Process Create a mesh hierarchy over the model Create a mesh hierarchy over the model Set up a vector field over the mesh Set up a vector field over the mesh Calculate sweep distance for each vertex Calculate sweep distance for each vertex Assign colors based on neighbors Assign colors based on neighbors

20 Pixel Neighborhoods Similar technique to 2D texture synthesis Similar technique to 2D texture synthesis Examine nearby colors and look for a similar pattern in the texture image Examine nearby colors and look for a similar pattern in the texture image Different kinds of pixel neighborhoods Different kinds of pixel neighborhoods

21 Mesh coordinate space Pixel neighborhoods don’t translate directly to the unorganized vertices in a mesh Pixel neighborhoods don’t translate directly to the unorganized vertices in a mesh Vertex vector is down Vertex vector is down Rotate 90 degrees CCW for right Rotate 90 degrees CCW for right

22 Multi-level synthesis Start at top, work down Start at top, work down Initialize the vertices of mesh layer k with color values from Gaussian pyramid layer k Initialize the vertices of mesh layer k with color values from Gaussian pyramid layer k Make a pass with the half square Make a pass with the half square Top layer should have a crude representation of the texture Top layer should have a crude representation of the texture

23 Multi-level synthesis Extrapolate and refine each lower level Extrapolate and refine each lower level Extrapolate initializes the colors using a large full square neighborhood of the level above Extrapolate initializes the colors using a large full square neighborhood of the level above Refine improves on that by combining a large full square on the current level with a small full square on the level above Refine improves on that by combining a large full square on the current level with a small full square on the level above

24 Algorithm

25 Results

26

27

28

29

30


Download ppt "Texture Synthesis on Surfaces Paper by Greg Turk Presentation by Jon Super."

Similar presentations


Ads by Google