lecture 18: texture mapping · - where the final image is really produced 13. texture mapping...

30
CITS3003 Graphics & Animation Lecture 18: Texture Mapping E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012

Upload: others

Post on 06-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

CITS3003 Graphics & Animation

Lecture 18: Texture Mapping

E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012

Page 2: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Objectives

• Introduce Mapping Methods

- Texture Mapping

- Environment Mapping

- Bump Mapping

•Consider basic strategies

- Point sampling vs area averaging

- Forward vs backward mapping

- Two part mapping

2

Page 3: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

The Limits of Geometric Modeling

• Although graphics cards can render over 10

million triangles per second, that number is

insufficient for many phenomena

- Clouds

- Grass

- Terrain

- Skin

3

Page 4: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Modelling an Orange

• Consider the problem of modelling an orange (the fruit)

• We can model it as an orange-coloured sphere

- Unfortunately, the rendering would be too regular to look like an

orange.

4

Page 5: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Modelling an Orange

• Alternatively, we can replace the sphere with a more complex

shape

• Unfortunately, the rendering still does not capture some fine

surface characteristics (e.g., small dimples on the orange);

• Plus, increasing the number of polygons to capture the

surface details would overwhelm the pipeline.

5

Page 6: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Modelling an Orange (cont.)

• Another alternative is to take a picture of a real

orange, and “paste” the image of the orange skin

onto a sphere

- This process is known as texture mapping

• However, this still might not be sufficient because

the resulting surface will be smooth. To make the

surface look a bit rough, we

- need to change local shape, i.e., we need bump mapping

6

Page 7: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Three Types of Mapping Techniques

• Texture Mapping

- Uses an image (or texture map) to influence the colour of a fragment;

i.e., we paint patterns onto smooth surfaces.

• Environment Mapping (reflection mapping)

- Uses a picture of the environment as the texture map

- This allows us to simulate highly specular surfaces

• Bump mapping

- Adds small distortions to the surface normals before mapping the

texture during the rendering process.

- This allows us to simulate small variations in shape, such as the

bumps on a real orange.

7

Page 8: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Texture Mapping

geometric model texture mapping output

8

Page 9: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Environment Mapping

9

geometric model Environment mapping output

Page 10: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Bump Mapping

10

geometric model Bump mapping output

Page 11: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Where does texture mapping

take place?

• Mapping techniques are implemented at the

end of the rendering pipeline

- Very efficient because few triangles make it

past the clipper

11

Page 12: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Is it simple?

Although the idea of mapping a texture

(usually stored as an image in a file) onto a

3D surface is simple, there are 3 or 4

coordinate systems involved.

2D image

3D surface12

Page 13: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

The Coordinate Systems

involved in Texture Mapping

• Parametric coordinates

- May be used to model curves and surfaces

• Texture coordinates

- Used to identify points in the image to be mapped

• Object or World Coordinates

- Conceptually, where the mapping takes place

• Window or Screen Coordinates

- Where the final image is really produced

13

Page 14: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Texture Mapping

parametric coordinates

texture coordinates

(no unit, s and t are

both in the range 0..1)object coordinates

screen coordinates

(in pixel unit)

parametric coordinates

(in pixel unit)

14

Page 15: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

s

t

(𝑥, 𝑦, 𝑧)

Mapping Functions

• Consider mapping from texture coordinates to a point on a surface

• We need three parametric functions to describe the surface 𝑥(𝑠, 𝑡)

𝑦(𝑠, 𝑡)

𝑧(𝑠, 𝑡)

•Given the texture coord. (𝑠, 𝑡) of a pixel, find out which point on the surface

it corresponds to.But we really want to go the other way…

15

Page 16: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Backward Mapping

• However, we really want to go backwards, i.e.,

mapping from screen coordinates to texture

coordinates.

16

Screen

coordinatesObject

coordinates

Texture

coordinates

Page 17: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Backward Mapping (cont.)

• Given a pixel on the screen, we want to find the

corresponding 3D point (𝑥, 𝑦, 𝑧) on the object and then the

(𝑠, 𝑡) coordinates in the texture map that the pixel

corresponds to.

• For the mapping from object coordinates (𝑥, 𝑦, 𝑧) to texture

coordinates (𝑠, 𝑡), we need a mapping the form: • 𝑠(𝑥, 𝑦, 𝑧)

• 𝑡(𝑥, 𝑦, 𝑧)

i.e., given 𝑥, 𝑦, and 𝑧, what are the values for the parameters 𝑠and 𝑡 to index into the texture map?

• Such mapping functions are difficult to find in general.17

Page 18: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

A pixel

occupies a

square region

on the screen

A non-square

region on the

3D surface

A non-square

region on the

texture map

Need to Map Areas to Areas

• Because each pixel corresponds to a small rectangle on the display,

when doing the backward mapping, we cannot just map points to points

in the different coordinate systems; we need to map areas to areas.

