Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 8: Texture Mapping 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271

Similar presentations


Presentation on theme: "Lecture 8: Texture Mapping 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271"— Presentation transcript:

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


Download ppt "Lecture 8: Texture Mapping 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271"

Similar presentations


Ads by Google