Texture Mapping May 4, 2006 Many slides are borrowed from UNC-CH - - PDF document

texture mapping
SMART_READER_LITE
LIVE PREVIEW

Texture Mapping May 4, 2006 Many slides are borrowed from UNC-CH - - PDF document

Texture Mapping May 4, 2006 Many slides are borrowed from UNC-CH COMP236 Course (Spring 2003) taught by Leonard McMillan http://www.unc.edu/courses/2003spring/ comp/236/001/handouts.html 1 2 3 4 5 6 Compare the above with what we


slide-1
SLIDE 1

1

Texture Mapping

May 4, 2006 Many slides are borrowed from UNC-CH COMP236 Course (Spring 2003) taught by Leonard McMillan http://www.unc.edu/courses/2003spring/ comp/236/001/handouts.html

slide-2
SLIDE 2

2

slide-3
SLIDE 3

3

slide-4
SLIDE 4

4

slide-5
SLIDE 5

5

slide-6
SLIDE 6

6

slide-7
SLIDE 7

7

Compare the above with what we discussed previously… (Note the different meaning of s and t.)

slide-8
SLIDE 8

8

Derivation of s and t

  • Two end points P1=(x1, y1, z1) and

P2=(x2, y2, z2). Let P3=(1-t)P1+(t)P2

  • After projection, P1, P2, P3 are projected

to (x’1, y’1), (x’2, y’2), (x’3, y’3) in screen

  • coordinates. Let (x’3, y’3)=(1-s)(x’1, y’1)

+ s(x’2, y’2).

  • (x’1, y’1), (x’2, y’2), (x’3, y’3) are obtained

from P1, P2, P3 by:

) 1 1 ) 1 (( 1 ' ' ' 1 ' ' ' , 1 ' ' '

2 2 2 1 1 1 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1

            +             − =             =                         =                         =             z y x t z y x t M z y x M w w z w y w x z y x M w w z w y w x z y x M w w z w y w x

slide-9
SLIDE 9

9

Since We have:

            =                         =            

2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1

' ' ' 1 , ' ' ' 1 w w z w y w x z y x M w w z w y w x z y x M             +             − =             ⋅ +             − =            

2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 1 1 1 3 3 3 3 3 3 3

' ' ' ' ' ' ) 1 ( 1 1 ) 1 ( ' ' ' w w z w y w x t w w z w y w x t z y x M t z y x M t w w z w y w x

When P3 is projected to the screen, we get (x’3, y’3) by dividing by w, so: But remember that (x’3, y’3)=(1-s)(x’1, y’1) + s(x’2, y’2) Looking at x coordinate, we have

) ) 1 ( ' ' ) 1 ( , ) 1 ( ' ' ) 1 ( ( ) ' , ' (

2 1 2 2 1 1 2 1 2 2 1 1 3 3

w t w t w y t w y t w t w t w x t w x t y x ⋅ + − ⋅ + − ⋅ + − ⋅ + − =

2 1 2 2 1 1 2 1

) 1 ( ' ' ) 1 ( ) 1 ( w t w t w x t w x t x s x s ⋅ + − ⋅ + − = ⋅ + −

slide-10
SLIDE 10

10

We may rewrite s in terms of t, w1, w2, x’1, and x’2. In fact,

  • r conversely

Surprisingly, x’1 and x’2 disappear.

) ( ) 1 (

1 2 1 2 2 1 2

w w t w w t w t w t w t s − + ⋅ = ⋅ + − ⋅ =

2 2 1 1 2 1 1

) ( ) 1 ( w w w s w s w s w s w s t + − ⋅ = − + ⋅ ⋅ =

Texture Mapping II

slide-11
SLIDE 11

11

What You Will Learn Today?

  • Bump maps
  • Mipmapping for antialiased textures
  • Projective textures
  • Shadow maps
  • Environment maps

The Limits of Geometric Modeling

  • Although graphics cards can render over

10 million polygons per second, that number is insufficient for many phenomena

–Clouds –Grass –Terrain –Skin

slide-12
SLIDE 12

12

Modeling an Orange

  • Consider the problem of modeling an
  • range (the fruit)
  • Start with an orange-colored sphere

–Too simple

  • Replace sphere with a more complex

shape

–Does not capture surface characteristics (small dimples) –Takes too many polygons to model all the dimples

Modeling an Orange (2)

  • Take a picture of a real orange, scan it,

and “paste” onto simple geometric model

–This process is texture mapping

  • Still might not be sufficient because

resulting surface will be smooth

–Need to change local shape –Bump mapping

slide-13
SLIDE 13

13

Three Types of Mapping

  • Texture Mapping

–Uses images to fill inside of polygons

  • Environmental (reflection mapping)

–Uses a picture of the environment for texture maps –Allows simulation of highly specular surfaces

  • Bump mapping

–Emulates altering normal vectors during the rendering process

Texture Mapping

geometric model texture mapped

slide-14
SLIDE 14

14

Environment Mapping Bump Mapping

slide-15
SLIDE 15

15

Magnification and Minification

Texture Polygon Magnification Minification Polygon Texture

More than one texel can cover a pixel (minification) or more than one pixel can cover a texel (magnification) Can use point sampling (nearest texel) or linear filtering ( 2 x 2 filter) to obtain texture values

Aliasing

  • Point sampling of the texture can lead to

aliasing errors

point samples in u,v (or x,y,z) space point samples in texture space miss blue stripes

slide-16
SLIDE 16

16

Area Averaging

A better but slower option is to use area averaging

Note that preimage of pixel is curved pixel preimage

slide-17
SLIDE 17

17

slide-18
SLIDE 18

18

Example

point sampling mipmapped point sampling mipmapped linear filtering linear filtering

Automatic Texture Coordinate Generation

  • OpenGL can generate texture coordinates

automatically

glTexGen{ifd}[v]()

  • generation modes

–GL_OBJECT_LINEAR –GL_EYE_LINEAR –GL_SPHERE_MAP (used for environmental maps)

  • Check the OpenGL Red Book!

–4th Ed., Chapter 8, pp.422-432, 446-450.

slide-19
SLIDE 19

19

slide-20
SLIDE 20

20

slide-21
SLIDE 21

21

slide-22
SLIDE 22

22

Shadow Map

  • Similarly, by clever use of glTexGen(),

we can cast shadows on objects.

Figure 1. These diagrams were taken from Mark Kilgard’s shadow mapping presentation at GDC

  • 2001. They illustrate the shadowing comparison that occurs in shadow mapping.

With Shadows Without Shadows

More Detail

  • For projective texture, see:

http://developer.nvidia.com/object/Proje ctive_Texture_Mapping.html

  • For shadow map, see:

http://developer.nvidia.com/object/hwsh adowmap_paper.html

slide-23
SLIDE 23

23

Question: Aren’t shadow and reflection global illumination effects? Why can we do it in the hardware pipeline?

slide-24
SLIDE 24

24

slide-25
SLIDE 25

25