Title: CSC 830 Computer Graphics Lecture 5 Shading
1CSC 830 Computer GraphicsLecture 5Shading
Course Note Credit Some of slides are extracted
from the course notes of prof. Mathieu Desburn
(USC) and prof. Han-Wei Shen (Ohio State
University).
2Shading
Determining the light traveling from a point in
the scene to the viewers eye
Images courtesy of Watt, Watt Watt, and Foley
van Dam
3Shading
Light comes from many sources
reflection
scattering
absorption
transmission
emission
4Local versus Global Illumination
- Global Illumination
- Considers indirect illumination
- Reflection
- Refraction
- Shadows
- Local Illumination
- Only considers direct illumination
- No reflection
- No refraction
- Shadows possible
5Local versus Global Illumination
Direct Illumination
Indirect Illumination
We will do local only for this lecture
6Local illumination
- Only consider the light, the observer position,
and the object material properties
7Local versus Global Illumination
Images courtesy of Francois Sillion
To understand shading properly, we need to
review some basic notions of physics
8Basic Illumination Model
- Simple and fast method for calculating surface
intensity at a given point - Lighting calculation are based on
- The background lighting conditions
- The light source specification color, position
- Optical properties of surfaces
- Glossy OR matte
- Opaque OR transparent (control refection and
absorption)
9Radiance
Radiance Power per unit projected area
perpendicular to the ray, per unit solid
angle in the direction of the ray
Think of it as a flux of photons leaving the
surface
10Irradiance
Irradiance Radiant energy per unit area
Think of it as a flux of photons bombarding the
surface
11BRDF
Bidirectional Reflection Distribution Function
Determines the fraction of light from an incoming
direction reflected to an outgoing direction
Relates reflected radiance to incoming
irradiance
Image courtesy of Watt, 3D Computer Graphics
12Properties of the BRDF
Reciprocity Anisotropy
13Reflectance Equation
BRDF allows us to calculate outgoing light, given
incoming light
Image courtesy of Watt, 3D Computer Graphics
14Splitting the BRDF
In practice, BRDF can be really funkyTo
simplify, we divide the BRDF into 3 components
15Ideal Specular Reflection
Reflection is only in the mirror direction
16Ideal Diffuse Reflection
Reflection is equal in all directions
17Directional Diffuse Reflection
Reflection is concentrated around the mirror
direction
18Ambient Light
If a surface is visible from the eye, but not a
light, it will be rendered black (if indirect
light is not considered).
- Ambient light is an approximation to indirect
light - Difficult to compute
- Approximate this as a constant
- Or a light source at the eye
19Phong Reflection
Assume point lights and direct illumination only
20Diffuse Light
- The illumination that a surface receives from a
light source and reflects equally in all
directions - This type of reflection is called Lambertian
Reflection (thus, Lambertian surfaces) - The brightness of the surface is indepenent of
the observer position (since the light is
reflected in all direction equally)
21Lamberts Law
- How much light the surface receives from a light
source depends on the angle between its angle and
the vector from the surface point to the light
(light vector) - Lamberts law the radiant energy Id from a
small surface da for a given light source is - Id IL cos(q)
- IL the intensity of the light source
- is the angle between the surface
- normal (N) and light vector (L)
22Phong Diffuse Component
Diffuse component depends only on incident angle.
N.B L and N are unit
Image courtesy of Watt, 3D Computer Graphics
23Examples
Sphere diffusely lighted from various angles !
24Specular Light
- These are the bright spots on objects (such as
polished metal, apple ...) - Light reflected from the surface unequally to all
directions. - The result of near total reflection of the
incident light in a concentrated region around
the specular reflection angle
25Specular Highlights
- Shiny surfaces change appearance when viewpoint
is changed - Specularities are caused by microscopically
smooth surfaces. - A mirror is a perfect specular reflector
26Phong Specular Component
Phong combines directional diffuse ideal
specular
Image courtesy of Watt, 3D Computer Graphics
27Half Vector
- An alternative way of computing phong lighting
is Is ks Is (NH)n - H (halfway vector) halfway between V and L
(VL)/2 - Fuzzier highlight
N
L
H
V
28Phong Illumination
Moving Light
Change n
29Phong Ambient Component
Treat it as a constant
Where is the ambient light in the scene.
30Adding Color
31Adding Lights
32Phong Reflection
Image courtesy of Watt, 3D Computer Graphics
33Aluminium
34Bronze
35Chrome
36Stainless Steel
37OpenGL Materials
GLfloat white8 .8, .8, .8, 1., white2
.2,.2,.2,1.,black0.,0.,0. GLfloat
mat_shininess 50. / Phong
exponent / glMaterialfv( GL_FRON
T_AND_BACK, GL_AMBIENT,
black) glMaterialfv( GL_FRONT_AND_BACK,
GL_DIFFUSE, white8) glMaterialfv( GL_FRON
T_AND_BACK, GL_SPECULAR, white2)
glMaterialfv( GL_FRONT_AND_BACK, GL_SHININESS,
mat_shininess)
38OpenGL Lighting
GLfloat white 1., 1., 1., 1.
GLfloat light0_position 1., 1., 5., 0. /
directional light (w0) /
glLightfv(GL_LIGHT0, GL_POSITION,
light0_position) glLightfv(GL_LIGHT0,
GL_DIFFUSE, white) glLightfv(GL_LIGHT0,
GL_SPECULAR, white) glEnable(GL_LIGHT0)
glEnable(GL_NORMALIZE) / normalize normal
vectors / glLightModeli(GL_LIGHT_MODEL_TWO_SI
DE, GL_TRUE)/ two-sided lighting/
glEnable(GL_LIGHTING)
39Vertex Normals vs. Face Normals
What are the normals to the surface?
Each polygonal face has a normal.
c
N (b - a) x (c - b)
a
b
We call these face normals.
40Flat Shading
Assume a constant color across the polygon
c
a
b
Uses face normals
Equivalent to single point sampling
Polygon mesh is only an approximation. Can we do
better?
41Vertex Normals vs. Face Normals
Should use the actual surfaces normals
Usually stored at the vertices of the object Can
calculate as averages of face normals
42Mach Band ?
43Mach Band ?
44- Shading Models for Polygons
- Constant Shading (flat shading)
- Compute illumination at any one point on the
surface. Use face or one normal from a pair of
edges. Good for far away light and viewer or if
facets approximate surface well. - Per-Pixel Shading
- Compute illumination at every point on the
surface. - Interpolated Shading
- Compute illumination at vertices and interpolate
color
45Interpolation
Given vertex normals, how to color the interior
- Gouraud Interpolation
- Phong Interpolation
46Un-lit
47Flat Shading
48Gouraud Interpolation Interpolated Shading
49Phong Interpolation Per pixel Shading
50Gouraud Interpolation
Calculate the color at each vertex
C(c)
C(a)
C(b)
Interpolate the colors
C(c)
C t C(b) (1 t) C(c)
C(a)
C(b)
51Gouraud Interpolation Problems
Misses some highlights
light
shading will be constant!
Shading is not linear
52Phong Interpolation
Interpolate the normals, then compute the colors
light
Interpolation is usually done component-wise
53- Phong Shading Model
- Gouraud shading does not properly handle
specular highlights, specially when the n
parameter is large (small highlight). - Reason colors are interpolated.
- Solution (Phong Shading Model)
- 1. Compute averaged normal at vertices.
- 2. Interpolate normals along edges and
scan-lines. (component by component) - 3. Compute per-pixel illumination.
54(No Transcript)
55Interpolation
Image courtesy of Watt Watt, Advanced Animation
and Rendering Techniques
56Interpolated Shading - Problems
- Problems at shared vertices shared by right
polygons and not by one on left and hence
discontinuity - Incorrect Vertex normals no variation in shade
57Shade Trees
Phong Shade Tree
ka
ks
pow
Il
Ia
dot
n
kd
dot
Il
N
H
N
L
58Shading Language
A language for implementing shading models
State is passed to/from the shader by global
variables Ci Outgoing ray color Oi Outgoing
ray opacity Cs Surface color Os Surface
opacity P Surface point N - Surface normal I
- Direction of viewing (eye ray) L -
Direction to the light source
N
I
L
59Shading Language
Phong Surface Shader
surface plastic(float Ks .5, float Kd .5,
float Ka 1, float roughness .1, color
specularColor 1) point Nf
faceforward(N,I) Oi Os Ci
Os(Cs(Kaambient()Kddiffuse(Nf)
specularColorKsspecular(Nf,-I,roughness)
60Light Sources
- Point light source
- Directional light source e.g. sun light
- Spot light
61Spot Light
- To restrict a lights effects to a limited area
of the scene - Flap confine the effects of the light to a
designed range in x, y, and z world coordinate - Cone restrict the effects of the light using a
cone with a generating angle d
62Light Source Attenuation
- Takes into account the distance of the light from
the surface - IL I L fatt (d)
- IL the received light after attenuation
- I L the original light strength
- fatt the attenuation factor
- d the distance between the light source and
the surface point - fatt max ( 1/(c1 c2d c3d2) , 1)
- C1, C2, C3 are user defined constants associated
with each light source
63Hints for HW4
- Shading can be done in easily in view space or in
world space where all light, view, surface
normal vectors are described in same coordinate
space. how can you achieve this effect? - For normal transformation, use only 3x3 rotation
matrix out of the 4x4 transformation inverse
transpose of it remember normal transformation
from the lecture 2? - For Phong shading, interpolate normal compute
shading for each pixel. For Gouraud shading,
compute shading at only vertex and interpolate
the color.