Illumination, Lighting and Shading Model Pradondet Nilagupta Dept. of Computer Engineering

Download Report

Transcript Illumination, Lighting and Shading Model Pradondet Nilagupta Dept. of Computer Engineering

Illumination, Lighting and Shading
Model
Pradondet Nilagupta
Dept. of Computer Engineering
Kasetsart University
204481 Foundation of Computer Graphics
May 25, 2016
1
Definitions (1/2)

Illumination: the transport of energy (in
particular, the luminous flux of visible light)
from light sources to surfaces & points



Note: includes direct and indirect illumination
Lighting: the process of computing the
luminous intensity (i.e., outgoing light) at a
particular 3-D point, usually on a surface
Shading: the process of assigning colors to
pixels
204481 Foundation of Computer Graphics
May 25, 2016
2
Definitions (2/2)

Illumination models fall into two categories:




Empirical: simple formulations that
approximate observed phenomenon
Physically-based: models based on the actual
physics of light interacting with matter
We mostly use empirical models in
interactive graphics for simplicity
Increasingly, realistic graphics are using
physically-based models
204481 Foundation of Computer Graphics
May 25, 2016
3
Lighting Model


Many different models exist for simulating
lighting reflections
Most models break lighting into constituent
parts



ambient reflections
diffuse reflections
specular highlights
204481 Foundation of Computer Graphics
May 25, 2016
4
Lighting Model Component

Material Properties



Surface Normals
Light Properties


used to describe an objects reflected colors
used to describe a lights color emissions
Light Model Properties

“global” lighting parameters
204481 Foundation of Computer Graphics
May 25, 2016
5
Components of Illumination

Light sources (or
emitters)


Spectrum of
emittance (i.e, color
of the light)
Geometric attributes





Surface properties


Reflectance
spectrum (i.e., color
of the surface)
Geometric attributes

Position
Direction
Shape


Position
Orientation
Micro-structure
Directional
attenuation
204481 Foundation of Computer Graphics
May 25, 2016
6
Ambient Light Sources

Objects not directly lit are
typically still visible



E.g., the ceiling in this room,
undersides of desks
This is the result of
indirect illumination from
emitters, bouncing off
intermediate surfaces
Too expensive to calculate
(in real time)
204481 Foundation of Computer Graphics
Ireflected = kambient Iambient
May 25, 2016
7
Directional Light Sources

all rays of light from the source are parallel



As if the source is infinitely far away
from the surfaces in the scene
A good approximation to sunlight
direction is constant for all surfaces in the
scene
204481 Foundation of Computer Graphics
May 25, 2016
8
Point Light Sources


A point light source emits light equally in all
directions from a single point
The direction to the light from a point on a
surface thus differs for different points:
204481 Foundation of Computer Graphics
May 25, 2016
9
Other Light Sources

Spotlights are point sources whose
intensity falls off directionally.


Supported by OpenGL
Area light sources define a 2-D emissive
surface (usually a disc or polygon)

Good example: fluorescent light panels
204481 Foundation of Computer Graphics
May 25, 2016
10
Reflection



Ambient Reflections
Diffuse Reflection
Specular Reflections
204481 Foundation of Computer Graphics
May 25, 2016
11
Ambient Reflections


Color of an object when not directly
illuminated
Think about walking into a room with the
curtains closed and lights off
I a  g a  li a  ma
i
204481 Foundation of Computer Graphics
May 25, 2016
12
Diffuse Reflections

Color of an object when
directly illuminated


l
often referred to as base
color
The angle between the
surface normal and the
incoming light is the angle
of incidence:
Idiffuse = kd Ilight cos 
204481 Foundation of Computer Graphics
n

In practice we use vector
arithmetic:

Idiffuse = kd Ilight (n • l)
May 25, 2016
13
Specular Reflections




v
Shiny surfaces exhibit
specular reflection


h

l
n̂
Polished metal
Glossy car finish
A light shining on a
specular surface
causes a bright spot
known as a specular
highlight
 
I s   lis  ms nˆ  hˆ
i
hˆ 
204481 Foundation of Computer Graphics
May 25, 2016
s
1
2
lˆ  vˆ
14
Phong Lighting Model


Using surface normal
OpenGL’s lighting model based on Phong’s
I  Ia  Id  Is
204481 Foundation of Computer Graphics
May 25, 2016
15
OpenGL Material Properties





GL_AMBIENT
GL_DIFFUSE
GL_SPECULAR
GL_SHININESS
GL_EMISSION
204481 Foundation of Computer Graphics
May 25, 2016
16
Computing Surface Normals


Lighting needs to know how to reflect light
off the surface
Provide normals per



face - flat shading
vertex - Gouraud shading
pixel - Phong shading

OpenGL does not support Phong natively
204481 Foundation of Computer Graphics
May 25, 2016
17
Face Normals

Same normal for all vertices in a primitive

results in flat shading for primitive
glNormal3f( nx, ny, nz );
glBegin( GL_TRIANGLES );
glVertex3fv( v1 );
glVetrex3fv( v2 );
glVertex3fv( v3 );
glEnd();
204481 Foundation of Computer Graphics
May 25, 2016
18
Computing Face Normals ( Polygons )


We’re using only planar polygons
Can easily compute the normal to a plane

use a cross product

b

a
204481 Foundation of Computer Graphics
xˆ
yˆ
 
a  b  ax a y
bx by
 
a b
nˆ   
a b
May 25, 2016
zˆ
az
bz
19
Computing Face Normals ( Algebraic )

For algebraic surfaces, compute

f
f
f
n ( x, y, z )  x y z
 x, y, z 

n
nˆ  
n


where x
y z 
n
1
n
204481 Foundation of Computer Graphics
 x
i

