Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Microscopy wikipedia , lookup

Nonimaging optics wikipedia , lookup

Polarizer wikipedia , lookup

Diffraction grating wikipedia , lookup

Light wikipedia , lookup

Photon scanning microscopy wikipedia , lookup

Ellipsometry wikipedia , lookup

Magnetic circular dichroism wikipedia , lookup

Thomas Young (scientist) wikipedia , lookup

Optical flat wikipedia , lookup

Ultraviolet–visible spectroscopy wikipedia , lookup

Surface plasmon resonance microscopy wikipedia , lookup

Astronomical spectroscopy wikipedia , lookup

Ray tracing (graphics) wikipedia , lookup

Light pollution wikipedia , lookup

Atmospheric optics wikipedia , lookup

Retroreflector wikipedia , lookup

Anti-reflective coating wikipedia , lookup

Transcript
Specular Reflection
Lecture 27
Mon, Nov 10, 2003
Specular Reflection
The intensity of specular reflected light
varies with direction.
The maximum intensity is in the “ideal”
direction.

Angle of reflection = angle of incidence.
Specular Reflection
Specular reflection creates the
appearance of “shininess.”
Surfaces with a high specular reflection
appear very shiny.
Surfaces with a low specular reflection
appear matte.
Example
LampShader.exe
Blinn and Phong Lighting
OpenGL uses the Blinn lighting model of
specular reflection.
However, we will first study the Phong
lighting model since it seems more
natural.
Phong Lighting
The intensity of the reflection is a
function of the angle between the
viewer and the ideal direction r of
reflection of light from the light source
off the surface.
Phong Lighting
Light
Source
n
s
r
 
P

Ideal
Direction
v
Surface
Eye
Phong Lighting
To compute r, note that r + s equals
twice the projection of s onto n.
r
s
s
n
 
r
Phong Lighting
The projection of s onto n is
(s  n)/(n  n)n = (s  n)n
Therefore,
r + s = 2(s  n)n
and
r = –s + 2(s  n)n
Computing Specular Reflection
According to the Phong lighting model,
the specular reflection is proportional to
the cosine of the angle between v and
r, raised to a power (called “shiny”).
This is calculated as
(r  v)shiny
Computing Specular Reflection
Two other factors are

Intensity of the incident light.
 0  Ls  1.

Specular property of the surface.
 0  ms  1.
The formula for specular reflection is
rs = Lsms(r  v)shiny
Computing Specular Reflection
Of course, if s  n < 0 or if r  v < 0,
then rs = 0.
Why?
Blinn Lighting
A slightly more efficient method is the
Blinn lighting model.
Let h be the halfway vector, the unit
vector halfway between s and v.
Use h  n instead of r  v.
rs = Lsms(h  n)shiny
Blinn Lighting
Light
Source
Halfway
n

s
P
h
v
Surface
Eye
Blinn Lighting
How does h  n compare to s  v?

If s, n, and v are coplanar, then the angle
between h and n is half of the angle
between s and v.
Why is Blinn lighting more efficient?


h is computed as h = (s + v)/|s + v|.
This is more efficient to compute than r.
Emissive Lighting
Emissive lighting is light that emitted by
the surface itself.
It is used for objects that are meant to
glow.
It is independent of all light sources and
directions.
Let me be the intensity of the emissive
light.
Computing the Shade of a
Surface
The total reflection from a point is the
sum of the ambient, diffuse, and
specular reflections and the emissive
light.
sama + Lama + Ldmd(s  n) + Lsms(h  n)shiny + me
Lighting in OpenGL
Since the diffuse and specular
reflections depend on light sources,
there is a separate contribution for each
light source.
OpenGL provides up to 8 light sources.
Furthermore, there is a separate color
component for each type of light.

Red, green, blue.
The Lighting Model
The complete formula for n lights is
I = (sarmar + sagmag + sabmab)
0…n(Larmar + Lagmag + Lagmag)
+ 0…n(Ldrmdr + Ldgmdg + Ldbmdb)(s  n)
+ 0…n(Lsrmsr + Lsgmsg + Lsbmsb)(h  n)shiny
+
+ (mer + meg + meb).
The Lighting Model
For each color, the computed value is
“clamped” to the interval [0, 1].

If the value exceeds 1, then it is set to 1.
Gouraud Shading vs. Phong
Shading
Gouraud shading computes the specular
reflection only at the vertices and then
interpolates.
This guarantees that the brightest
reflection will be at a vertex (or along
an edge).
Gouraud Shading vs. Phong
Shading
Phong shading interpolates (and
normalizes) the normal vectors and
then uses them to compute the
specular reflection at each vertex.
Phong shading is


much more realistic.
much less efficient.
Gouraud Shading vs. Phong
Shading
Gouraud shading.
dim
reflection
dim
interpolated
reflection
dim
reflection
Gouraud Shading vs. Phong
Shading
Phong shading.
dim
reflection
bright
reflection
interpolated vectors
dim
reflection