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

Slides:



Advertisements
Similar presentations
Lapped textures Emil Praun Adam Finkelstein Hugues Hoppe
Advertisements

Image Quilting and Apples
Reconstruction from Voxels (GATE-540)
Object Recognition from Local Scale-Invariant Features David G. Lowe Presented by Ashley L. Kapron.
Image and Video Upscaling from Local Self Examples
Developable Surface Fitting to Point Clouds Martin Peternell Computer Aided Geometric Design 21(2004) Reporter: Xingwang Zhang June 19, 2005.
Multi resolution Texture Synthesis on Surfaces Arul Prakash Lavanya Tekumalla.
Texture Synthesis on [Arbitrary Manifold] Surfaces Presented by: Sam Z. Glassenberg* * Several slides borrowed from Wei/Levoy presentation.
Xianfeng Gu, Yaling Wang, Tony Chan, Paul Thompson, Shing-Tung Yau
3D Skeletons Using Graphics Hardware Jonathan Bilodeau Chris Niski.
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh.
1 Computer Graphics Chapter 7 3D Object Modeling.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Registration of two scanned range images using k-d tree accelerated ICP algorithm By Xiaodong Yan Dec
Mesh Simplification Global and Local Methods:
Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.
1 Image Completion using Global Optimization Presented by Tingfan Wu.
Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
Parallel Controllable Texture Synthesis Sylvain Lefebvre, Hugues Hoppe SIGGRAPH (3),
Filling Arbitrary Holes in Finite Element Models 17 th International Meshing Roundtable 2008 Schilling, Bidmon, Sommer, and Ertl.
Image Morphing : Rendering and Image Processing Alexei Efros.
Texture Reading: Chapter 9 (skip 9.4) Key issue: How do we represent texture? Topics: –Texture segmentation –Texture-based matching –Texture synthesis.
Mesh Parameterization: Theory and Practice Non-Planar Domains.
2D Fourier Theory for Image Analysis Mani Thomas CISC 489/689.
1 Computation on Arbitrary Surfaces Brandon Lloyd COMP 258 October 2002.
Texture Synthesis over Arbitrary Manifold Surfaces Li-Yi Wei Marc Levoy Computer Graphics Group Stanford University.
Fast Texture Synthesis Tree-structure Vector Quantization Li-Yi WeiMarc Levoy Stanford University.
3D object capture Capture N “views” (parts of the object) –get points on surface of object –create mesh (infer connectivity) Hugues Hoppe –filter data.
Face Recognition Using Neural Networks Presented By: Hadis Mohseni Leila Taghavi Atefeh Mirsafian.
Guilford County Sci Vis V204.01
Marching Cubes: A High Resolution 3D Surface Construction Algorithm
Computer Graphics Inf4/MSc Computer Graphics Lecture 9 Antialiasing, Texture Mapping.
CGMB 314 Intro to Computer Graphics Fill Area Primitives.
Generating panorama using translational movement model.
Basics of Rendering Pipeline Based Rendering –Objects in the scene are rendered in a sequence of steps that form the Rendering Pipeline. Ray-Tracing –A.
COMPUTER GRAPHICS CS 482 – FALL 2014 AUGUST 27, 2014 FIXED-FUNCTION 3D GRAPHICS MESH SPECIFICATION LIGHTING SPECIFICATION REFLECTION SHADING HIERARCHICAL.
Geometric Operations and Morphing.
CS 6825: Binary Image Processing – binary blob metrics
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
CSE 185 Introduction to Computer Vision Pattern Recognition 2.
Computer Graphics Some slides courtesy of Pierre Alliez and Craig Gotsman Texture mapping and parameterization.
Introduction Image geometry studies rotation, translation, scaling, distortion, etc. Image topology studies, e.g., (i) the number of occurrences.
Lapped Solid Textures: Filling a Model with Anisotropic Textures Kenshi Takayama 1 Makoto Okabe 1 Takashi Ijiri 1 Takeo Igarashi 1,2 1 The University of.
Simplifying Surfaces with Color and Texture using Quadric Error Metrics Michael Garland Paul S. Heckbert Carnegie Mellon University October 1998 Michael.
CS418 Computer Graphics John C. Hart
Scene Completion Using Millions of Photographs James Hays, Alexei A. Efros Carnegie Mellon University ACM SIGGRAPH 2007.
Realtime NPR Toon and Pencil Shading Joel Jorgensen May 4, 2010.
Lapped Solid Textrues Filling a Model with Anisotropic Textures
Duy & Piotr. How to reconstruct a high quality image with the least amount of samples per pixel the least amount of resources And preserving the image.
2D Texture Synthesis Instructor: Yizhou Yu. Texture synthesis Goal: increase texture resolution yet keep local texture variation.
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
Graphcut Textures Image and Video Synthesis Using Graph Cuts
Geometry Synthesis Ares Lagae Olivier Dumont Philip Dutré Department of Computer Science Katholieke Universiteit Leuven 10 August, 2004.
SIGGRAPH 2007 Hui Fang and John C. Hart.  We propose an image editing system ◦ Preserve its detail and orientation by resynthesizing texture from the.
11/25/03 3D Model Acquisition by Tracking 2D Wireframes Presenter: Jing Han Shiau M. Brown, T. Drummond and R. Cipolla Department of Engineering University.
3D Ojbects: Transformations and Modeling. Matrix Operations Matrices have dimensions: Vectors can be thought of as matrices: v=[2,3,4,1] is a 1x4 matrix.
Acquiring, Stitching and Blending Diffuse Appearance Attributes on 3D Models C. Rocchini, P. Cignoni, C. Montani, R. Scopigno Istituto Scienza e Tecnologia.
Shaders, part 2 alexandri zavodny.
Graphcut Textures:Image and Video Synthesis Using Graph Cuts
Morphing and Shape Processing
Domain-Modeling Techniques
2.02 Understand Digital Vector Graphics
Stochastic Microgeometry for Displacement Mapping
Mesh Parameterization: Theory and Practice
Lecture 13 Clipping & Scan Conversion
From Voxels to 3D Uri Mike.
Chap 10. Geometric Level of Detail
Multi resolution Texture Synthesis on Surfaces
Presentation transcript:

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

Texture Synthesis on Surfaces +

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

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 Low-frequency components Boundary mismatch Boundary mismatch Direction field singularities Direction field singularities

Texture synthesis to the rescue!

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

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

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

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)

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

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

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

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)

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

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

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

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

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

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

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

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

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

Algorithm

Results