Illumination and Shading

Slides:



Advertisements
Similar presentations
CSPC 352: Computer Graphics
Advertisements

Virtual Realism LIGHTING AND SHADING. Lighting & Shading Approximate physical reality Ray tracing: Follow light rays through a scene Accurate, but expensive.
1 Computer Graphics By : Mohammed abu Lamdy ITGD3107 University of Palestine Supervision: Assistant Professor Dr. Sana’a Wafa Al-Sayegh.
1. What is Lighting? 2 Example 1. Find the cubic polynomial or that passes through the four points and satisfies 1.As a photon Metal Insulator.
Based on slides created by Edward Angel
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Shading I.
University of New Mexico
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Lighting/Shading III Week.
Computer Graphics - Class 10
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Lighting/Shading III Week.
Shading in OpenGL CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
IMGD 1001: Illumination by Mark Claypool
CS 4731: Computer Graphics Lecture 16: Illumination Models Part 2 Emmanuel Agu.
Computer Graphics (Fall 2005) COMS 4160, Lecture 16: Illumination and Shading 1
Lighting and Shading Wen-Chieh (Steve) Lin
(conventional Cartesian reference system)
Shading in OpenGL Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
7M836 Animation & Rendering
Objectives Learn to shade objects so their images appear three- dimensional Learn to shade objects so their images appear three- dimensional Introduce.
1 CSC 830 Computer Graphics Lecture 5 Shading Course Note Credit: Some of slides are extracted from the course notes of prof. Mathieu Desburn (USC) and.
CS5500 Computer Graphics March 26, Shading Reference: Ed Angel’s book.
Coordinate Systems X Y Z (conventional Cartesian reference system) X Y Z.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Shading Week 5, Wed 1 Oct 2003 recap: lighting shading.
Illumination and Shading
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Shading I Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Lighting and Shading Week.
Illumination and Shading. Illumination (Lighting) Model the interaction of light with surface points to determine their final color and brightness OpenGL.
CS 480/680 Computer Graphics Shading I Dr. Frederick C Harris, Jr.
Fundamentals of Computer Graphics Part 6 Shading prof.ing.Václav Skala, CSc. University of West Bohemia Plzeň, Czech Republic ©2002 Prepared with Angel,E.:
CS 445 / 645: Introductory Computer Graphics
Computer Graphics Lighting.
1 Graphics CSCI 343, Fall 2013 Lecture 20 Lighting and Shading III.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Shading (introduction to rendering). Rendering  We know how to specify the geometry but how is the color calculated.
COMPUTER GRAPHICS CS 482 – FALL 2014 AUGUST 27, 2014 FIXED-FUNCTION 3D GRAPHICS MESH SPECIFICATION LIGHTING SPECIFICATION REFLECTION SHADING HIERARCHICAL.
Review 2: Illumination, Shading, Texturing and Anti-aliasing
Shading in OpenGL.
19/17/ :25 UML Graphics: Conceptual Model Real Object Human Eye Display Device Graphics System Synthetic Model Synthetic Camera Real Light Synthetic.
Shading and Illumination. OpenGL Shading Without ShadingWith Shading.
CSC418 Computer Graphics n Illumination n Lights n Lightinging models.
Computer Graphics I, Fall 2010 Shading in OpenGL.
08 |Lighting and Shading Eriq Muhammad Adams J |
Steve Sterley. Real World Lighting Physical objects tend to interact with light in three ways: Absorption (black body) Reflection (mirror) Transmission.
CSE 381 – Advanced Game Programming GLSL Lighting.
11/04/04© University of Wisconsin, CS559 Fall 2004 Last Time Visibility –Z-Buffer and transparency –A-buffer –Area subdivision –BSP Trees –Exact Cell-Portal.
Illumination and Shading
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Shading in OpenGL Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E.
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
Lecture Fall 2001 Illumination and Shading in OpenGL Light Sources Empirical Illumination Shading Transforming Normals Tong-Yee Lee.
Local Illumination and Shading
Where We Stand So far we know how to: –Transform between spaces –Rasterize –Decide what’s in front Next –Deciding its intensity and color.
Illumination and Shading Sang Il Park Sejong University.
OpenGL Shading. 2 Objectives Learn to shade objects so their images appear three-dimensional Introduce the types of light-material interactions Build.
Lighting and Reflection Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
David Luebke3/16/2016 CS 551 / 645: Introductory Computer Graphics David Luebke
Illumination Models. Introduction 1 Illumination model: Given a point on a surface, what is the perceived color and intensity? Known as Lighting Model,
Computer Graphics Ken-Yi Lee National Taiwan University (the slides are adapted from Bing-Yi Chen and Yung-Yu Chuang)
Computer Graphics: Illumination
Illumination and Shading. Illumination (Lighting) Model the interaction of light with surface points to determine their final color and brightness OpenGL.
Illumination and Shading. Illumination (Lighting) Model the interaction of light with surface points to determine their final color and brightness OpenGL.
1 Dr. Scott Schaefer Lighting. 2/49 Lighting/Illumination Color is a function of how light reflects from surfaces to the eye Global illumination accounts.
Shading To determine the correct shades of color on the surface of graphical objects.
Illumination and Shading
Unit-7 Lighting and Shading
Shading in OpenGL Ed Angel
Illumination and Shading
ייצוג בעולם 3D ייצוג מצולעים (פוליגונים) צלע קודקוד צלעe0 : {v1,v2}
Computer Graphics (Fall 2003)
CS 480/680 Computer Graphics Shading.
Presentation transcript:

Illumination and Shading Jian Huang, CS594, Fall 2001 This set of slides reference slides used at Ohio State for instruction by Prof. Machiraju and Prof. Han-Wei Shen.

Illumination Vs. Shading Illumination (lighting) model: determine the color of a surface point by simulating some light attributes. Shading model: applies the illumination models at a set of points and colors the whole image.

Illumination (Lighting) Model To model the interaction of light with surfaces to determine the final color & brightness of the surface Global illumination Local illumination

Global Illumination Global Illumination models: take into account the interaction of light from all the surfaces in the scene. (will cover under the Radiosity section)

Local illumination Only consider the light, the observer position, and the object material properties

Basic 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)

Ambient light (background light) The light that is the result from the light reflecting off other surfaces in the environment A general level of brightness for a scene that is independent of the light positions or surface directions -> ambient light Has no direction Each light source has an ambient light contribution, Ia For a given surface, we can specify how much ambient light the surface can reflect using an ambient reflection coefficient : Ka (0 < Ka < 1)

Ambient Light So the amount of light that the surface reflect is therefore Iamb = Ka * Ia

Diffuse 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)

Lambert’s 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) Lambert’s 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)

The Diffuse Component The total diffuse reflection = ambient + diffuse Surface’s material property: assuming that the surface can reflect Kd (0<Kd<1), diffuse reflection coefficient) amount of diffuse light: Idiff = Kd * IL * cos(q) If N and L are normalized, cos(q) = N*L Idiff = Kd * IL * (N*L) The total diffuse reflection = ambient + diffuse Idiff = Ka * Ia + Kd * IL * (N*L)

Examples Sphere diffusely lighted from various angles !

Specular 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

Phong’s Model for Specular How much reflection light you can see depends on where you are

Phong Illumination Curves Specular exponents are much larger than 1; Values of 100 are not uncommon. : glossiness, rate of falloff

Specular Highlights Shiny surfaces change appearance when viewpoint is changed Specularities are caused by microscopically smooth surfaces. A mirror is a perfect specular reflector

Double length of vector Reflected Ray N How to calculate R? R + L = 2(N*L) N R = 2(N*L) N - L L R f f a V f L 2N(N•L) Double length of vector f L R = 2N(N•L) - L Subtract L f L N(N•L) Project L onto N

Half Vector An alternative way of computing phong lighting is: Is = ks * Is * (N*H)n H (halfway vector): halfway between V and L: (V+L)/2 Fuzzier highlight N L H V

Phong Illumination Moving Light Change n

Putting It All Together Single Light (white light source)

