Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written...

25
1 Computer Graphics 15-462 Announcements Written Assignment 2 is due 3/8

Transcript of Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written...

Page 1: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

1Computer Graphics 15-462

Announcements

Written Assignment 2 is due 3/8

Page 2: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

2Computer Graphics 15-462

Advanced Texturing

Bump MappingDisplacement MappingEnvironment MappingProcedural Textures

Bump MappingDisplacement MappingEnvironment MappingProcedural Textures

COMPUTER GRAPHICS15-462

03/06/07

Shirley Chapter 11

Page 3: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

3Computer Graphics 15-462

Uses for Texture Mapping (Heckbert 1986)

Use texture to affect a variety of parameters• surface color - color (radiance) of each point on surface

(Catmull 1974)• surface reflectance - reflectance coefficients kd, ks, or nshiny

• normal vector - bump mapping (Blinn 1978)• geometry - displacement mapping• transparency - transparency mapping (clouds) (Gardener 1985)• light source radiance - environment mapping (Blinn 1978)

Page 4: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

4Computer Graphics 15-462

Fine Surface Detail

http://www.siggraph.org/education/materials/HyperGraph/mapping/bumpmap.htm

How can we model this level of detail?

Page 5: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

5Computer Graphics 15-462

Bump Mapping• Basic texture mapping paints on to a smooth surface• How do you make a surface look rough?

– Option 1: model the surface with many small polygons– Option 2: perturb the normal vectors before the shading calculation

Real Bump Fake Bump Flat Plane

+ =

Sphere w/Diffuse Texture Map Bump Map Sphere w/Diffuse Texture + Bump Map

Page 6: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

6Computer Graphics 15-462

Why Does this Work?

• Which spots bulge out, and which are indented?

• The human visual system is hard-coded to expect light to come from above (the sun)

Page 7: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

7Computer Graphics 15-462

Implementing Bump Mapping• At each point, displace the normal by some amount to change lighting• Displacements stored in bump-map (texture image)

blackboard

[Demo]

Page 8: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

8Computer Graphics 15-462

Bump Mapping is a Hack

Greg Turk

• What anomalies do you see in the image below?

Page 9: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

9Computer Graphics 15-462

Displacement Mapping

• Use texture map to displace each point on the surface– Texture value gives amount to move in direction normal to surface

• How is this better/worse than bump mapping?

[Demo]

Page 10: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

10Computer Graphics 15-462

Environment Mapping

• Very shiny objects show reflections of their surroundings – To do this properly, we use ray tracing to calculate multiple bounces– That’s a lot of computation: how can we fake it?

– Use a pre-rendered environment– (Won’t support inter-object reflections)

Page 11: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

11Computer Graphics 15-462

Environment Mapping (Spherical)

• Imagine that object is surrounded by an infinitely large sphere

– Calculate reflection vector, project on to sphere– Need a seamless texture for the sphere

blackboardJerome Dewhurst

Page 12: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

12Computer Graphics 15-462

Environment Mapping (Cube Map)

• Same idea as spherical map, but with 6 textures forming a cube

• OpenGL supports both methods of environment mapping:– glEnable(GL_TEXTURE_CUBE_MAP_EXT);– glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T);

• What are the advantages/disadvantages of each method?

[Demo]

Page 13: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

13Computer Graphics 15-462

Color Mapping

• Mapping from R->R3, specifically from (0,1)->(0,1)3

• Allows us to convert scalar-valued functions to colors• Option 1: Color table

– Abrupt transitions, but dead simple to implement

• Option 2: Color spline

– Linear/cubic/C-R/Hermite interpolation between colors– Can create both sharp transitions and smooth gradients

0-0.2 0.2-0.4 0.4-0.6 0.6-0.8 0.8-1.0

Page 14: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

14Computer Graphics 15-462

Procedural Textures

• What if we want to generate textures procedurally?– To save space– To get effects not possible with photographic textures (solid texture)– To animate textures– To get the correct texture scale

• Basic procedural textures are regular, boring– Built with periodic functions like sin(), cos()

• Need to add “interestingness” to textures– Disturb the regularity of basic textures

Page 15: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

15Computer Graphics 15-462

Perlin Noise

• Random perturbation function with the following characteristics:

– Repeatable function of <x,y,z> input– Known range [-1,1]– Band-limited (coherent)– No obvious periodicity– Stationary– Isotropic

Perlin NoiseWhite Noise

Page 16: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

16Computer Graphics 15-462

Perlin Noise Algorithm

• Perlin Noise is also known as gradient noise– Gradient value at each integer point in the 3-space lattice– Gradient determined by repeatable hash of floor(x),floor(y),floor(z)– Take dot product of each gradient with distance to lattice point– Weighted average using ease function: 6t5-15t4+10t3

blackboardhttp://mrl.nyu.edu/~perlin/noise/

Page 17: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

17Computer Graphics 15-462

Turbulence

• Noise has a range of [-1,1], must convert to [0,1]• Can scale noise using 0.5(noise+1)• abs(noise) creates dark veins at zero crossings

Page 18: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

18Computer Graphics 15-462

Octaves of Noise

• Feature size of basic Perlin noise is relatively uniform• Sum multiple calls to noise(), scaling input• Typically, we scale the input by 2i

• Number of iterations = number of octaves

1-8 Octaves of Turbulence

Page 19: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

19Computer Graphics 15-462

Using Noise

• Clouds: noise(point+offset)*intensity• Fire: abs(noise3(point)+offset)• Marble: sin(offset + turbulence(point))• Wood: noise(point)*scale - int(noise(point)*scale)• Animated texture: add time-varying offset vector to point

[Demo]

Page 20: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

20Computer Graphics 15-462

Reaction Diffusion (Witkin & Kass 91)

• Originally developed by Alan Turing as a way to model morphogenesis

• Two (or more) morphogens whose concentration varies over a 2D grid

• Concentration affected by:– Decay of morphogens– Movement of morphogen from areas of high concentration to low

(diffusion)– Interactions between morphogens which create and destroy them

(reaction)

blackboard

Page 21: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

21Computer Graphics 15-462

Reaction Diffusion: R Functions

• Difference in concentrations: giraffe markings• Max of differences (3+ morphogens): maze-like• Difference of abs (3+ morphogens): woven twigs

[Video]

Page 22: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

22Computer Graphics 15-462

Reaction Diffusion

• Varying anisotropy by curvature or location allows for more complicated effects

– Zebra’s stripes wrap correctly– Girrafe’s pattern is larger on smooth areas

Turk

Page 23: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

23Computer Graphics 15-462

Cellular Textures (Worley)

• Based on the idea that there are “feature points” in 3-space, and we care about the distance to the nth closest feature

• Fi(x,y) is the distance to the ith closest randomly distributed feature

F1 F2 F3

Page 24: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

24Computer Graphics 15-462

Cellular Texture Variations

• Cellular texture algorithm very “hackable”• Change distribution of feature points• Fractal sum of multiple octaves (water/tin foil)• Linear/nonlinear combinations of Fis• Unique ID number per feature point (flagstones)• Different distance metrics (Manhattan, super-quadratic)

F2 - F1 Manhattan Distance

Page 25: Written Assignment 2 is due 3/8 - Carnegie Mellon School ...jkh/462_s07/16_texturing.pdf · Written Assignment 2 is due 3/8. Computer Graphics 15-462 2 ... • The human visual system

25Computer Graphics 15-462

Announcements

Written Assignment 2 is due 3/8