# CS488 - Introduction to Computer Graphics - Lecture 32

## Review

1. Fresnel reflection
2. Subsurface scattering
3. Final proposal on Friday

### (Un)natural Phenomena at Surfaces

#### Reflectance Functions

Reflectance functions as an example of partitioned rendering

#### Human skin

• skin structure
• keratin, melanin, blood in different proportions
• place to place on the body
• person to person
• time to time
• We could let the rays go through the skin and interact with the pigments,

or we could summarize everything in a parametrized reflectance function

• R(x, \lambda) = R(k(x), m(x), b(x), \lambda)
• How do we calculate? Kubelka-Munk model:
• From the 1930s
• Assume pigment particles are distributed in thin layers
• Do Fresnel refraction at layer interfaces
• Conserve energy at boundaries
• Let layer thickness go to zero
1. Humans are very sensitive to skin colour
2. Two orders of calculation (Spectral distribution for colour, spectral distribution for light, RGB for monitor)
• Light using spectral distribution, then reduce to RGB
• Reduce to RGB, then light
3. Reduce to RGB is a many-to-one transformation: information is lost
• Two calculations don't commute, are not the same
4. Problem is metamerism', which is
• Surfaces that match in colour under one illuminant don't necessarily match in colour under another.
• Clothes, fillings in teeth
• Cars under sodium vapour light
• Obviously the second strategy is better,
• but only if it works
• Select a model, work out a reflectance function, check that it agrees with reality

Note two different definitions of agrees with reality'.

#### Recently cut grass

• What does grass look like?
1. Mowing, with the cutting mower, lines up the blades
• Absorbed light is green and goes all directions

• Reflected light goes mostly in one direction
3. Draw the BRDF
• Calculate the BRDF
• or measure the BRDF
• or schematically estimate the BRDF
• Parametrize the BRDF
• if it's possible