Presentation is loading. Please wait.

Presentation is loading. Please wait.

Texture Mapping Course: Computer Graphics Presented by Fan Chen

Similar presentations


Presentation on theme: "Texture Mapping Course: Computer Graphics Presented by Fan Chen"— Presentation transcript:

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

2 Outline Why Texture Mapping? What is Texture Mapping? Texture Mapping in OpenGL

3 Why Texture Mapping? Model Model + Texture+ Shading

4 Why Texture Mapping? Surfaces “in the wild” are very complex Cannot model all the fine variations We need to find ways to add surface detail How?

5 What is Texture Mapping? Application of an image onto a model An image is mapped onto the 2D domain of a 3D model Correspondence between domain of surface and texture gives method to apply image

6 Mapping Functions Basic problem is how to find the maps Consider mapping from texture to surface Three functions are needed x = x(s,t) y = y(s,t) z = z(s,t) s t (x,y,z)

7 Texture Mapping in OpenGL Three 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

8 Specify Texture Image Define a texture image from an array of texels (texture elements) ◦ Glubyte my_texels[512][512][3]; Enable texture mapping ◦ glEnable(GL_TEXTURE_2D)

9 Mapping a Texture glTexCoord2f() specified at each vertex s t 1, 1 0, 1 0, 01, 0 (s, t) = (0.2, 0.8) (0.4, 0.2) (0.8, 0.4) A BC a b c Texture SpaceObject Space

10 Typical Code glBegin(GL_POLYGON); glTexCoord2f(s0, t0); glVertex3f(x0, y0, z0); glTexCoord2f(s1, t1); glVertex3f(x1, y1, z1); glTexCoord2f(s2, t1); glVertex3f(x2, y2, z2);. glEnd();

11 Texture Parameters OpenGL 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

12 Wrapping Mode Clamping: if s,t > 1 use 1, if s,t <0 use 0 Repeating: 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_CLAMP wrapping GL_REPEAT wrapping

13 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

14 Filter Mode Modes determined by glTexParameteri( target, type, mode ) glTexParameteri(GL_TEXTURE_2D, GL_TEXURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXURE_MIN_FILTER, GL_LINEAR);

15 Mipmapping Mipmapping 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

16 Mipmapping Define mipmaps ◦ glTexImage2D(GL_TEXTURE_2D, level, GL_RGB, …)  Where level = 0, 1, 2,.. With mipmapping Without mipmapping

17 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/830_lectur e8.texture.ppt www.tlaloc.sfsu.edu/~yoon/csc830/830_lectur e8.texture.ppt ◦ www.jcsites.juniata.edu/faculty/kruse/cs330/A ngelTexture.ppt www.jcsites.juniata.edu/faculty/kruse/cs330/A ngelTexture.ppt


Download ppt "Texture Mapping Course: Computer Graphics Presented by Fan Chen"

Similar presentations


Ads by Google