<<

Surface Details

✫ Incorp orate ne details in the scene.

✫ Mo deling with p olygons is impractical.

an texture/pattern on the

Catmull, 1974; Blin & Newell, 1976.

✫ Texture map

 Mo dels patterns, rough surfaces, 3D e ects.

✫ Solid textures

 3D textures to mo del wood grain, stains,

marble, etc.

✫ Bump mapping

 Displace normals to create shading e ects.

✫ Environment mapping

 Re ections of environment on shiny surfaces.

✫ Displacement mapping

 Perturb the p osition of some .

CPS124, 296: Computer Surface Details Page 1

Texture

✫ Maps an image on a surface.

✫ Each element is called texel.

✫ Textures are xed patterns, pro cedurally gen-

erated, or digitized .

CPS124, 296: Surface Details Page 2

Texture Maps

✫ Texture map has its own co ordinate system;

st-co ordinate system.

✫ Surface has its own co ordinate system;

uv -co ordinates.

✫ Pixels are referenced in the window co ordinate

system Cartesian co ordinates.

Texture Object Space Image Space

(s,t) (u,v) (x,y)

CPS124, 296: Computer Graphics Surface Details Page 3

Texture Maps

v

u

y xs t

s x ys

z

y xs t

s x ys

z

CPS124, 296: Computer Graphics Surface Details Page 4

Texture Mapping

CPS124, 296: Computer Graphics Surface Details Page 5

Texture Mapping

Forward mapping: Texture scanning

✫ Map texture pattern to the ob ject space.

u = f s; t = a s + b t + c;

u u u

v = f s; t = a s + b t + c:

v v v

✫ Map ob ject space to window co ordinate sys-

tem.

Use mo delview/pro jection transformations.

Drawback: Selected texture patch usual do es not

match with b oundaries.

✫ Requires fractional pixel calculations.

CPS124, 296: Computer Graphics Surface Details Page 6

Inverse Mapping

y xs t -1 -1 M M PV T

s x ys

z

✫ Map screen co ordinate system to ob ject space.

✫ Map ob ject co ordinate system to texture space.

✫ Avoids fractional pixel calculations.

✫ Allows anti-aliasing.

✫ Requires calculating inverse transformations;

1 1

M ;M .

PV T

1

 M can be computed from pro jection and

PV

mo delview matrices gluUnproject

1

 Computing M is not easy.

T

CPS124, 296: Computer Graphics Surface Details Page 7

Parametric Representation

Curves: Co ordinates are represented as functions

of one parameter.

t = xt;yt; t 2 [a; b]

