Lecture 156.837 Fall 2001 Illumination and Shading in OpenGL Light Sources Empirical Illumination Shading Transforming Normals Tong-Yee Lee.

Slides:



Advertisements
Similar presentations
Lecture Fall 2001 Illumination and Shading Light Sources Empirical Illumination Shading Transforming Normals Tong-Yee Lee.
Advertisements

Polygon Rendering Flat Rendering Goraud Rendering Uses Phong Reflectance Phong Rendering.
CSPC 352: Computer Graphics
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.
Illumination and Shading
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
Computer Graphics - Class 10
Shading in OpenGL CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
IMGD 1001: Illumination by Mark Claypool
Computer Graphics (Fall 2005) COMS 4160, Lecture 16: Illumination and Shading 1
Lighting and Shading Wen-Chieh (Steve) Lin
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.
6.1 Vis_04 Data Visualization Lecture 6 - A Rough Guide to Rendering.
CS5500 Computer Graphics March 26, Shading Reference: Ed Angel’s book.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Shading Week 5, Wed 1 Oct 2003 recap: lighting shading.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Shading I Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006
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.
Illumination.
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 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.
Shading in OpenGL.
CS 445: Introduction to Computer Graphics David Luebke University of Virginia Visibility Calculations and Occlusion Culling.
CSC418 Computer Graphics n Illumination n Lights n Lightinging models.
Computer Graphics I, Fall 2010 Shading in OpenGL.
David Luebke 1 10/26/2015 Lighting CS 445/645 Introduction to Computer Graphics David Luebke, Spring 2003.
Steve Sterley. Real World Lighting Physical objects tend to interact with light in three ways: Absorption (black body) Reflection (mirror) Transmission.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Basic Rendering Pipeline and Shading Spring 2012.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
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.
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.
1 CSCE 441: Computer Graphics Lighting Jinxiang Chai.
In the name of God Computer Graphics. Where We Stand So far we know how to: –Transform between spaces –Draw polygons Next –Deciding a pixel’s intensity.
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: Illumination
Illumination Models and Surface-Rendering Methods CEng 477 Introduction to Computer Graphics.
Illumination and Shading. Illumination (Lighting) Model the interaction of light with surface points to determine their final color and brightness OpenGL.
Computer Graphics (fall,2010) School of Computer Science University of Seoul Minho Kim.
Illumination : Hearn & Baker Ch. 10
© University of Wisconsin, CS559 Spring 2004
Shading To determine the correct shades of color on the surface of graphical objects.
CSC461: Lecture 23 Shading Computation
Vectors, Normals, & Shading
Shading in OpenGL Ed Angel
Isaac Gang University of Mary Hardin-Baylor
Last Time Liang-Barsky Details Weiler-Atherton clipping algorithm
Computer Graphics Material Colours and Lighting
Computer Graphics (Fall 2003)
Illumination Model 고려대학교 컴퓨터 그래픽스 연구실.
Computer Graphics Shading in OpenGL
Presentation transcript:

Lecture Fall 2001 Illumination and Shading in OpenGL Light Sources Empirical Illumination Shading Transforming Normals Tong-Yee Lee

Lecture 15Slide Fall 2001 Ambient Light Source Even though an object in a scene is not directly lit it will still be visible. This is because light is reflected indirectly from nearby objects. A simple hack that is commonly used to model this indirect illumination is to use of an ambient light source. Ambient light has no spatial or directional characteristics. The amount of ambient light incident on each object is a constant for all surfaces in the scene. An ambient light can have a color. The amount of ambient light that is reflected by an object is independent of the object's position or orientation. Surface properties are used to determine how much ambient light is reflected.

Lecture 15Slide Fall 2001 Directional Light Sources All of the rays from a directional light source have a common direction, and no point of origin. It is as if the light source was infinitely far away from the surface that it is illuminating. Sunlight is an example of an infinite light source. The direction from a surface to a light source is important for computing the light reflected from the surface. With a directional light source this direction is a constant for every surface. A directional light source can be colored. No attenuation with distance.

Lecture 15Slide Fall 2001 Point Light Sources The point light source emits rays in radial directions from its source. A point light source is a fair approximation to a local light source such as a light bulb. The direction of the light to each point on a surface changes when a point light source is used. Thus, a normalized vector to the light emitter must be computed for each point that is illuminated.

Lecture 15Slide Fall 2001 Other Light Sources Spotlights Point source whose intensity falls off away from a given direction Requires a color, a point, a direction, parameters that control the rate of fall off Area Light Sources Light source occupies a 2-D area (usually a polygon or disk) Generates soft shadows Extended Light Sources Spherical Light Source Generates soft shadows

Lecture 15Slide Fall 2001 Spot Light Source

Lecture 15Slide Fall 2001 Point, Directional and Spot Light Source

Lecture 15Slide Fall 2001

