0% found this document useful (0 votes)
38 views52 pages

Chapter 6

Uploaded by

q riaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views52 pages

Chapter 6

Uploaded by

q riaz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 52

Chapter 6

Shading

1
Objectives
 Learn to shade objects so their images appe
ar three-dimensional
 Introduce the types of light-material interac
tions
 Build a simple reflection model---the Phon
g model--- that can be used with real time g
raphics hardware

2
Why we need shading
 Suppose we build a model of a sphere usin
g many polygons and color it with glColo
r. We get something like

 But we want

3
Shading
 Why does the image of a real sphere look like

 Light-material interactions cause each point to have


a different color or shade
 Need to consider
 Light sources
 Material properties
 Location of viewer
 Surface orientation
4
Scattering
 Light strikes A
 Some scattered
 Some absorbed
 Some of scattered light strikes B
 Some scattered
 Some absorbed
 Some of this scatterd
light strikes A
and so on
5
Rendering Equation
 The infinite scattering and absorption of
light can be described by the rendering
equation
 Cannot be solved in general
 Ray tracing is a special case for perfectly
reflecting surfaces
 Rendering equation is global and includes
 Shadows
 Multiple scattering from object to object

6
Global Effects
shadow

multiple reflection
translucent surface

7
Local versus Global Rendering
 Correct shading requires a global calculation
involving all objects and light sources
 Incompatible with pipeline model which shades
each polygon independently (local rendering)
 However, in computer graphics, especially
real time graphics, we are happy if things
“look right”
 Exist many techniques for approximating global
effects

8
Computer Viewing

9
Light-Material Interaction
 Light that strikes an object is partially absorbed
and partially scattered (reflected)
 The amount reflected determines the color and
brightness of the object
 A surface appears red under white light because the
red component of the light is reflected and the rest is
absorbed
 The reflected light is scattered in a manner that
depends on the smoothness and orientation of the
surface
10
Surface Types
 The smoother a surface, the more reflected
light is concentrated in the direction a
perfect mirror would reflected the light
 A very rough surface scatters light in all
directions

specular diffuse translucent

11
Light Sources
 Each point on the light source:
I(x, y, z, , , )
 General light sources are difficult to work
with because we must integrate light
coming from all points on the source

12
Color Sources
 Consider a light source through a three-
component intensity or luminance function

 Ir 

I  Ig 
 
 I b 

13
Simple Light Sources – 1/3
 Ambient light
 Same amount of light everywhere in scene
 Can model contribution of many sources and
reflecting surfaces

 I ar 

I a  I ag 
 
 I ab 

14
Simple Light Sources – 2/3
 Point source
 Model with position and color
 Distant source = infinite distance away (parallel)
 Replacing a point by a direction vector

umbra

penumbra
15
Simple Light Sources – 3/3
 Spotlight
 Restrict light from ideal point source


  
 

I  cose 
16
Phong Model
 A simple model that can be computed rapidly
 Has three components
 Diffuse
 Specular
 Ambient
 Uses four vectors
 To source
 To viewer
 Normal
 Perfect reflector

17
Light Sources
 In the Phong Model, we add the results fro
m each light source
 Each light source has separate diffuse, spec
ular, and ambient terms to allow for maxim
um flexibility even though this form does n
ot have a physical justification
 Separate red, green and blue components
 Hence, 9 coefficients for each point source
 Idr, Idg, Idb, Isr, Isg, Isb, Iar, Iag, Iab
18
Material Properties
 Material properties match light source prop
erties
 Nine absorbtion coefficients
 kdr, kdg, kdb, ksr, ksg, ksb, kar, kag, kab

 Shininess coefficient 

19
Ambient Reflection
 Ambient light is the result of multiple inter
actions between (large) light sources and th
e objects in the environment
 Amount and color depend on both the color
of the light(s) and the material properties of
the object
 Add ka Ia to diffuse and specular terms

reflection coef intensity of ambient light


20
Diffuse Reflection – 1/2
 Perfectly diffuse reflector
(Lambertian Surface)
 Light scattered equally in all directions

Rough Surface
21
Diffuse Reflection – 2/2
 Amount of light reflected is proportional to the v
ertical component of incoming light
 reflected light ~cos i
 cos i = l · n if vectors normalized
 There are also three coefficients, kr, kb, kg that show
how much of each color component is reflected

22
Specular Surfaces
 Most surfaces are neither ideal diffusers nor perfe
ctly specular (ideal refectors)
 Smooth surfaces show specular highlights due to
incoming light being reflected in directions conce
ntrated close to the direction of a perfect reflectio
n

specular
highlight

23
Modeling Specular Reflections
 Phong proposed using a term that dropped
off as the angle between the viewer and the
ideal reflection increased

Ir ~ ks I cos


reflected shininess coef
intensity incoming intensity
absorption coef
24
The Shininess Coefficients
 Values of  between 100 and 200 correspond to
metals
 Values between 5 and 10 give surface that look
like plastic

cos 

-90  90
25
Distance Terms
 The light from a point source that reaches a surfac
e is inversely proportional to the square of the dis
tance between them
 We can add a factor of the

form 1/(ad + bd +cd2) to


the diffuse and specular
terms
 The constant and linear terms soften the effect of
the point source
26
Examples
Only differences in
these teapots are
the parameters
in the Phong model

27
Computation of Vectors
 Normal vectors
 Reflection vector

28
Normal for Triangle

n
plane n ·(p - p0 ) = 0 p2

p
p1
normalize n  n/ |n| p0

Note that right-hand rule determines outward face

29
Normal for Sphere

Tangent plane to a sphere

