300 likes | 449 Views
This presentation by Jon Super, based on Greg Turk's research, delves into advanced texture synthesis on surfaces. It covers the goals of effective texture placement, methods to avoid seams, minimize distortion, and the use of lapped textures to enhance quality. Additionally, it discusses the creation of a mesh hierarchy, vector fields for texture flow, and the importance of sweep distance in achieving natural looks. The presentation showcases various operational techniques in multi-level synthesis, ensuring more accurate color assignments and connectivity across vertices for realistic surface texturing.
E N D
Texture Synthesis on Surfaces Paper by Greg Turk Presentation by Jon Super
Goals of texture placement Take a 2D texture and wrap it onto a surface • Avoid noticeable seams between patches • Minimize stretching and distortion • Produce a natural-looking result
The next best thing Lapped Textures – Praun et al. – SIGGRAPH00 • Uses many overlapped texture patches • Aligns patches with underlying vector field • Generally minimizes distortion
The next best thing Lapped texture’s shortcomings • Low-frequency components • Boundary mismatch • Direction field singularities
Process • Create a mesh hierarchy over the model • Set up a vector field over the mesh • Calculate sweep distance for each vertex • Assign colors based on neighbors
Process • Create a mesh hierarchy over the model • Set up a vector field over the mesh • Calculate sweep distance for each vertex • Assign colors based on neighbors
Mesh Hierarchy Equivalent of a Gaussian pyramid to a surface • Multiple layers of different resolutions • Each layer has 4 times the number of vertices of the layer above it • Each layer contains every vertex of the layer above it
Point placement • n points randomly placed on the surface • Repulsion between the points spaces them evenly • 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)
Connectivity • Connectivity between vertices of each layer • Delaunay triangulation applied • Mesh is connected in a web of triangles
Mesh hierarchy operations • Interpolation • Low-pass filtering • Downsampling • Upsampling
Process • Create a mesh hierarchy over the model • Set up a vector field over the mesh • Calculate sweep distance for each vertex • Assign colors based on neighbors
Vector field • Provides order to the placement of the texture on the model • Each mesh vertex is given a vector • User initiates the process by defining a few key vectors (~12)
Vector field creation • All vertices not user-defined set to 0 • User-defined vectors are downsampled to the coarsest mesh • Low-pass filtering to fill out top mesh • Upsample for each layer to fill to bottom
Process • Create a mesh hierarchy over the model • Set up a vector field over the mesh • Calculate sweep distance for each vertex • Assign colors based on neighbors
Surface sweeping • 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 • The color in the image cycles as the sweep distance increases
Sweep distance calculation • Select an anchor point to base the distance • 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 • Sweep distances will propagate out from the anchor until every vertex has one
Process • Create a mesh hierarchy over the model • Set up a vector field over the mesh • Calculate sweep distance for each vertex • Assign colors based on neighbors
Pixel Neighborhoods • Similar technique to 2D texture synthesis • Examine nearby colors and look for a similar pattern in the texture image • Different kinds of pixel neighborhoods
Mesh coordinate space • Pixel neighborhoods don’t translate directly to the unorganized vertices in a mesh • Vertex vector is down • Rotate 90 degrees CCW for right
Multi-level synthesis • Start at top, work down • Initialize the vertices of mesh layer k with color values from Gaussian pyramid layer k • Make a pass with the half square • Top layer should have a crude representation of the texture
Multi-level synthesis • Extrapolate and refine each lower level • 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