Download presentation
Presentation is loading. Please wait.
Published byShanon Gardner Modified over 9 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.