For this week, we’re going to talk about texture: specifying more than 1 color (or other property) per vertex/triangle.
If you didn’t read the lighting readings from last week, make sure to start with those:
- Chapter 10: Surface Shading in Fundamentals of Computer Graphics. We won’t do much with 10.3 (Artistic Shading) – but you should read it for interest anyway. The rest of the chapter is a concise intro to what you need to know.
- Chapter 5: Lighting in the OpenGL Red Book. Be careful: most of this is trying to show you the baroque way that the older versions of OpenGL forced us to specify lighting. It’s good to get a sense of what you can do, but don’t worry about all the weird details of how OpenGL’s lighting commands work. They’ll be done for you in Project 1, and you’ll get to implement lighting for yourself in Project 2.
- Chapter 5: Visual Appearance in Real Time Rendering. The Sections up to (and including 5.5) get at shading in a really thorough way. 5.6 and beyond is stuff we’ll come back to when we discuss image processing.
For the texture readings, again, you can “read behind” the lectures. I’ll give you the big picture, and then let you read to catch up on the details. Note that a lot of the grunginess in how OpenGL does textures both (1) changed as we’ve gone to “modern” OpenGL (it has gotten worse, if you can believe it), but (2) isn’t something you need to worry too much about because there’s always sample code to look at to get the archaic sequence of calls correct. However, you will need to understand the principles.
The texture readings:
- Chapter 11, Texture Mapping, of Fundamentals of Computer Graphics. This is a nice general discussion of texture mapping. It starts with the simpler (ironically) 3D textures – and gets to image-based texturing (what most people mainly think of) second. At present, I don’t have this available for class – if I can’t get a scan of it, I’ll make sure that we discuss enough of it in class.
- Chapter 6, Texturing, of Real-Time Rendering, 3e. Warning: this quickly gets in to way more complicated stuff than we need for class, but skimming over those parts will give you a sense of the richness of the problem and the potential. Read the beginning up to (and including) 6.2.2. 6.2.2 will make more sense after we talk about images later in the class, but this will be your first real taste of aliasing concepts. We’ll discuss mipmaps in class – the more advanced ones are more of an intellectual curiosity at this point.
The stuff after 6.2.2. is optional – we’ll come back to some of it. 6.2.3 and 6.2.4 are more advanced things that we’ll see again later when we do advanced texturing. 6.2.5 and 6.2.6 are fiddly implementation details that change every year (so this will give you a sense of what people were doing to make high-performance games 4-5 years ago). A lot of the other kinds of mapping (bump, normal, texture, …) we’ll come back to later in the class. - Chapter 9, Texture Mapping, in the OpenGL Redbook. Again, this covers the basic concepts with an emphasis on the steps you had to do in old-style OpenGL to make them happen. It’s worth skimming over since it makes a lot of the concepts more concrete: these are the things you actually do to make texturing happen. But don’t get hung up on the baroque sequence of commands. You have to do all these things (still), but there are (differently baroque) ways to do it. This chapter just needs to be skimmed, and then you can look at it more closely should you need to do old-style OpenGL textures.