CSE 167 [Win 17], Lecture 18: Texture Mapping Ravi Ramamoorthi

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.
Computer Graphics (Fall 2005) COMS 4160, Lecture 16: Illumination and Shading 1
Texture Mapping CPSC /24/03 Abhijeet Ghosh.
Computer Graphics (Spring 2008) COMS 4160, Lecture 19: Texture Mapping Many slides from Greg Humphreys, UVA and Rosalee.
(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.
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.
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 고려대학교 컴퓨터 그래픽스 연구실.
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
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.
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,
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.
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.

Texture Mapping Fall, 2016.
Photorealistic Rendering vs. Interactive 3D Graphics
Texture Mapping cgvr.korea.ac.kr.
ATEC Procedural Animation
ATCM 3310 Procedural Animation
Graphics, Fall 2017 Lecture 24: Texture Mapping
3D Graphics Rendering PPT By Ricardo Veguilla.
The Graphics Rendering Pipeline
So Far We have assumed that we know: The point The surface normal
Interactive Computer Graphics
Interactive Graphics Algorithms Ying Zhu Georgia State University
Lecture 21: Texture mapping Li Zhang Spring 2010
Procedural Animation Lecture 6: Mapping
ATCM 6317 Procedural Animation
CS-378: Game Technology Lecture #4: Texture and Other Maps
Texture Mapping 고려대학교 컴퓨터 그래픽스 연구실.
Computer Graphics (Fall 2003)
Advanced Computer Graphics: Texture
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
3D Game Programming Texture Mapping
Adding Surface Detail 고려대학교 컴퓨터 그래픽스 연구실.
Presentation transcript:

CSE 167 [Win 17], Lecture 18: Texture Mapping Ravi Ramamoorthi Computer Graphics CSE 167 [Win 17], Lecture 18: Texture Mapping Ravi Ramamoorthi http://viscomp.ucsd.edu/classes/cse167/wi17 Many slides from Greg Humphreys, UVA and Rosalee Wolfe, DePaul tutorial teaching texture mapping visually Chapter 11 in text book covers some portions

To Do Prepare for final push on HW 4 We may have a brief written assignment

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 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 charts atlas surface [Sander2001]

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

Cube Mapping

Outline Types of projections Interpolating texture coordinates Broader use of textures

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

Artifacts Wikipedia page 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 Wikipedia page

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 No filtering: MIP-map texturing: 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

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

Displacement Mapping

Illumination Maps Quake introduced illumination maps or light maps to capture lighting effects in video games Texture map: Light map Texture 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