• In the diagram below, the non-square area of the texture should

contribute to the shading of the pixel

18

Page 19: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Aliasing

• We need to map areas to areas

as mapping points to points can

also cause aliasing even for

simple flat surfaces.

• What is aliasing? - In Computer Graphics, this refers to the

process by which smooth curves or lines

become jagged because of the resolution

of the graphics device or insufficient data

to represent the curves.

• Aliasing occurs in texture mapping

too.

19

Page 20: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Aliasing (cont.)

• Suppose we have a periodic looking texture and we map points to points.•

• Then even for flat surfaces, we can still encounter the aliasing problem.

Especially when the camera zooms out of the scene, this results in each

pixel covering a large region of the 3D surface…

point samples in the (𝑢,𝑣)of the 3D space

point samples in texture space.We miss blue stripes.

texture

map

3D flat

surface

20

Page 21: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Aliasing (cont.)

• Mapping areas to areas means that we assign the average shading value

of the texture region to the pixel.

• This helps to reduce the aliasing effect.

• However, we would still miss the blue stripes when the resolution of both

the frame buffer and the texture map drops.

21

point samples in the (𝑢,𝑣)of the 3D space

point samples in texture space.We miss blue stripes.

texture

map

3D flat

surface

Page 22: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Two-part Mapping

• We mentioned earlier that finding backward mapping functions

are difficult to find in general…

• One solution is to use a two-part mapping:

- First-part mapping:

oLook for an intermediate object that is closest to the 3D object that

we want to map texture onto

oMap the texture onto this intermediate object

- Second-part mapping:

oMap the texture from the intermediate object to the actual object.

oThere are 3 different ways (see later) to implement this second-part

mapping.

22

Page 23: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Two-part mapping

•Common intermediate

objects:

o cylinder

o sphere

o box

•Example: Suppose the intermediate

surface is a cylinder. The first-part

mapping is then to map the texture onto

the cylinder.

23

Page 24: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

xy

z

First-part mapping:

Intermediate object – cylinder

• Parametric equation of a cylinder with radius=𝑟 and height=ℎ:

o 𝑥 = 𝑟 cos 2𝜋𝑢

o 𝑦 = 𝑟 sin 2𝜋𝑢

o 𝑧 = 𝑣/ℎ

• Given a 3D point (𝑥, 𝑦, 𝑧) on the cylinder, do the following:

- Find out the parameter values 𝑢 and 𝑣

- Since 𝑢 and 𝑣 vary from 0 to 1, we can simply let

𝑠 = 𝑢𝑡 = 𝑣

- retrieve the colour at coordinate 𝑠, 𝑡 from the texture map.

24

Note that 𝑥 and 𝑦 take values in the range

– 𝑟⋯𝑟, 𝑧 takes values from 0 to ℎ.

The parameters

are 𝑢 and 𝑣

Page 25: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

25

Page 26: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

First-part mapping:

Intermediate object – sphere

• We can also use a sphere as the intermediate object.

The parametric equation of a sphere or radius 𝑟 is

given by:

in a similar manner to the cylinder:

oGive (𝑥, 𝑦, 𝑧) compute 𝑢 and 𝑣

oLet 𝑠 = 𝑢 and 𝑡 = 𝑣

Obviously there is distortion. We have todecide where

to put the distortion.

• Spheres are used in environment mapping.

• 𝑥 = 𝑟 cos 2𝜋𝑢• 𝑦 = 𝑟 sin 2𝜋𝑢 cos 2𝜋𝑣• 𝑧 = 𝑟 sin 2𝜋𝑢 sin 2𝜋𝑣

26

The parameters

are 𝑢 and 𝑣

Page 27: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

First-part mapping:

Intermediate object – box

• Easy to use with simple orthographic projection

• Boxes are also used as intermediate objects in

environment mapping

27

Page 28: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Second-part Mapping

• The second-part mapping is to map the texture from the

intermediate object to the actual object.

• There are 3 ways to map texture from an intermediate object

to the actual object:

1. Normals from intermediate to actual

2. Normals from actual to intermediate

3. Vectors from centre of intermediate

Intermediate object (a sphere in these examples)actual object

28

Page 29: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Real objects + real textures

29

• A 3D scan of a real face

• Captured from two viewpoints

• Two images (textures)

• Captured from two

viewpoints

Real texture mapped on the 3D face

Page 30: Lecture 18: Texture Mapping · - Where the final image is really produced 13. Texture Mapping parametric coordinates texture coordinates ... coordinates in the texture map that the

Further Reading

“Interactive Computer Graphics – A Top-Down Approach with Shader-

Based OpenGL” by Edward Angel and Dave Shreiner, 6th Ed, 2012

• Sec. 7.4 Mapping Methods

• Sec. 7.5 Texture Mapping, including

• Sec. 7.5.1 Two-Dimensional Texture Mapping

• For the aliasing problem, see Pages 370-371.

30