Multiple Light Source IL: light intensity For multiple light sources Repeat the diffuse and specular calculations for each light source Add the components from all light sources The ambient term contributes only once The different reflectance coefficients can differ. Simple “metal”: ks and kd share material color, Simple plastic: ks is white Remember, when cosine is negative lighting term is zero!

OpenGL Materials GLfloat white8[] = {.8, .8, .8, 1.}, white2 = {.2,.2,.2,1.},black={0.,0.,0.}; GLfloat mat_shininess[] = {50.}; /* Phong exponent */ glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, black); GL_DIFFUSE, white8); GL_SPECULAR, white2); GL_SHININESS, mat_shininess);

OpenGL Lighting GLfloat white[] = {1., 1., 1., 1.}; GLfloat light0_position[] = {1., 1., 5., 0.}; /* directional light (w=0) */ 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_SIDE, GL_TRUE);/* two-sided lighting*/ glEnable(GL_LIGHTING);

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

Constant Shading Compute illumination only at one point on the surface Okay to use if all of the following are true The object is not a curved (smooth) surface (e.g. a polyhedron object) The light source is very far away (so N.L does not change much across a polygon) The eye is very far away (so V.R does not change much across a polygon) The surface is quite small (close to pixel size)

Un-lit

Flat Shading

Mach Band ?

Polygon Mesh Shading Shading each polygonal facet individually will not generate an illusion of smooth curved surface Reason: polygons will have different colors along the boundary, unfortunately, human perception helps to even accentuate the discontinuity: mach band effect

Mach Banding Intensity change is exagerated Dark facet looks darker and lighter looks even more lighter

Smooth Shading Need to have per-vertex normals Gouraud Shading Interpolate color across triangles Fast, supported by most of the graphics accelerator cards Phong Shading Interpolate normals across triangles More accurate, but slow. Not widely supported by hardware

Gouraud Shading Normals are computed at the polygon vertices If we only have per-face normals, the normal at each vertex is the average of the normals of its adjacent faces Intensity interpolation: linearly interpolate the pixel intensity (color) across a polygon surface

Linear Interpolation If v1 and v2 are known, then Calculate the value of a point based on the distances to the point’s two neighbor points If v1 and v2 are known, then x = b/(a+b) * v1 + a/(a+b) * v2

Linear Interpolation in a Triangle To determine the intensity (color) of point P in the triangle, we will do: determine the intensity of 4 by linearly interpolating between 1 and 2 determine the intensity of 5 by linearly interpolating between 2 and 3 determine the intensity of P by linear interpolating between 4 and 5

Mach Band ?

Image

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.

Interpolated Shading - Problems Polygonal silhouette – edge is always polygonal. Solution ? Perspective distortion – interpolation is in screen space and hence for-shortening takes place. Solution ? In both cases finer polygons can help !

Interpolated Shading - Problems Orientation dependence - small rotations cause problems A B A C B D D C

Interpolated 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

Light Sources Point light source Directional light source: e.g. sun light Spot light

Spot Light To restrict a light’s 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

Example

Light Source Attenuation Takes into account the distance of the light from the surface I’L = I L * fatt (d) I’L: 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 + c2*d + c3*d2) , 1) C1, C2, C3 are user defined constants associated with each light source

More on Homogeneous Coordinates To 4D: (x,y,z) -> (x,y,z,1) Back to 3D: (x,y,z,w) -> (x/w, y/w, z/w) A point is on a plane if the point satisfies 0 == A*x + B*y + C*z + D Point P: (x,y,z,1). Representing a plane N = (A,B,C,D). Point P is on the plane, if P dot N == 0

Transforming Normals

Transforming Normals Transform P to P’ -> P’ = M * P (M is known) and transform N to N’ -> N’ = Q * N Let Q be our transformation matrix for N. We want to make sure that after transformation, N’ is the normal of the transformed plane. That is, N’T * P’ = 0 We get: N’T * P’ = (Q * N)T * (M * P) = NT * QT * M * P = 0

Transforming Normals So, need QT *M = Identity Then, QT = M –1 Still, we want N’ = Q * N. Q = (M –1)T