30
Ideal Reflector
 Normal is determined by local orientation
 Angle of incidence = angle of relection
 The three vectors must be coplanar

r = 2 (l · n ) n - l

31
Halfway Vector


x

l v    x  
h
|l v|
    x  2  
32
Transmitted Light
Snell’s Law:
sin  l nt l

sin  t nl
l 2
cos t  1  ( ) (1  cos  t )
2 2

t
1  nl  t
t   l   cos t  cos l n
n  nt 

33
Critical Angle

34
Polygonal Shading
 Shading calculations are done for each vert
ex
 Vertex colors become vertex shades
 By default, vertex colors are interpolated a
cross the polygon
 glShadeModel(GL_SMOOTH);
 If we use glShadeModel(GL_FLAT); the
color at the first vertex will determine the c
olor of the whole polygon
35
Flat Shading
 Polygons have a single normal
 Shades at the vertices as computed by the Phon
g model can be almost same
 Identical for a distant viewer (default) or if ther
e is no specular component
 Consider model of sphere
 Want different normals at
each vertex even though
this concept is not quite
correct mathematically
36
Smooth Shading
 We can set a new
normal at each vertex
 Easy for sphere model
 If centered at origin n = p
 Now smooth shading
works
 Note silhouette edge

37
Mesh Shading – 1/2
 The previous example is not general becau
se we knew the normal at each vertex analy
tically
 For polygonal models, Gouraud proposed
we use the average of normals around a me
sh vertex
n1  n 2  n 3  n 4
n
| n1  n 2  n 3  n 4 |

38
Mesh Shading – 2/2

39
Gouraud and Phong Shading
 Gouraud Shading
 Find average normal at each vertex (vertex normals)
 Apply Phong model at each vertex
 Interpolate vertex shades across each polygon
 Phong shading
 Find vertex normals
 Interpolate vertex normals across edges
 Find normals along edges
 Interpolate edge normals across polygons
 Find shade from its normal for each point in the poly
gon
40
Phong Shading

41
Comparison
 If the polygon mesh approximates surfaces with a
high curvatures, Phong shading may look smooth
while Gouraud shading may show edges
 Phong shading requires much more work than Go
uraud shading
 Usually not available in real time systems
 Both need data structures to represent meshes so
we can obtain vertex normals

42
Approximation of a Sphere by
Recursive Subdivision
 Start with a tetrahedron whose four vertices
are on a unit sphere:
(0, 0, 1), (0, 2 2 / 3, - 1/3), (- 6 /3, - 2 /3, - 1/3), ( 6 /3, - 2 /3, - 1/3)

y
z
3
x
x 4 2
3 x

3
x
6 43
Recursive Subdivision – 1/3
void triangle(point3 a, point3 b, point3 c)
{
glBegin(GL_LINE_LOOP);
glVertex3fv(a);
glVertex3fv(b); 0
glVertex3fv(c);
glEnd();
} 3
Void tetrahedron()
{
triangle(v[0], v[1], v[2]);
triangle(v[3], v[2], v[1]);
1 2
triangle(v[0], v[3], v[1]);
triangle(v[0], v[2], v[3]);
}
44
Recursive Subdivision – 2/3
Bisecting angles Computing the centrum Bisecting sides

void normal(point3 p)
{
double d=0.0; Normalization
int i;
for(i=0; i<3; i++) d+=p[i]*p[i];
d=sqrt(d);
if(d>0.0) for (i=0; i<3; i++) p[i]/=d;
} 45
Recursive Subdivision – 3/3
void divide_triangle(point3 a, point3 b, point3 c, int n)
{ a
point3 v1, v2, v3;
int j;
if(n>0) { v1 v2
for(j=0; j<3; j++) v1[j]=a[j]+b[j];
normal(v1);
for(j=0; j<3; j++) v2[j]=a[j]+c[j];
normal(v2); b v3 c
for(j=0; j<3; j++) v3[j]=c[j]+b[j];
normal(v3);
divide_triangle(a, v1, v2, n-1);
divide_triangle(c, v2, v3, n-1);
divide_triangle(b, v3, v1, n-1);
divide_triangle(v1, v3, v2, n-1);
}
else
triangle(a, b, c);
}

46
Front and Back Faces
 The default is shade only front faces which works
correct for convex objects
 If we set two sided lighting, OpenGL will shaded
both sides of a surface
 Each side can have its own properties which are s
et by using GL_FRONT, GL_BACK, or GL_FRONT_
AND_BACK in glMaterialf

back faces not visible back faces visible


47
Moving Light Sources
 Light sources are geometric objects whose
positions or directions are affected by the model-
view matrix
 Depending on where we place the position
(direction) setting function, we can
 Move the light source(s) with the object(s)
 Fix the object(s) and move the light source(s)
 Fix the light source(s) and move the object(s)
 Move the light source(s) and object(s) independently

48
Transparency
 Material properties are specified as RGBA
values
 The A value can be used to make the
surface translucent
 The default is that all surfaces are opaque
regardless of A
 Later we will enable blending and use this
feature
49
Polygon Normals
 Polygons have a single normal
 Shades at the vertices as computed by the Phon
g model can be almost the same
 Identical for a distant viewer (default) or if ther
e is no specular component
 Consider model of sphere
 Want different normals at
each vertex even though
this concept is not quite
correct mathematically

50
Global Rendering

 Ray Tracing and Radiosity


 Use the original pipeline
to simulate some global
effect

51
Summary and Notes
 Why do we need shading?
 What does shading do?
 Ambient, diffuse, specular terms
 Local shading versus global shading

52

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy