Computer Graphics (Spring 2008) COMS 4160, Lecture 19: Texture Mapping Many slides from Greg Humphreys, UVA and Rosalee.

Slides:



Advertisements
Similar presentations
9.1si31_2001 SI31 Advanced Computer Graphics AGR Lecture 9 Adding Realism Through Texture.
Advertisements

Virtual Realism TEXTURE MAPPING. The Quest for Visual Realism.
03/16/2009Dinesh Manocha, COMP770 Texturing Surface’s texture: its look & feel Graphics: a process that takes a surface and modifies its appearance using.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
ATEC Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
Computer Graphics Bing-Yu Chen National Taiwan University.
Texture Visual detail without geometry. Texture Mapping desire for heightened realism.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Textures II Week 8, Wed.
CS6500 Adv. Computer Graphics © Chun-Fa Chang, Spring 2003 Texture Mapping II April 10, 2003.
Computer Graphics (Fall 2005) COMS 4160, Lecture 16: Illumination and Shading 1
Texture Mapping CPSC /24/03 Abhijeet Ghosh.
HCI 530 – Seminar in Advanced Topics 10/8/2004Damian Schofield1 Texturing Based on 3D Rendering, Humphreys, G., University of Virginia, 2004.
(conventional Cartesian reference system)
Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 18: Shading & Texture Mapping Many slides from Greg.
Texture Mapping from Watt, Ch. 8 Jonathan Han. Topics Discussed Texture Map to Models Bump Maps, Light Maps Environment (Reflection) Mapping 3D Textures.
CS6500 Adv. Computer Graphics © Chun-Fa Chang, Spring 2003 Texture Mapping.
Texture Mapping April 9, The Limits of Geometric Modeling Although graphics cards can render over 10 million polygons per second, that number.
Texture Mapping Texture Mapping Ltjg Omer Arisut Turkish Navy Turkish Navy Texture Mapping Texture Mapping Ltjg Omer Arisut Turkish Navy Turkish Navy.
Coordinate Systems X Y Z (conventional Cartesian reference system) X Y Z.
Computer Graphics Inf4/MSc Computer Graphics Lecture 11 Texture Mapping.
CS559: Computer Graphics Lecture 27: Texture Mapping Li Zhang Spring 2008 Many slides from Ravi Ramamoorthi, Columbia Univ, Greg Humphreys, UVA and Rosalee.
CS559: Computer Graphics Lecture 27: Texture Mapping Li Zhang Spring 2008.
Texture Mapping A way of adding surface details Two ways can achieve the goal:  Surface detail polygons: create extra polygons to model object details.
1 Texturing. 2 What is Texturing? 3 Texture Mapping Definition: mapping a function onto a surface; function can be:  1, 2, or 3D  sampled (image) or.
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
Computer Graphics Inf4/MSc Computer Graphics Lecture 9 Antialiasing, Texture Mapping.
Texture Mapping. 2 The Limits of Geometric Modeling Although graphics cards can render over 10 million polygons per second, that number is insufficient.
1 Texture. 2 Overview Introduction Painted textures Bump mapping Environment mapping Three-dimensional textures Functional textures Antialiasing textures.
Computer Graphics Inf4/MSc Computer Graphics Lecture 7 Texture Mapping, Bump-mapping, Transparency.
David Luebke 1 9/13/2015 Texture Mapping. David Luebke 2 9/13/2015 Recap: Texture Map Rendering ● Rendering uses the mapping: ■ Find the visible surface.
ECSE 4750: Computer Graphics Rensselaer Polytechnic Institute Nov 5, 2012 Texture and Texture Mapping.
Computer Graphics Texture Mapping
1 Texture Mapping ©Anthony Steed Overview n Texture mapping Inverse and Forward Mapping Bilinear interpolation Perspective correction n Mipmapping.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 Texture Mapping 고려대학교 컴퓨터 그래픽스 연구실.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
1 Texture Mapping. 2 Texture Aliasing MIPmaps Environment Mapping Bump Mapping Displacement Mapping Shadow Maps Solid Textures Antialiasing.
Computing & Information Sciences Kansas State University Lecture 10 of 42CIS 636/736: (Introduction to) Computer Graphics CIS 636/736 Computer Graphics.
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
Texture Mapping CAP4730: Computational Structures in Computer Graphics.
CS559: Computer Graphics Lecture 27: Texture Mapping Li Zhang Spring 2008 Many slides from Ravi Ramamoorthi, Columbia Univ, Greg Humphreys, UVA and Rosalee.
Lecture 6 Rasterisation, Antialiasing, Texture Mapping,
CS559: Computer Graphics Lecture 20: Project 2 Review and Texture mapping Li Zhang Spring 2010 Many slides from Ravi Ramamoorthi, Columbia Univ, Greg Humphreys,
MIT EECS 6.837, Durand and Cutler Texture Mapping & Other Fun Stuff.
Computing & Information Sciences Kansas State University Lecture 12 of 42CIS 636/736: (Introduction to) Computer Graphics CIS 636/736 Computer Graphics.
CS559: Computer Graphics Lecture 21: Subdivision, Bspline, and Texture mapping Li Zhang Spring 2008.
11/5/2002 (c) University of Wisconsin, CS 559 Last Time Local Shading –Diffuse term –Specular term –All together –OpenGL brief overview.
Texture Mapping Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by David Luebke)
MIT EECS 6.837, Durand and Cutler Texture Mapping & Other Fun Stuff.
CS559: Computer Graphics Lecture 20: Project 2 Review and Texture mapping Li Zhang Spring 2010 Many slides from Ravi Ramamoorthi, Columbia Univ, Greg Humphreys,
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Texture Mapping Greg Humphreys University of Virginia CS 445, Fall 2003.
CSc4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University Texture Mapping.
CSE 681 Texture Mapping: 2D Texturing. CSE 681 Texture Mapping Visual complexity on demand Vary display properties over object Location on object used.
Texturing CMSC 435/ What is Texturing? 2 Texture Mapping Definition: mapping a function onto a surface; function can be: – 1, 2, or 3D – sampled.
Texturing Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology.

CSE 167 [Win 17], Lecture 18: Texture Mapping Ravi Ramamoorthi
Texture Mapping cgvr.korea.ac.kr.
ATEC Procedural Animation
ATCM 3310 Procedural Animation
Graphics, Fall 2017 Lecture 24: Texture Mapping
So Far We have assumed that we know: The point The surface normal
Lecture 21: Texture mapping Li Zhang Spring 2010
Procedural Animation Lecture 6: Mapping
ATCM 6317 Procedural Animation
Texture Mapping 고려대학교 컴퓨터 그래픽스 연구실.
Advanced Computer Graphics: Texture
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
3D Game Programming Texture Mapping
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Presentation transcript:

Computer Graphics (Spring 2008) COMS 4160, Lecture 19: Texture Mapping Many slides from Greg Humphreys, UVA and Rosalee Wolfe, DePaul tutorial teaching texture mapping visually

To Do  Work on HW4 milestone  Prepare for final push on HW 4  No final exam. HW 4, written ass 1, 2

This Lecture: Texture Mapping  Important topic: nearly all objects textured  Wood grain, faces, bricks and so on  Adds visual detail to scenes  Meant as a fun and practically useful lecture  But not tested specifically on it Polygonal model With surface texture

Adding Visual Detail  Basic idea: use images instead of more polygons to represent fine scale color variation

Parameterization geometry + = image texture map Q: How do we decide where on the geometry each color from the image should go?

Option: Varieties of projections [Paul Bourke]

Option: unfold the surface [Piponi2000]

Option: make an atlas [Sander2001] chartsatlassurface

Option: it’s the artist’s problem

Outline  Types of projections  Interpolating texture coordinates  Broader use of textures

How to map object to texture?  To each vertex (x,y,z in object coordinates), must associate 2D texture coordinates (s,t)  So texture fits “nicely” over object

Idea: Use Map Shape  Map shapes correspond to various projections  Planar, Cylindrical, Spherical  First, map (square) texture to basic map shape  Then, map basic map shape to object  Or vice versa: Object to map shape, map shape to square  Usually, this is straightforward  Maps from square to cylinder, plane, sphere well defined  Maps from object to these are simply spherical, cylindrical, cartesian coordinate systems

Planar mapping  Like projections, drop z coord (s,t) = (x,y)  Problems: what happens near z = 0?

Cylindrical Mapping  Cylinder: r, θ, z with (s,t) = (θ/(2π),z)  Note seams when wrapping around (θ = 0 or 2π)

Spherical Mapping  Convert to spherical coordinates: use latitude/long.  Singularities at north and south poles

Cube Mapping

Outline  Types of projections  Interpolating texture coordinates  Broader use of textures

1 st idea: Gouraud interp. of texcoords Scan line Actual implementation efficient: difference equations while scan converting

Artifacts  McMillan’s demo of this is at  Another example  What artifacts do you see?  Why?  Why not in standard Gouraud shading?  Hint: problem is in interpolating parameters

Interpolating Parameters  The problem turns out to be fundamental to interpolating parameters in screen-space  Uniform steps in screen space  uniform steps in world space

Texture Mapping Linear interpolation of texture coordinates Correct interpolation with perspective divide Hill Figure 8.42

Interpolating Parameters  Perspective foreshortening is not getting applied to our interpolated parameters  Parameters should be compressed with distance  Linearly interpolating them in screen-space doesn’t do this

Perspective-Correct Interpolation  Skipping a bit of math to make a long story short…  Rather than interpolating u and v directly, interpolate u/z and v/z  These do interpolate correctly in screen space  Also need to interpolate z and multiply per-pixel  Problem: we don’t know z anymore  Solution: we do know w  1/z  So…interpolate uw and vw and w, and compute u = uw/w and v = vw/w for each pixel  This unfortunately involves a divide per pixel 

Texture Map Filtering  Naive texture mapping aliases badly  Look familiar? int uval = (int) (u * denom + 0.5f); int vval = (int) (v * denom + 0.5f); int pix = texture.getPixel(uval, vval);  Actually, each pixel maps to a region in texture  |PIX| < |TEX|  Easy: interpolate (bilinear) between texel values  |PIX| > |TEX|  Hard: average the contribution from multiple texels  |PIX| ~ |TEX|  Still need interpolation!

Mip Maps  Keep textures prefiltered at multiple resolutions  For each pixel, linearly interpolate between two closest levels (e.g., trilinear filtering)  Fast, easy for hardware  Why “Mip” maps?

MIP-map Example  No filtering:  MIP-map texturing: AAAAAAAGH MY EYES ARE BURNING Where are my glasses?

Outline  Types of projections  Interpolating texture coordinates  Broader use of textures

Texture Mapping Applications  Modulation, light maps  Bump mapping  Displacement mapping  Illumination or Environment Mapping  Procedural texturing  And many more

Modulation textures Map texture values to scale factor Wood texture Texture value

Bump Mapping  Texture = change in surface normal! Sphere w/ diffuse textureSwirly bump map Sphere w/ diffuse texture and swirly bump map

Displacement Mapping

Illumination Maps  Quake introduced illumination maps or light maps to capture lighting effects in video games Texture map: Texture map + light map: Light map

Environment Maps Images from Illumination and Reflection Maps: Simulated Objects in Simulated and Real Environments Gene Miller and C. Robert Hoffman SIGGRAPH 1984 “Advanced Computer Graphics Animation” Course Notes

Solid textures Texture values indexed by 3D location (x,y,z) Expensive storage, or Compute on the fly, e.g. Perlin noise 

Procedural Texture Gallery