texture mapping course: computer graphics presented by fan chen [email protected]

17
Texture Mapping Course: Computer Graphics Presented by Fan Chen [email protected]

Upload: shanon-gardner

Post on 29-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Texture Mapping

Course: Computer GraphicsPresented by Fan Chen

[email protected]

Page 2: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

OutlineWhy Texture Mapping?

What is Texture Mapping?

Texture Mapping in OpenGL

Page 3: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Why Texture Mapping?

Model Model + Texture+ Shading

Page 4: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Why Texture Mapping?Surfaces “in the wild” are very

complexCannot model all the fine variationsWe need to find ways to add surface

detailHow?

Page 5: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

What is Texture Mapping?Application of an image onto a

modelAn image is mapped onto the 2D

domain of a 3D model Correspondence between domain

of surface and texture gives method to apply image

Page 6: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Mapping FunctionsBasic problem is how to find the

mapsConsider mapping from texture to

surfaceThree functions are needed

x = x(s,t)y = y(s,t)z = z(s,t)

s

t

(x,y,z)

Page 7: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Texture Mapping in OpenGLThree steps to applying a texture

◦Specify the texture Read or generate image Assign to texture Enable texturing

◦Assign texture coordinates to vertices Proper mapping function

◦Specify texture parameters Wrapping , filtering

Page 8: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Specify Texture ImageDefine a texture image from an

array of texels (texture elements)◦ Glubyte my_texels[512][512][3];

Enable texture mapping◦ glEnable(GL_TEXTURE_2D)

Page 9: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Mapping a Texture

glTexCoord2f() specified at each vertex

s

t1, 1

0, 1

0, 0 1, 0

(s, t) = (0.2, 0.8)

(0.4, 0.2)

(0.8, 0.4)

A

B C

a

bc

Texture Space Object Space

Page 10: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Typical CodeglBegin(GL_POLYGON);

glTexCoord2f(s0, t0);glVertex3f(x0, y0, z0);

glTexCoord2f(s1, t1);glVertex3f(x1, y1, z1);

glTexCoord2f(s2, t1);glVertex3f(x2, y2, z2);

.

.glEnd();

Page 11: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Texture ParametersOpenGL a variety of parameter

that determine how texture is applied◦Wrapping parameters determine

what happens of s and t are outside the (0,1) range

◦Filter modes allow us to use area averaging instead of point samples

◦Mipmapping allows us to use textures at multiple resolutions

Page 12: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Wrapping ModeClamping: if s,t > 1 use 1, if s,t <0

use 0Repeating: use s,t modulo 1

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP )

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT )

texture

s

t

GL_CLAMPwrapping

GL_REPEATwrapping

Page 13: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Magnification and Minification

Magnification: more than one pixel can cover a texel

Minification: more than one texel can cover a pixel

Can use point sampling (nearest texel) or linear filtering to obtain texture values

Texture Polygon

Magnification Minification

PolygonTexture

Page 14: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Filter ModeModes determined byglTexParameteri( target, type, mode )

glTexParameteri(GL_TEXTURE_2D, GL_TEXURE_MAG_FILTER, GL_NEAREST);

glTexParameteri(GL_TEXTURE_2D, GL_TEXURE_MIN_FILTER, GL_LINEAR);

Page 15: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

MipmappingMipmapping allows for pre-filtered

texture maps of decreasing resolutions according the distance to the viewer

Different resolutions◦Level 0: original texture map◦Level 1: half size in width and height

Page 16: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

MipmappingDefine mipmaps

◦ glTexImage2D(GL_TEXTURE_2D, level, GL_RGB, …)

Where level = 0, 1, 2, ..

With mipmapping

Without mipmapping

Page 17: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu

Reference Text Book

◦Edward Angel, Interactive Computer Graphics: A Top-Down Approach with OpenGL, 5th edition, Addison-Wesley

Online courses◦www.tlaloc.sfsu.edu/~yoon/csc830/8

30_lecture8.texture.ppt◦www.jcsites.juniata.edu/faculty/kruse

/cs330/AngelTexture.ppt