texture mapping course: computer graphics presented by fan chen [email protected]
TRANSCRIPT
![Page 2: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/3.jpg)
Why Texture Mapping?
Model Model + Texture+ Shading
![Page 4: Texture Mapping Course: Computer Graphics Presented by Fan Chen fchen@cs.kent.edu](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022033106/56649e8f5503460f94b9355c/html5/thumbnails/17.jpg)
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