Lecture 15Slide Fall 2001 Computing Diffuse Reflection The angle between the surface normal and the incoming light ray is called the angle of incidence and we can express a intensity of the light in terms of this angle. The I light term represents the intensity of the incoming light at the particular wavelength (the wavelength determines the light's color). The k d term represents the diffuse reflectivity of the surface at that wavelength. In practice we use vector analysis to compute cosine term indirectly. If both the normal vector and the incoming light vector are normalized (unit length) then diffuse shading can be computed as follows:

Lecture 15Slide Fall 2001 Lambert's Cosine Law Ideal diffuse reflectors reflect light according to Lambert's cosine law, (there are sometimes called Lambertian reflectors). Lambert's law states that the reflected energy from a small surface area in a particular direction is proportional to cosine of the angle between that direction and the surface normal. Lambert's law determines how much of the incoming light energy is reflected. Remember that the amount energy that is reflected in any one direction is constant in this model. In other words the reflected intensity is independent of the viewing direction. The intensity does however depend on the light source's orientation relative to the surface, and it is this property that is governed by Lambert's law.

Lecture 15Slide Fall 2001 Diffuse Lighting Examples We need only consider angles from 0 to 90 degrees. Greater angles (where the dot product is negative) are blocked by the surface, and the reflected energy is 0. Below are several examples of a spherical diffuse reflector with a varying lighting angles. Why do you think spheres are used as examples when shading?

Lecture 15Slide Fall 2001 Reflection Reflection is a very special case of Snell's Law where the incident light's medium and the reflected rays medium is the same. Thus we can simplify the expression to:

Lecture 15Slide Fall 2001 Phong Illumination One function that approximates this fall off is called the Phong Illumination model. This model has no physical basis, yet it is one of the most commonly used illumination models in computer graphics. The cosine term is maximum when the surface is viewed from the mirror direction and falls off to 0 when viewed at 90 degrees away from it. The scalar n shiny controls the rate of this fall off.

Lecture 15Slide Fall 2001

Lecture 15Slide Fall 2001 Computing Phong Illumination The V vector is the unit vector in the direction of the viewer and the R vector is the mirror reflectance direction. The vector R can be computed from the incoming light direction and the surface normal:

Lecture 15Slide Fall 2001 Putting it all together Phong Illumination Model

Lecture 15Slide Fall 2001 Phong Illumination Model for each light I i for each color component reflectance coefficients k d, k s, and k a scalars between 0 and 1 may or may not vary with color n shiny scalar integer: 1 for diffuse surface, 100 for metallic shiny surfaces notice that the specular component does not depend on the object color. In above equation, if its value is more than 1, how to do? Normalize it Clamp each to be 1/#(light) OpenGL just simply clamp to 1

Lecture 15Slide Fall 2001 Phong Illumination Model

Lecture 15Slide Fall 2001

Lecture 15Slide Fall 2001 OpenGL Reflectance Model

Lecture 15Slide Fall 2001 Emission

Lecture 15Slide Fall 2001 OpenGL Lighting

Lecture 15Slide Fall 2001 OpenGL Material

Lecture 15Slide Fall 2001 OpenGL Mathematical Model

Lecture 15Slide Fall 2001 Normals and OpenGL You must supply per-vertex normal vectors if you enable lighting computations A common oversight - all surfaces are black and may be invisible Before specifying each vertex, specify a color and a normal vector: glColor4f(r, g, b, a) defines a color, with many variants glNormal3f(x, y, z) defines a normal, with many variants Chapters 2, 4 and 5 of the OpenGL programming guide have many examples glBegin(GL_QUADS); glColor3f(1,1,1); glNormal3f(0,0,1); glVertex3f(1,1,0); glColor3f(1,1,1); glNormal3f(0,0,1); glVertex3f(-1,1,0); glColor3f(1,1,1); glNormal3f(0,0,1); glVertex3f(-1,-1,0); glColor3f(1,1,1); glNormal3f(0,0,1); glVertex3f(1,-1,0); glEnd();

Lecture 15Slide Fall 2001 More Normals and OpenGL Specifying fewer colors and normals OpenGL uses the notion of a current color and a current normal The current normal is applied to all vertices up to the next normal definition glBegin(GL_QUADS); glColor3f(1,1,1); glNormal3f(0,0,1); glVertex3f(1,1,0); glVertex3f(-1,1,0); glVertex3f(-1,-1,0); glVertex3f(1,-1,0); glEnd(); Normalizing normals –Normal vectors must be unit vectors for lighting to work correctly (they must be normalized) –By default, vectors are not normalized for you –Causes problems with scaling transformations, but OK for translations and rotations –glEnable(GL_NORMALIZE) or glEnable(GL_RESCALE_NORMAL) will fix it for you, but they are expensive and slow rendering

Lecture 15Slide Fall 2001 OpenGL: Local Shading Models Local shading models provide a way to determine the intensity and color of a point on a surface The models are local because they don ’ t consider other objects at all We use them because they are fast and simple to compute They do not require knowledge of the entire scene, only the current piece of surface

Lecture 15Slide Fall 2001 OpenGL: Approximations for Speed The viewer direction, V, and the light direction, L, depend on the surface position being considered, x Distant light approximation: Assume L is constant for all x Good approximation if light is distant, such as sun Distant viewer approximation Assume V is constant for all x Rarely good, but only affects specularities

Lecture 15Slide Fall 2001 OpenGL Model Allows emission, E: Light being emitted by surface Allows separate light intensity for diffuse and specular Ambient light can be associated with light sources Allows spotlights that have intensity that depends on outgoing light direction Allows attenuation of light intensity with distance Can specify coefficients in multiple ways Too many variables and commands to present in class The OpenGL programming guide goes through it all

Lecture 15Slide Fall 2001 OpenGL Commands (1) glMaterial{if}(face, parameter, value) Changes one of the coefficients for the front or back side of a face (or both sides) glLight{if}(light, property, value) Changes one of the properties of a light (intensities, positions, directions, etc) There are 8 lights: GL_LIGHT0, GL_LIGHT1, … glLightModel{if}(property, value) Changes one of the global light model properties (global ambient light, for instance) glEnable(GL_LIGHT0) enables GL_LIGHT0

Lecture 15Slide Fall 2001 OpenGL Commands (2) glColorMaterial(face, mode) Causes a material property, such as diffuse reflectance coefficient, to track the current glColor() Speeds things up, and makes coding easier glEnable(GL_LIGHTING) turns on lighting Don ’ t use specular intensity if you don ’ t have to It ’ s expensive - turn it off by giving 0,0,0 as specular color of light Don ’ t forget normals Many other things to control appearance

Lecture 15Slide Fall 2001 Where do we Illuminate? To this point we have discussed how to compute an illumination model at a point on a surface. But, at which points on the surface is the illumination model applied? Where and how often it is applied has a noticeable effect on the result. Illuminating can be a costly process involving the computation of and normalizing of vectors to multiple light sources and the viewer. For models defined by collections of polygonal facets or triangles: Each facet has a common surface normal If the light is directional then the diffuse contribution is constant across the facet If the eye is infinitely far away and the light is directional then the specular contribution is constant across the facet.

Lecture 15Slide Fall 2001 Flat Shading Or Facet Shading The simplest shading method applies only one illumination calculation for each primitive. This technique is called constant or flat shading. It is often used on polygonal primitives. Drawbacks: the direction to the light source varies over the facet the direction to the eye varies over the facet Nonetheless, often illumination is computed for only a single point on the facet. Which one? Usually the centroid. OpenGL picks any vertex of a polygon

Lecture 15Slide Fall 2001 OpenGL: Flat shading Compute shading at a representative point and apply to whole polygon OpenGL uses one of the vertices Advantages: Fast - one shading value per polygon Disadvantages: Inaccurate Discontinuities at polygon boundaries

Lecture 15Slide Fall 2001 Constant Shading with Ambient Illumination Only

Lecture 15Slide Fall 2001 Facet Shading With Diffuse Reflection

Lecture 15Slide Fall 2001 Even when the illumination equation is applied at each point of the faceted nature of the polygonal nature is still apparent. To overcome this limitation normals are introduced at each vertex. different than the polygon normal for shading only (not backface culling or other computations) better approximates smooth surfaces Facet Shading

Lecture 15Slide Fall 2001 Vertex Normals If vertex normals are not provided they can often be approximated by averaging the normals of the facets which share the vertex. This only works if the polygons reasonably approximate the underlying surface. A better approximation can be found using a clustering analysis of the normals on the unit sphere.

Lecture 15Slide Fall 2001 Gouraud Shading The Gouraud shading method applies the illumination model on a subset of surface points and interpolates the intensity of the remaining points on the surface. In the case of a polygonal mesh the illumination model is usually applied at each vertex and the colors in the triangles interior are linearly interpolated from these vertex values. The linear interpolation can be accomplished using the plane equation method discussed in the lecture on rasterizing polygons.

Lecture 15Slide Fall 2001

Lecture 15Slide Fall 2001 Gourand Shading Shade each vertex with it’s own location and normal Linearly interpolate across the face Advantages: Fast - incremental calculations when rasterizing Much smoother - use one normal per shared vertex to get continuity between faces Disadvantages: Specularities get lost No highlights Highlight is loss if Gourand shading is applied

Lecture 15Slide Fall 2001 Gouraud Shading with Diffuse Reflection Do not average normals everywhere. Only for the approximately curve surface

Lecture 15Slide Fall 2001 Shading and OpenGL OpenGL defines two particular shading models Controls how colors are assigned to pixels glShadeModel(GL_SMOOTH) interpolates between the colors at the vertices (the default) glShadeModel(GL_FLAT) uses a constant color across the polygon

Lecture 15Slide Fall 2001 Phong Shading In Phong shading (not to be confused with the Phong illumination model), the surface normal is linearly interpolated across polygonal facets, and the Illumination model is applied at every point. A Phong shader assumes the same input as a Gouraud shader, which means that it expects a normal for every vertex. The illumination model is applied at every point on the surface being rendered, where the normal at each point is the result of linearly interpolating the vertex normals defined at each vertex of the triangle. Phong shading will usually result in a very smooth appearance, however, evidence of the polygonal model can usually be seen along silhouettes.

Lecture 15Slide Fall 2001 Phong Shading with Correct Highlight Edge Silhouettes

Lecture 15Slide Fall 2001