Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.

Slides:



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

Emil Praun Hugues Hoppe Matthew Webb Adam Finkelstein
Real-Time Fur on Arbitrary Surfaces Jed Lengyel Emil Praun Adam Finkelstein Hugues Hoppe Jed Lengyel Emil Praun Adam Finkelstein Hugues Hoppe Microsoft.
Parameterized Environment Maps
Shape Compression using Spherical Geometry Images
Multi-chart Geometry Images Pedro Sander Harvard Harvard Hugues Hoppe Microsoft Research Hugues Hoppe Microsoft Research Steven Gortler Harvard Harvard.
Computer graphics & visualization Real-Time Pencil Rendering Marc Treib.
Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros.
Texture Synthesis on [Arbitrary Manifold] Surfaces Presented by: Sam Z. Glassenberg* * Several slides borrowed from Wei/Levoy presentation.
WSCG 2007 Hardware Independent Clipmapping A. Seoane, J. Taibo, L. Hernández, R. López, A. Jaspe VideaLAB – University of A Coruña (Spain)
Consistent Mesh Parameterizations Peter Schröder Caltech Wim Sweldens Bell Labs Emil Praun Princeton.
Geometry Image Xianfeng Gu, Steven Gortler, Hugues Hoppe SIGGRAPH 2002 Present by Pin Ren Feb 13, 2003.
Xianfeng Gu, Yaling Wang, Tony Chan, Paul Thompson, Shing-Tung Yau
Inter-Surface Mapping John Schreiner, Arul Asirvatham, Emil Praun (University of Utah) Hugues Hoppe (Microsoft Research)
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh.
Spherical Parameterization and Remeshing Emil Praun, University of Utah Hugues Hoppe, Microsoft Research.
1 Displaced Subdivision Surfaces Aaron Lee Princeton University Henry Moreton Nvidia Hugues Hoppe Microsoft Research.
Iso-charts: Stretch-driven Mesh Parameterization using Spectral Analysis Kun Zhou, John Snyder*, Baining Guo, Heung-Yeung Shum Microsoft Research Asia.
Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.
Image Quilting for Texture Synthesis & Transfer Alexei Efros (UC Berkeley) Bill Freeman (MERL) +=
Bounded-distortion Piecewise Mesh Parameterization
Fast Texture Synthesis using Tree-structured Vector Quantization Li-Yi Wei Marc Levoy Computer Graphics Group Stanford University.
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
Surface Parametrizations Hugues Hoppe Microsoft Research IMA Workshop on Computer Graphics May 18, 2001 Hugues Hoppe Microsoft Research IMA Workshop on.
Texture Synthesis on Surfaces Paper by Greg Turk Presentation by Jon Super.
Mesh Parameterization: Theory and Practice Non-Planar Domains.
Near-Regular Texture Analysis and Manipulation Written by: Yanxi Liu Yanxi Liu Wen-Chieh Lin Wen-Chieh Lin James Hays James Hays Presented by: Alex Hadas.
Texture Synthesis over Arbitrary Manifold Surfaces Li-Yi Wei Marc Levoy Computer Graphics Group Stanford University.
Geometry Videos Symposium on Computer Animation 2003 Hector M. Briceño Collaborators: Pedro V. Sander, Leonard McMillan, Steven Gortler, and Hugues Hoppe.
Texture Optimization for Example-based Synthesis
Zoltan Szego †*, Yoshihiro Kanamori ‡, Tomoyuki Nishita † † The University of Tokyo, *Google Japan Inc., ‡ University of Tsukuba.
Computer Graphics Mirror and Shadows
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Texture Mapping by Model Pelting and Blending
Light Using Texture Synthesis for Non-Photorealistic Shading from Paint Samples. Christopher D. Kulla, James D. Tucek, Reynold J. Bailey, Cindy M. Grimm.
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
Processing Images and Video for an Impressionist Effect Author: Peter Litwinowicz Presented by Jing Yi Jin.
1 Adding charts anywhere Assume a cow is a sphere Cindy Grimm and John Hughes, “Parameterizing n-holed tori”, Mathematics of Surfaces X, 2003 Cindy Grimm,
Pattern Based Procedural Textures Sylvain Lefebvre Fabrice Neyret iMAGIS - GRAVIR / IMAG - INRIA
Computer Graphics Some slides courtesy of Pierre Alliez and Craig Gotsman Texture mapping and parameterization.
Pattern-Based Texturing Revisited / GRAVIR-IMAG-INRIA Grenoble, FRANCE Fabrice Neyret Marie-Paule Cani.
Lumo: Illumination for Cel Animation Scott F. Johnston.
Image Quilting for Texture Synthesis and Transfer Alexei A. Efros (UC Berkeley) William T. Freeman (MERL) Siggraph01 ’
Subdivision Schemes Basic idea: Start with something coarse, and refine it into smaller pieces for rendering –We have seen how subdivision may be used.
Introduction to Computer Graphics: Object Representation Rama C Hoetzlein, 2010 Univ. of California Santa Barbara Lecture Notes.
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.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
Synthesis of Compact Textures for real-time Terrain Rendering Nader Salman 22 juin 2007 Encadrant : Sylvain Lefebvre.
Ptex: Per-face Texture Mapping for Production Rendering Brent Burley and Dylan Lacewell Walt Disney Animation Studios EGSR 2008 (See attached slide notes.
Lapped Solid Textrues Filling a Model with Anisotropic Textures
CS559: Computer Graphics Lecture 8: Warping, Morphing, 3D Transformation Li Zhang Spring 2010 Most slides borrowed from Yungyu ChuangYungyu Chuang.
All the Polygons You Can Eat
Mesh Quilting For Geometric Texture Synthesis Kun Zhou et al. In SIGGRAPH 2006 발표 이성호 2009 년 4 월 15 일.
2D Texture Synthesis Instructor: Yizhou Yu. Texture synthesis Goal: increase texture resolution yet keep local texture variation.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Graphcut Textures Image and Video Synthesis Using Graph Cuts
Yizhou Yu Texture-Mapping Real Scenes from Photographs Yizhou Yu Computer Science Division University of California at Berkeley Yizhou Yu Computer Science.
Geometry Synthesis Ares Lagae Olivier Dumont Philip Dutré Department of Computer Science Katholieke Universiteit Leuven 10 August, 2004.
Painterly Rendering for Animation Introduction speaks of focus and detail –Small brush strokes focus and provide detail –Large strokes are abstract and.
Texture Synthesis by Image Quilting CS766 Class Project Fall 2004 Eric Robinson.
SIGGRAPH 2007 Hui Fang and John C. Hart.  We propose an image editing system ◦ Preserve its detail and orientation by resynthesizing texture from the.
IIIT Hyderabad Image Based PTM Synthesis For Realistic Rendering of Low Resolution 3D Models - Pradeep Rajiv Advisors : Prof M.Anoop Namboodiri,
Acquiring, Stitching and Blending Diffuse Appearance Attributes on 3D Models C. Rocchini, P. Cignoni, C. Montani, R. Scopigno Istituto Scienza e Tecnologia.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
Graphcut Textures:Image and Video Synthesis Using Graph Cuts
Detail Preserving Shape Deformation in Image Editing
Image Quilting for Texture Synthesis & Transfer
Presentation transcript:

Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University Microsoft Research

Goal “example” image textured surface mesh geometry ?

Goal Little user effort No apparent seams No obvious periodicity Low distortion Local texture control Anisotropy Little user effort No apparent seams No obvious periodicity Low distortion Local texture control Anisotropy

Previous 2D Texture Synthesis Histogram equalization [Heeger ’96] Laplacian block shuffling [de Bonet ’97] Pixel template matching [Efros ’99] [Wei ’00] Histogram equalization [Heeger ’96] Laplacian block shuffling [de Bonet ’97] Pixel template matching [Efros ’99] [Wei ’00]

Histogram equalization [Heeger ’96] Laplacian block shuffling [de Bonet ’97] Pixel template matching [Efros ’99] [Wei ’00] Random pasting of image blocks [Xu ’00] Histogram equalization [Heeger ’96] Laplacian block shuffling [de Bonet ’97] Pixel template matching [Efros ’99] [Wei ’00] Random pasting of image blocks [Xu ’00] Previous 2D Texture Synthesis

Previous 3D Texturing Volumetric textures: Noise functions [Perlin ’85, Worley ’96] Noise functions [Perlin ’85, Worley ’96] Solid textures by example [Ghazanfarpour ’96] Solid textures by example [Ghazanfarpour ’96] Synthesizing texture on a surface: Reaction-diffusion [Turk ’91, Witkin ’91] Reaction-diffusion [Turk ’91, Witkin ’91] Cellular textures [Fleischer ’95] Cellular textures [Fleischer ’95] Covering surface with triangular tiles [Neyret ’99] Covering surface with triangular tiles [Neyret ’99] Volumetric textures: Noise functions [Perlin ’85, Worley ’96] Noise functions [Perlin ’85, Worley ’96] Solid textures by example [Ghazanfarpour ’96] Solid textures by example [Ghazanfarpour ’96] Synthesizing texture on a surface: Reaction-diffusion [Turk ’91, Witkin ’91] Reaction-diffusion [Turk ’91, Witkin ’91] Cellular textures [Fleischer ’95] Cellular textures [Fleischer ’95] Covering surface with triangular tiles [Neyret ’99] Covering surface with triangular tiles [Neyret ’99]

Approach texture patch surface

Key Idea: Patch Pasting texture patch surfacesurface “lapped textures”

PROCESS

Algorithm texture patch surface

Algorithm texture patch surface

Algorithm texture patch surface

Algorithm texture patch surface

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Texture Patch Creation

Less Structure  Splotch

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Direction Field: User-specified

Direction Field: Local to Patch

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Patch Growth

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Align Patch to Direction Field texture patch surface

Tangential Vector Field

Optimizing the Parametrization Least squares best match to unit axes Sparse linear system. No explicit fairness functional Least squares best match to unit axes Sparse linear system. No explicit fairness functional

Result of Optimization

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Coverage estimation off-screen buffer Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle per uncovered triangle Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle per uncovered triangle

Coverage estimation off-screen buffer Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle per uncovered triangle Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle per uncovered triangle

Coverage estimation off-screen buffer Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle per uncovered triangle Render patch triangles Flag covered triangles Remember 1 pixel per uncovered triangle per uncovered triangle

Issues 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering 1.Texture patch creation 2.Specifying direction field 3.Surface patch growth 4.Patch parametrization 5.Face coverage estimation 6.Texture storage and rendering

Texture Storage and Rendering Method 1: Texture Atlas Pre-composite into a global texture map. Pre-composite into a global texture map. -- OR -- Method 2: Runtime pasting Composite at run-time using hardware Composite at run-time using hardware Method 1: Texture Atlas Pre-composite into a global texture map. Pre-composite into a global texture map. -- OR -- Method 2: Runtime pasting Composite at run-time using hardware Composite at run-time using hardware

Method 1: Texture Atlas Patches of triangles with similar normals 2D packing problem for arbitrary polygons Patches of triangles with similar normals 2D packing problem for arbitrary polygons

Method 2: Runtime Pasting Store vertex coordinates for each patch Composite at run-time using hardware May render triangles several times Store vertex coordinates for each patch Composite at run-time using hardware May render triangles several times

Atlas vs. Runtime Pasting Atlas + Faster rendering, more portable + Easy to paint unique details (eyes, nose on bunny) – Sampling artifacts; user effort Pasting – Increases model complexity (   1.6 –3) + Huge effective resolution + Reuse splotch parameterization for many textures Atlas + Faster rendering, more portable + Easy to paint unique details (eyes, nose on bunny) – Sampling artifacts; user effort Pasting – Increases model complexity (   1.6 –3) + Huge effective resolution + Reuse splotch parameterization for many textures

RESULTS

Results: Splotches (completely automatic: no direction field)

Results: Anisotropic

Controlling Direction and Scale

25 frames per sec! 256 x 256 texture (282 times) 256 x 256 texture (282 times) 15,000 faces

Limitations low-frequencycomponentsboundarymismatches direction field singularities

Video

Interactive Paint Demo

Timings Texture patch creation: 1 min Specifying direction field: 15 min Surface patch growth Patch parameterization Face coverage estimation Rendering: Texture patch creation: 1 min Specifying direction field: 15 min Surface patch growth Patch parameterization Face coverage estimation Rendering: Preprocessing: 20sec – 6 min Preprocessing: Pentium III 733MHz, GeForce graphics Human effort

Conclusions Effective texture-by-example through:  Overlapping texture patches  Minimal edge blending Aligning to direction field  fast optimization Runtime pasting  high effective resolution Effective texture-by-example through:  Overlapping texture patches  Minimal edge blending Aligning to direction field  fast optimization Runtime pasting  high effective resolution

Future Work Other texture types: Animated Animated “Thick” (volumetric) textures  fur “Thick” (volumetric) textures  fur NPR rendering NPR rendering Greater automation Fine-tuning patch placement Other texture types: Animated Animated “Thick” (volumetric) textures  fur “Thick” (volumetric) textures  fur NPR rendering NPR rendering Greater automation Fine-tuning patch placement

“X Covers Y”? Flattening covers texture patch Texture patch covers triangle Use inner / outer hulls of texture unit OR scan - convert (use hardware) Flattening covers texture patch Texture patch covers triangle Use inner / outer hulls of texture unit OR scan - convert (use hardware)

Polygonal Hulls Start w/ boundary pixels, edges between neighbors Conservatively simplify polygons Start w/ boundary pixels, edges between neighbors Conservatively simplify polygons

Algorithm Cut texture patches from input texture [Specify texture direction & scale on mesh] REPEAT Pick texture patch T, mesh point P Grow surface patch S around P to size(T) Flatten S over T; paste T on mesh Update mesh coverage info UNTIL mesh is covered Cut texture patches from input texture [Specify texture direction & scale on mesh] REPEAT Pick texture patch T, mesh point P Grow surface patch S around P to size(T) Flatten S over T; paste T on mesh Update mesh coverage info UNTIL mesh is covered

Patch Growth Guess initial parametrization Want to cover texture patch Overlaps ok Prevent excessive distortion Surface patch homeomorphic to a disc Guess initial parametrization Want to cover texture patch Overlaps ok Prevent excessive distortion Surface patch homeomorphic to a disc

Optimizing the Parametrization TT SS BB CC AA (T)(T)(T)(T) (T)(T)(T)(T) (S)(S)(S)(S) (S)(S)(S)(S) (A)(A)(A)(A) (A)(A)(A)(A) (B)(B)(B)(B) (B)(B)(B)(B) (C)(C)(C)(C) (C)(C)(C)(C)  tt^^ss ^^ face in 3D 2D texture space

Optimizing the Parametrization Scale control given by || S ||, || T || Solution unique up to a translation (fix patch center) No explicit fairness term No flipped triangle ambiguity as in methods using meshes of springs Patch may require further growth Scale control given by || S ||, || T || Solution unique up to a translation (fix patch center) No explicit fairness term No flipped triangle ambiguity as in methods using meshes of springs Patch may require further growth