Line: ` : a + b t; a + b t, t 2 R

1 1 2 2

Surfaces: Co ordinates of each p oint is represented

as a function of u and v .

S u; v  = xu; v ;yu; v ;zu; v .

:

S u; v  = r cos u cos v; r cos u sin v; r sin u

=2  u  =2; 0  v  2.

✫Cylinder:

S u; v  = r cos u; r sin u; v 

0  u  2; 0  v  h.

CPS124, 296: Computer Graphics Surface Details Page 8

Inverse Mapping: An Example

y t

(u,v)

s x

z

u = ; v = y 0   =2; 0  y  1

x = sin ; z = cos ; y = v:

1

1

M : u = sin x; v = y:

PV

Map texture origin to left b ottom corner of the

surface

u = s =2; v = t:

1

Pro jected pixels are mapp ed to texture with M :

T

2u

1

M : s = t = v:

T



2

1

s = sin x t = z:



CPS124, 296: Computer Graphics Surface Details Page 9

Object to Texture Mapping

1

How do es one de ne a reasonable M ?

T

& Sloan, 1986: Two-step pro cess:

Bier

S -mapping: Mapping from a 2D texture space to

a simple 3D surface, e.g., cylinder.

0

T u; v  ! T x ;y ;z :

i i i

O-mapping: Mapping from the 3D texture pat-

tern onto the ob ject surface.

0

T x ;y ;z  ! Ox ;y ;z :

i i i w w w

CPS124, 296: Computer Graphics Surface Details Page 10

Two-Step Inverse Mapping

Inverse mapping: Apply them in the reverse or- der!

-1

S -1 O M-1

CPS124, 296: Computer Graphics Surface Details Page 11

S -Mapping

Four p ossible surfaces: , cylinder, sphere, box.

Cylinder:  ; z 

 

1 r

 ; z z  S :  ; z  !

0 0

c d

✫c; d: Scaling factors.

✫ Texture origin is mapp ed to the p oint  ;z 

0 0

on the cylinder.

Sphere:  ; ', stereographic pro jection.

θ (α,β)

φ (θ,φ)



2

S :  ; ' ! ;

2 2 1=2

1 + 1 + + 



2

2 2 1=2

1 + 1 + + 

= tan ' cos , = tan ' sin .

CPS124, 296: Computer Graphics Surface Details Page 12

S -Mapping

t

s

t

Back

Left Bottom Right Top

s Front

CPS124, 296: Computer Graphics Surface Details Page 13

O -Mapping

P' P' P P (ii) (i)

P' P' P P

(iii) C (iv)

✫ : Intermediate surface

0

✫ P : Intersection of with a ray  emanating

from P .

✫ Direction of :

i Re ection direction

ii Normal of O at P

iii CP ; C: centroid of O

0

iv : Normal of at P

✫ ii, iii are bad if is cylinder.

CPS124, 296: Computer Graphics Surface Details Page 14

3D Textures

Intro duced by Peachey and Perlin in 1985.

✫ De ne texture to be a 3D image.

 Carving out an ob ject from a 3D solid ma-

terial.

✫ Ignoring scaling, M is identity.

T

✫ Distortion is minimized.

✫ Three dimensional vector elds can be mapp ed

coherently.

✫ Texture is generated by a pro cedure.

✫ Example: Wood grain can be mapp ed as a set

of cylinders with resp ect to a presp eci ed axis.

CPS124, 296: Computer Graphics Surface Details Page 15

3D Textures

Basic texture 3D noise

textured object

3D texture

Textures object

Object

CPS124, 296: Computer Graphics Surface Details Page 16

Anti-aliasing & Texture Mapping

Aliasing is particularly visible in p erio dic and co-

herent textures. With Without

Antialiasing Antialiasing

CPS124, 296: Computer Graphics Surface Details Page 17

Anti-aliasing & Texture Mapping

✫ A pixel is mapp ed to a curvilinear quadrilat-

eral.

✫ A single pixel may cover many texels.

✫ Compute a weighted sum of texel values cov-

ered by the pixel.

✫ Summation is called ltering.

Two-step pro cess:

✫ De ne and approximate the texture over which

ltering is p erformed.

✫ Integrate by weighing and summing the texel

values within the ltering area.

CPS124, 296: Computer Graphics Surface Details Page 18

Anti-aliasing: Weight Functions

Blinn & Newell, 1976: Pyramid weight function

Preimage of Approximation Preimage of the

pixel center

Greene & Heckb ert, 1986: Elliptical weighted av-

erage

✫ Approximate a pixel by circle.

✫ Circle always maps to an ellipse in the texture

space.

✫ Find the texels that lie inside the ellipse.

✫ Use a lo ok-up to determine the weighted

value of each texel.

       



CPS124, 296: Computer Graphics Surface Details Page 19

Anti-aliasing & Texture Mapping

Mip-mapping: multum in parvo

Williams, 1983

✫ Store many texture images.

✫ i-th image is obtained by scaling down the pre-

vious image by half along each axis.

✫ E ectively a 3D database.

✫ Given a pixel, search in the image with an ap-

propriate resolution.                                      



CPS124, 296: Computer Graphics Surface Details Page 20

Texture Mapping in Op enGL

Geometric Vertices Rasterization Display processing

Pixel Pixels

operations

✫ Relies on the pip eline architecture

✫ Texture mapping is done at the rasterization

stage.

glTexImage2D GL TEXTURE 2D, level, comp, w, h,

b order, format, typ e, tarray

GLubyte my texel[512][512];

glTexImage2D GL TEXTURE 2D, 0, 3, 512, 512, 0

GL RGB, GLuint, tarray;

glEnableGL TEXTURE 2D;

✫ level: Multiple levels of texture maps; 0 for one

level.

✫ comp: integer between 1 and 4; sp eci es how

many of R, G, B, and A comp onents sp eci ed.

✫ format: Format of the texture map.

CPS124, 296: Computer Graphics Surface Details Page 21

Texture Mapping in Op enGL

glTexCoord2f s, t

Assigns the two dimensional texture co ordinates to

a vertex.

a (b) (a)

glBeginGL QUAD;

glTexCoord2f 0.0, 0.0;

glVertex3f x1, y1, z1;

glTexCoord2f 1.0, 0.0;

glVertex3f x2, y2, z2;

glTexCoord2f 1.0, 1.0;

glVertex3f x3, y3, z3;

glTexCoord2f 0.0, 1.0;

glVertex3f x4, y4, z4;

glEnd

CPS124, 296: Computer Graphics Surface Details Page 22 23 age P ails Det ce a Op enGL Surf in Graphics Mapping

name; target, glBindTexture *names; n, glGenTextures Computer exture

bjects ob ✫exture T T 296:

GL  glTexParameteri

pattern texture the eating ✫ Rep GL  glTexParameteri CPS124,

GL Use TEXTURE WRAP  T GL , S REPEA

TEXTURE WRAP  GL , S CLAMP

TEXTURE ordinates WRAP -co t for T

GL  glTexParameterf

texel nearest the to color pixel a ✫ Assign GL

GL  glTexParameterf , 2D TEXTURE

TEXTURE G GL , MA TER FIL  NEAREST GL

, 2D TEXTURE

TEXTURE GL , MIN TER FIL  NEAREST

erage. v a 2  2 a using color the olates terp In : ✫ GL LINEAR

Bump Mapping

Perturb normals in the illumination mo del calcu-

lations.

✫ S u; v : Parameterized surface

✫ S = @Su; v =@ u, S = @Su; v =@ v .

u v

✫ N u; v  = S  S ; n = N=jN j

u v

✫bu; v : Bump function

0 0 0

S u; v  = S u; v  + bu; v   n N u; v  = S  S

v

u

@

0

S = Su; v  + bu; v   n

u

@u

= S + b  n + bn

u u u

 S + b  n

u u

0

S  S + b  n

v v

v

0

N  S  S + b S  n + b n  S  +

u v u u v v

b b n  n

u v

= S  S + b S  n + b n  S 

u v u u v v

CPS124, 296: Computer Graphics Surface Details Page 24

Bump Mapping

S(u)

b(u)

S'(u)

N'(u)

CPS124, 296: Computer Graphics Surface Details Page 25

Bump Mapping

✫ De ne bump functions analytically.

✫ Use lo ok-up tables for bump functions.

✫ Approximate b ;b with nite di erences.

u v

✫ Random pattern vs regular patterns.

Displacement Mapping:

✫ Perturb normals as well as lo cal co ordinate sys-

tem

✫ Used to render anisotropic ob jects.

CPS124, 296: Computer Graphics Surface Details Page 26

Environment Mapping

✫ Re ects the surrounding environment on the

surface of shiny ob jects.

✫ Similar to texture mapping.

✫ Pattern dep ends on the viewp oint.

✫ Store environment maps as 2D images.

CPS124, 296: Computer Graphics Surface Details Page 27