PolyCube-Maps seamless texture mapping

Slides:



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

Shape Compression using Spherical Geometry Images
Olga Sorkine and Daniel Cohen-Or Tel-Aviv University Warped textures for UV mapping encoding.
Texture Mapping I Real-time Rendering Texture Mapping I CSE 781 Prof. Roger Crawfis.
03/16/2009Dinesh Manocha, COMP770 Texturing Surface’s texture: its look & feel Graphics: a process that takes a surface and modifies its appearance using.
Text Scaffolds for Effective Surface Labeling Gregory Cipriano and Michael Gleicher.
Photon Mapping. How did I use it 10 years ago? Why might you want to use it tomorrow?
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
Computer Graphics Bing-Yu Chen National Taiwan University.
Texture Visual detail without geometry. Texture Mapping desire for heightened realism.
3D Surface Parameterization Olga Sorkine, May 2005.
Week 9 - Wednesday.  What did we talk about last time?  Fresnel reflection  Snell's Law  Microgeometry effects  Implementing BRDFs  Image based.
Inter-Surface Mapping John Schreiner, Arul Asirvatham, Emil Praun (University of Utah) Hugues Hoppe (Microsoft Research)
Consistent Spherical Parameterization Arul Asirvatham, Emil Praun (University of Utah) Hugues Hoppe (Microsoft Research)
Web3D Los Angeles, August 2012 Adaptive Quad Patches: an Adaptive Regular Structure for Web Distribution and Adaptive Rendering.
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh.
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
Spherical Parameterization and Remeshing Emil Praun, University of Utah Hugues Hoppe, Microsoft Research.
Damon Rocco.  Tessellation: The filling of a plane with polygons such that there is no overlap or gap.  In computer graphics objects are rendered as.
HCI 530 : Seminar (HCI) Damian Schofield.
Advanced Texture and Lighting
Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
Marco Tarini · Kai Hormann · Paolo Cignoni · Claudio Montani PolyCube-Maps seamless texture mapping Visual Computing Lab · ISTI · CNR · Pisa, Italy.
Shadow Silhouette Maps Pradeep Sen, Mike Cammarano, Pat Hanrahan Stanford University.
Computer Graphics (Spring 2008) COMS 4160, Lecture 19: Texture Mapping Many slides from Greg Humphreys, UVA and Rosalee.
(conventional Cartesian reference system)
Texture Sprites: Texture Elements Splatted on Surfaces Sylvain Lefebvre Samuel Hornus Fabrice Neyret GRAVIR/IMAG-INRIA ACM SIGGRAPH 2005 Symposium on Interactive.
Advanced Texture Mapping May 10, Today’s Topics Mip Mapping Projective Texture Shadow Map.
Mesh Parameterization: Theory and Practice Non-Planar Domains.
Consistent Parameterizations Arul Asirvatham Committee Members Emil Praun Hugues Hoppe Peter Shirley.
Smooth Geometry Images Frank Losasso, Hugues Hoppe, Scott Schaefer, Joe Warren.
The Story So Far The algorithms presented so far exploit: –Sparse sets of images (some data may not be available) –User help with correspondences (time.
Computer Graphics Inf4/MSc Computer Graphics Lecture 11 Texture Mapping.
Projective Texture Atlas for 3D Photography Jonas Sossai Júnior Luiz Velho IMPA.
Parameterization.
Environment Mapping. Examples Fall Motivation Silver candlestick No appropriate texture for it “ environment ” map Simulates the results of ray-tracing.
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Textures and shadows  Generation  Mipmap  Texture coordinates,
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
CSCE 552 Fall D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and point.
Mesh Color Cem Yuksel John Keyser Donald H. House Texas A&M University SIGGRAPH /12/06 Xiang.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
1 Surface Applications Fitting Manifold Surfaces To 3D Point Clouds, Cindy Grimm, David Laidlaw and Joseph Crisco. Journal of Biomechanical Engineering,
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
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,
A Quadrilateral Rendering Primitive Kai Hormann · Marco Tarini A Quadrilateral Rendering Primitive Visual Computing Group · CNR · Pisa.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
CS418 Computer Graphics John C. Hart
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
All the Polygons You Can Eat
Simple Quad Domains for Field Aligned Mesh Parametrization Marco Tarini Enrico Puppo Daniele Panozzo Nico Pietroni Paolo Cignoni Visual Computing Lab ISTI-CNR,
Automatic Construction of Quad-Based Subdivision Surfaces using Fitmaps Daniele Panozzo, Enrico Puppo DISI - University of Genova, Italy Marco Tarini DICOM.
CSCI 440.  So far we have learned how to  build shapes  create movement  change views  add simple lights  But, our objects still look very cartoonish.
Module 06 –environment mapping Module 06 – environment mapping Module 06 Advanced mapping techniques: Environment mapping.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Texture Mapping Greg Humphreys University of Virginia CS 445, Fall 2003.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
CSE 681 Texture Mapping: 2D Texturing. CSE 681 Texture Mapping Visual complexity on demand Vary display properties over object Location on object used.
Texturing Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.
CSE 167 [Win 17], Lecture 18: Texture Mapping Ravi Ramamoorthi
POLYGON MESH Advance Computer Graphics
Texture Mapping cgvr.korea.ac.kr.
CS475 3D Game Development Level Of Detail Nodes (LOD)
Texture Mapping COMP575/COMP770.
Chapters VIII Image Texturing
Meshes.
Mesh Parameterization: Theory and Practice
Texture Mapping Jung Lee.
Patch Textures: Hardware Implementation of Mesh Colors
Presentation transcript:

PolyCube-Maps seamless texture mapping Marco Tarini · Kai Hormann · Paolo Cignoni · Claudio Montani Visual Computing Lab · ISTI · CNR · Pisa, Italy

Our Goal Texture mapping seamless hardware supported low distortion general object

Texture Atlas (multi-chart approach to parameterization) disk-like patches texture charts v + = Let me start this talk with two concepts that we are all familiar with. u 3D mesh 2D texture image textured bunny images courtesy of Lévy, Sylvain, Ray and Maillot , SIGGRAPH 02

Cube-Maps Typically used for environment mapping mesh environment per-fragment projection over the cube per-fragment texture fetch from the appropriate face mesh environment texture images from Bubble demonstration program, nVidia

with per-vertex 3D texture coord. (u,v,w) Abusing Cube-Maps What if we store surface color in a cube-map? object space texture space object space u v w + = “But we can also think of an ABuse of cubemaps. Take a spherical objact, say, an apple. We could then use a cubemap to color it, rather than the env around it.” We would assign a 3D texture coord to each vertex. Color info defined on a 3D texture domain <click> BUT stored in a 2D domain. The hw would then project, for each produced frgment, the interpolated t.c. on that cube, and mesh with per-vertex 3D texture coord. (u,v,w) cube-map textured apple

texture atlas cube-map seams a triangle cannot span multiple charts from chart B texture from chart A texture atlas seams a triangle cannot span multiple charts mesh dependency mipmapping difficult chart packing: wasted texels artifacts at boundaries no defined neighbors for boundary texels cube-map seamless a triangle can span multiple faces mesh independent mipmapping ok no packing: no wasted texels no boundaries, no artifacts texel neighbors always defined

texture atlas cube-map seams a triangle cannot span multiple charts from chart B texture from chart A texture atlas seams a triangle cannot span multiple charts mesh dependency mipmapping difficult chart packing: wasted texels artifacts at boundaries no defined neighbors for boundary texels cube-map seamless a triangle can span multiple faces mesh independent mipmapping ok no packing: no wasted texels no boundaries, no artifacts texel neighbors always defined

texture atlas cube-map seams a triangle cannot span multiple charts mesh dependency mipmapping difficult chart packing: wasted texels artifacts at boundaries no defined neighbors for boundary texels cube-map seamless a triangle can span multiple faces mesh independent mipmapping ok no packing: no wasted texels no boundaries, no artifacts texel neighbors always defined

texture atlas cube-map seams a triangle cannot span multiple charts mesh dependency mipmapping difficult chart packing: wasted texels artifacts at boundaries no defined neighbors for boundary texels cube-map seamless a triangle can span multiple faces mesh independent mipmapping ok no packing: no wasted texels no boundaries, no artifacts texel neighbors always defined

texture atlas cube-map seams a triangle cannot span multiple charts mesh dependency mipmapping difficult chart packing: wasted texels artifacts at boundaries no defined neighbors for boundary texels cube-map seamless a triangle can span multiple faces mesh independent mipmapping ok no packing: no wasted texels no boundaries, no artifacts texel neighbors always defined

texture atlas cube-map works (is general) does not (~spheres only!) seams a triangle cannot span multiple charts mesh dependency mipmapping difficult chart packing: wasted texels artifacts at boundaries no defined neighbors for boundary texels works (is general) cube-map seamless a triangle can span multiple faces mesh independent mipmapping ok no packing: no wasted texels no boundaries, no artifacts texel neighbors always defined does not (~spheres only!) so, why don’t we use cubemaps instead of standard texture? Obvoiusly, it is because what we are showing in the right part of this slide is a TOY exsample, that can work only because the texture object is similar to a sphere (actually, to a cube). Our objective is to have the same set of advantages for a GENERAL MESH. For that, we will extend the Cubemap mechanism. Before we do that, let see more closely what ingredient, which secret souce, make cubemap so ideal to texture an apple.

What we Keep from CubeMaps … from rasterizer Texture defined in 3D BUT stored in 2D interpolated coordinates in 3D texture space projection coordinates in 3D texture domain (a 2-manifold similar to the mesh) Per-fragment Hardware implemented coordinates in 3D texture domain FRAGMENT SHADER mapping coordinates in 2D texture domain 2D texture fetch…

 Going Beyond Apples Cube-Maps work well only for sphere-like objects world space texture space  Let us try to go beyond our toy example. sphere-like mesh cubic texture domain

 Going Beyond Apples But for more general objects? ? world space texture space ?  arbitrary meshes cubic texture domain

incompatible topology Going Beyond Apples But for more general objects? world space ? texture space  ...huge distortions, incompatible topology arbitrary meshes cubic texture domain [Praun Hoppe SIGGGRAPH 2003]

 Going Beyond Apples But for more general objects? world space texture space far too complex (GPU)  arbitrary mesh coarse mesh

Introducing Polycubes Po·ly·cube: n. (Geom.) A solid composed by multiple unit cubes attached face to face

Choosing a Polycube Polycube should roughly resemble the mesh world space texture space Why polycubes? 1st, polycubes give us enough flexibility to choose one that roughly resembles the given mesh and captures its large-scale features -> important to keep parametric distortion under bearable levels THEN, it is easy to define, and implement, the projection and the mapping to 2D that, as we have seen, we need. How do we do that? We will not go into detail here, but <click> mesh polycube

Partition of Texture Space 2D analogue case A case B dual grid a key ingredient here is polycube

partition of the parameter space back to 3D case 3 case 4-a case 4-b case 5 case 6-a case 6-b

partition of the parameter space back to 3D dual cells case 4-a case 5 case 4-b case 3

partition of the parameter space dual cells case 4-a case 5 case 4-b case 3

polycube-maps in a nutshell texture space (3D!) the polycube stored in texture RAM as: a packed texture image not necessarily on the polycube surface: project object space a fragment with interpolated texture coord u v w final texel value for the fragment map to 2D plus a tiny structure to store polycube layout the mesh (with per-vertex text. coord)

Fragment shader Input: current texture position (u,v,z) Find cell (in dual graph) Access information for that cell case orientation offset in global texture Apply axis-to-axis rotation inside cell according to orientation Apply projection according to case Add global offset Fetch final texel at resulting position stored in a texel in the tiny 3D lookup table

Examples of poly-cubic parameterizations in texture RAM object polycube-map w v u world space texture space

Examples of poly-cubic parameterizations object polycube-map w v u world space texture space

Examples of poly-cubic parameterizations object polycube-map w u v world space texture space

Examples of poly-cubic parameterizations object polycube-map w v u world space texture space

An example application: same texture for different LOD w + = Geometry 3 u v + = Geometry 2 the same polycube-map texture Geometry 1 + =

How to build a Polycube-Map (for a given mesh) Not automatic, to this point get a suitable polycube warp it around the mesh project mesh over it unwarp global optimization

Global optimization mean value MIPS ext. MIPS projection (not optimized)

Discussion Pros Cons Limits truly seamless texture mapping no patch boundaries no color bleeding very low distortion nearly optimal texture packing bilinear filtering possible mipmapping possible mesh independency Cons long fragment program ~60 GPU instruction long could be improved, with little branching support 3 t-coords per vertex instead of 2 Limits cannot handle arbitrary shape/topology complexity e.g. a tree

Thank you! Questions? http://vcg.isti.cnr.it/~polycubemaps/ or, just Google for “polycube-map” Marco Tarini · Kai Hormann · Paolo Cignoni · Claudio Montani Visual Computing Lab · ISTI · CNR · Pisa, Italy

Q: why only 6 cases? MC has 15... A: only polycubes with two-manifold surfaces are considered... no no

Q: Aren’t cubemaps just another atlas? v w A: true, but such chart borders are: transparent for triangles invisible for mipmapping... hidden from the user texture charts? chart boundaries?

Q: Similarities with volumetric textures Yes, a cube map can be seen as a compressed 3D texture… …which works only for a 2D surface in 3D texture space (and around it) texture stored in 1D values defined in a 2D space 2D analogue

Q: isn’t it a lot of work to build a polycube map? Polycube-maps Get a fitting polycube Warp it around mesh Project mesh over it Unwarp back Global optimization Atlases Find a good division into disk-like patches Pack charts togheter Global optimization

Q: isn’t it a lot of work to build a polycube map? Polycube-maps New. Not studied at all. Future work: design tools to make task a lot easier (but still user guided) In any case, final result will be clean (seamless...) Atlases Very much studied problem Automatic results inferior w.r.t. manual results In any case, final parameterization bound to have drawbacks (seams...)