Download presentation
Presentation is loading. Please wait.
Published byMagdalene Perry Modified over 9 years ago
1
Lecture 8: Texture Mapping 1 Principles of Interactive Graphics CMSCD2012 Dr David England, Room 718, ex 2271 d.england@livjm.ac.uk
2
Lecture 8: Texture Mapping 2 Coursework 2 Coursework 2 On web page and hardcopy available from me
3
Lecture 8: Texture Mapping 3 Today’s Lecture: Textures What are textures? How can they be created ? How are texture attributes set up? Applying textures to objects
4
Lecture 8: Texture Mapping 4 Texture Example 1 The background can be drawn in a paint tool and the texture pasted onto a Quad
5
Lecture 8: Texture Mapping 5 Texture Example 2 Textures on background ground building bridge water Some individual tiled
6
Lecture 8: Texture Mapping 6 What are textures? Textures: an image that can be glued onto a polygon Reduces the need to draw many polygons to make up a complex image Texture data: Rectangular areas of data with a width, height and depth Usually a bitmap or pixmap Depth information can represent colour, (or lighting or transparency) OpenGL also has 1D and 3D textures (see chapter 9 of OpenGL Programming book)
7
Lecture 8: Texture Mapping 7 Creating Textures... Textures can be created by either Creating the texture data in the program Loading the texture data from an texture (image) file OpenGL supports creating texture objects but … … Has no support loading images …….. Programmer has to provide the image loading functions Assign the image data to the texture object
8
Lecture 8: Texture Mapping 8 Creating Textures …within a program The example program ch9text.cpp creates an array of 4-byte values checkImage Each array item can hold values for R, G, B and alpha The next steps are then the same for internal or file-based textures Before the data can be used texture mapping must be enabled in OpenGL and a texture object created int textname; glEnable(GL_TEXTURE_2D); glGenTextures(1, &texname);
9
Lecture 8: Texture Mapping 9 Using textures … 1 We need to say what is the current texture to be used glBindTexture(GL_TEXTURE_2D, texname); We can then set the drawing context for applying the texture For example should the texture appear once or be tiled? glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); We can use GL_GLAMP or GL_REPEAT
10
Lecture 8: Texture Mapping 10 Using textures … 2 We can also set how the texture affects the colours of the underlying polygon glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); GL_REPLACE replaces the underlying colours GL_MODULATE works with the underlying colours Finally we set the co-ordinates of the texture as we draw the polygons to which it is applied ….
11
Lecture 8: Texture Mapping 11 Texture Co-ordinates The coordinates of textures are named S along the X axis and T along the Y axis The values of S and T range between 0.0 and 1.0 We can use values between 0.0 and 1.0 to select part of the imaged to be mapped, or We can use values greater than 1.0 to map multiple copies of the single texture across a polygon Texture coordinates are set for each vertex of the target polygon with glTexCoord2f()
12
Lecture 8: Texture Mapping 12 Texture Co-ordinates In the first example we have used texture coordinates of 0.0 and 1.0. The entire polygon is mapped across the QUAD
13
Lecture 8: Texture Mapping 13 Texture Co-ordinates In the second example we have loaded a TGA image into the program The image is mapped the texture to different faces of a 3D cube using glTexCoord2f() The texture coordinates are different for each face For example, Coordinates of: 0.0 and 1.0 - full image mapped 0.5 and 0.0 - part of image mapped and so on
14
Lecture 8: Texture Mapping 14 Texture tutorial 1 In chp9text.cpp what is the affect of changing GL_REPLACE to GL_MODULATE? Try experimenting with different coordinate values in glTexCoord2f(). What are the results? For the second example you need to unzip the file texture.zip into your M: drive space The C source and header files should be added to a new project The image file texture.tga should be in the same folder as the project
15
Lecture 8: Texture Mapping 15 Texture tutorial 2 If you want to use your own image files: Make sure the width and height are a power of 2 (16,32, 64, 128, 256) Save it as an uncompressed TGA file called texture.tga (or alter the name in the code Question: What is the affect of different values for tex_size in the display() function? Next 2 weeks: perspective and lighting
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.