Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS4395: Computer Graphics 1 Bump Mapping Mohan Sridharan Based on slides created by Edward Angel.

Similar presentations


Presentation on theme: "CS4395: Computer Graphics 1 Bump Mapping Mohan Sridharan Based on slides created by Edward Angel."— Presentation transcript:

1 CS4395: Computer Graphics 1 Bump Mapping Mohan Sridharan Based on slides created by Edward Angel

2 Introduction Mapping methods: – Texture mapping. – Environmental (reflection) mapping: Variant of texture mapping. – Bump mapping: Solves flatness problem of texture mapping. CS4395: Computer Graphics 2

3 Examples CS4395: Computer Graphics 3

4 Modeling an Orange Consider modeling an orange. Texture map a photo of an orange onto a surface: – Captures dimples. – Will not be correct if we move viewer or light. – We have shades of dimples rather than their correct orientation. We need to perturb normal across surface of object and compute a new color at each interior point. CS4395: Computer Graphics 4

5 Bump Mapping (Blinn) Consider a smooth surface: CS4395: Computer Graphics 5 n p

6 Rougher Version CS4395: Computer Graphics 6 n’n’ p p’

7 Equations CS4395: Computer Graphics 7 p u =[ ∂x/ ∂u, ∂y/ ∂u, ∂z/ ∂u] T p(u,v) = [x(u,v), y(u,v), z(u,v)] T p v =[ ∂x/ ∂v, ∂y/ ∂v, ∂z/ ∂v] T n = (p u  p v ) / | p u  p v |

8 Tangent Plane CS4395: Computer Graphics 8 pupu pvpv n

9 Displacement Function CS4395: Computer Graphics 9 p’ = p + d(u,v) n d(u,v) is the bump or displacement function. |d(u,v)| << 1

10 Perturbed Normal CS4395: Computer Graphics 10 n’ = p’ u  p’ v p’ u = p u + (∂d/∂u)n + d(u,v)n u p’ v = p v + (∂d/∂v)n + d(u,v)n v If d is small, we can neglect last term.

11 Approximating the Normal CS4395: Computer Graphics 11 n’ = p’ u  p’ v ≈ n + (∂d/∂u)n  p v + (∂d/∂v)n  p u The vectors n  p v and n  p u lie in the tangent plane. Hence the normal is displaced in the tangent plane. Must pre-compute the arrays ∂d/ ∂u and ∂d/ ∂v Finally, we perturb the normal during shading.

12 Image Processing Suppose that we start with a function d(u,v). We can sample it to form an array D=[d ij ]. Then ∂d/ ∂u ≈ d ij – d i-1,j and ∂d/ ∂v ≈ d ij – d i,j-1 Embossing: multi-pass approach using accumulation buffer. CS4395: Computer Graphics 12

13 How to do this? The problem is that we want to apply the perturbation at all points on the surface. Cannot solve by vertex lighting (unless polygons are very small). Really want to apply to every fragment. Can not do that in fixed function pipeline. But can do with a fragment program – later CS4395: Computer Graphics 13


Download ppt "CS4395: Computer Graphics 1 Bump Mapping Mohan Sridharan Based on slides created by Edward Angel."

Similar presentations


Ads by Google