yi z i 
i
May 25, 2016
20
Vertex Normals

Each vertex has its own normal

primitive is Gouraud shaded based
on computed colors
glBegin( GL_TRIANGLES );
glNormal3fv( n1 );
glVertex3fv( v1 );
glNormal3fv( n2 );
glVetrex3fv( v2 );
glNormal3fv( n3 );
glVertex3fv( v3 );
glEnd();
204481 Foundation of Computer Graphics
May 25, 2016
21
Computing Vertex Normals (Algebraic )

For algebraic surfaces, compute

f
f
f
n ( x, y, z )  x y z
 x, y, z 

n
nˆ  
n

204481 Foundation of Computer Graphics

May 25, 2016
22
Computing Vertex Normals ( Polygons )

Need two things


face normals for all polygons
know which polygons share a vertex
nˆv 
m
 nˆ
i
i
204481 Foundation of Computer Graphics
May 25, 2016
23
Sending Normals to OpenGL
glNormal3f( x, y, z );


Use between glBegin() / glEnd()
Use similar to glColor*()
204481 Foundation of Computer Graphics
May 25, 2016
24
Normals and Scale Transforms

Normals must be normalized


non-unit length skews colors
Scales affect normal length

rotates and translates do not
glEnable( GL_NORMALIZE );
204481 Foundation of Computer Graphics
May 25, 2016
25
Why?

Lighting computations are really done in
eye coordinates


this is why there are the projection and
modelview matrix stacks
Lighting normals transformed by the inverse
transpose of the ModelView matrix
204481 Foundation of Computer Graphics
May 25, 2016
26
Applying Illumination

With polygonal/triangular models:



Each facet has a constant surface normal
If the light is directional, the diffuse reflectance
is constant across the facet
If the eyepoint is infinitely far away (constant
V), the specular reflectance of a directional light
is constant across the facet
204481 Foundation of Computer Graphics
May 25, 2016
27
Flat Shading

The simplest approach, flat shading, calculates
illumination at a single point for each polygon:

If an object really is faceted, is this accurate?
No:



For point sources, the direction to light varies across the
facet
For specular reflectance, direction to eye varies across
the facet
204481 Foundation of Computer Graphics
May 25, 2016
28
Flat Shading


We can refine it a bit by evaluating the Phong
lighting model at each pixel of each polygon, but
the result is still clearly faceted:
To get smoother-looking surfaces
we introduce vertex normals at each
vertex



Usually different from facet normal
Used only for shading (as opposed to what?)
Think of as a better approximation of the real surface
that the polygons approximate (draw it)
204481 Foundation of Computer Graphics
May 25, 2016
29
Vertex Normals

Vertex normals may be



Provided with the model
Computed from first principles
Approximated by averaging the normals of the
facets that share the vertex
204481 Foundation of Computer Graphics
May 25, 2016
30
Gouraud Shading

This is the most common approach




Perform Phong lighting at the vertices
Linearly interpolate the resulting colors over
faces
This is what OpenGL does
Demo at
http://www.cs.virginia.edu/~cs551/vrml/tpot.wrl

Does this eliminate the facets?
204481 Foundation of Computer Graphics
May 25, 2016
31
Phong Shading

Phong shading is not the same as Phong lighting,
though they are sometimes mixed up


Phong lighting: the empirical model we’ve been
discussing to calculate illumination at a point on a
surface
Phong shading: linearly interpolating the surface
normal across the facet, applying the Phong lighting
model at every pixel



Same input as Gouraud shading
Usually very smooth-looking results:
But, considerably more expensive
204481 Foundation of Computer Graphics
May 25, 2016
32
Texture Mapping: Motivation




Scenes created with diffuse lighting look
convincingly three-dimensional, but are flat,
chalky, and “cartoonish”
Phong lighting lets us simulate materials like
plastic and (to a lesser extent) metal, but scenes
still seem very cartoonish and unreal
Big problem: polygons are too coarse-grained to
usefully model fine surface detail
Solution: texture mapping
204481 Foundation of Computer Graphics
May 25, 2016
33
Texture Mapping: Motivation


Adding surface detail helps keep CG
images from looking simple and sterile
Explicitly modeling this detail in geometry
can be very expensive


Zebra stripes, wood grain, writing on a
whiteboard
Texture mapping pastes images onto the
surfaces in the scene, adding realistic fine
detail without exploding the geometry
204481 Foundation of Computer Graphics
May 25, 2016
34
Texture Mapping: Examples
204481 Foundation of Computer Graphics
May 25, 2016
35
Texture Mapping: Fundamentals

A texture is typically a 2-D image


Image elements are called texels
Value stored at a texel affects surface appearance in
some way


Example: diffuse reflectance, shininess, transparency…
The mapping of the texture to the surface determines
the correspondence, i.e., how the texture lies on the
surface


Mapping a texture to a triangle is easy (why?)
Mapping a texture to an arbitrary 3-D shape is more
complicated (why?)
204481 Foundation of Computer Graphics
May 25, 2016
36
Texture Mapping: Rendering

Rendering uses the mapping:




Find the visible surface at a pixel
Find the point on that surface corresponding to
that pixel
Find the point in the texture corresponding to
that point on the surface
Use the parameters associated with that point
on the texture to shade the pixel
204481 Foundation of Computer Graphics
May 25, 2016
37
Texture Mapping: Basics

We typically parameterize the texture as a
function in (u, v)




For simplicity, normalize u & v to [0, 1]
Associate each triangle with a texture
Give each vertex of the triangle a texture
coordinate (u, v)
For other points on the triangle, interpolate
texture coordinate from the vertices


Much like interpolating color or depth
But there’s a catch...
204481 Foundation of Computer Graphics
May 25, 2016
38