Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006

Slides:



Advertisements
Similar presentations
1 Graphics CSCI 343, Fall 2013 Lecture 18 Lighting and Shading.
Advertisements

Komputer Grafik 2 (AK045206) Realisme dan Pencahayaan 1/34 Pencahayaan (Lighting)
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.
Lighting and Illumination Lighting is the major problem in computer graphics, for either realism or real-time compositions- harder than modeling Consider.
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
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Lighting/Shading III Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Lighting/Shading II Week.
IMGD 1001: Illumination by Mark Claypool
Lighting and Shading Wen-Chieh (Steve) Lin
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Lighting/Shading II Week.
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.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Lighting and Shading Week.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Lighting Week 5, Mon 29 Sep 2003 recap: picking, light sources lighting.
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.
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.
CS 445 / 645 Introduction to Computer Graphics Lecture 18 Shading Shading.
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.
MIT EECS 6.837, Durand and Cutler Local Illumination.
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.
CS 445 / 645 Introduction to Computer Graphics Lecture 14 Lighting Lighting.
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.
Illumination.
Komputer Grafik 2 (AK045206) Shading 1/17 Realisme : Shading.
Illumination and Shading
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Photo-realistic Rendering and Global Illumination in Computer Graphics Spring 2012 Material Representation K. H. Ko School of Mechatronics Gwangju Institute.
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
CS 445 / 645 Introduction to Computer Graphics Lecture 15 Shading Shading.
RENDERING Introduction to Shading models – Flat and Smooth shading – Adding texture to faces – Adding shadows of objects – Building a camera in a program.
Lecture Fall 2001 Illumination and Shading in OpenGL Light Sources Empirical Illumination Shading Transforming Normals Tong-Yee Lee.
Local Illumination and Shading
Cornell CS465 Spring 2004 Lecture 4© 2004 Steve Marschner 1 Shading CS 465 Lecture 4.
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.
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
CPSC 314 LIGHTING AND SHADING UGRAD.CS.UBC.CA/~CS314 slide credits: Mikhail Bessmeltsev et al 1.
1 CSCE 441: Computer Graphics Lighting Jinxiang Chai.
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 : Hearn & Baker Ch. 10
© University of Wisconsin, CS559 Spring 2004
Chapter 14 Shading Models.
Illumination Models Chapter 14 Section 14.1 to 14.2
Computer Graphics Material Colours and Lighting
Computer Graphics (Fall 2003)
Chapter 14 Shading Models.
CS 480/680 Computer Graphics Shading.
Presentation transcript:

Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 Lighting Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006

Lighting So…given a 3-D triangle and a 3-D viewpoint, we can set the right pixels But what color should those pixels be? If we’re attempting to create a realistic image, we need to simulate the lighting of the surfaces in the scene Fundamentally simulation of physics and optics As you’ll see, we use a lot of approximations (a.k.a hacks) to do this simulation fast enough

Definitions 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

Definitions 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

Components of Illumination Two components of illumination: light sources and surface properties Light sources (or emitters) Brightness Spectrum of emittance (i.e, color of the light) Geometric attributes Position Direction Shape Directional attenuation

Components of Illumination Surface properties Reflectance spectrum (i.e., color of the surface) Geometric attributes Position Orientation Micro-structure Common simplifications in interactive graphics Only direct illumination from emitters to surfaces Simplify geometry of emitters to trivial case

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

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), so we use a hack called an ambient light source No spatial or directional characteristics; illuminates all surfaces equally Amount reflected depends on surface properties

Ireflected = kambient Iambient Ambient Light Sources For each sampled wavelength, the ambient light reflected from a surface depends on The surface properties The intensity of the ambient light source (constant for all points on all surfaces ) Ireflected = kambient Iambient

Ambient Light Sources A scene lit only with an ambient light source:

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

Diffuse lighting types There are a number of diffuse lighting models Minnaert Toon Oren-Nayar Lambert Etc. We’ll be looking only at Lambert

The Physics of Reflection Ideal diffuse reflection An ideal diffuse reflector, at the microscopic level, is a very rough surface (real-world example: chalk) Because of these microscopic variations, an incoming ray of light is equally likely to be reflected in any direction over the hemisphere: What does the reflected intensity depend on?

Lambert’s Cosine Law Ideal diffuse surfaces reflect according to Lambert’s cosine law: The energy reflected by a small portion of a surface from a light source in a given direction is proportional to the cosine of the angle between that direction and the surface normal These are often called Lambertian surfaces Note that the reflected intensity is independent of the viewing direction, but does depend on the surface orientation with regard to the light source

Lambert’s Law

Computing Diffuse Reflection The angle between the surface normal and the incoming light is the angle of incidence: Idiffuse = kd Ilight cos  In practice we use vector arithmetic: Idiffuse = kd Ilight (n • l) n l 

Diffuse Lighting Examples We need only consider angles from 0° to 90° (Why?) A Lambertian sphere seen at several different lighting angles: An animated gif

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

Directional Light Sources For a directional light source we make the simplifying assumption that 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 The direction from a surface to the light source is important in lighting the surface With a directional light source, this direction is constant for all surfaces in the scene

Directional Light Sources The same scene lit with a directional light source

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

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: So we need to calculate a normalized vector to the light source for every point we light:

Point Light Sources Using an ambient and a point light source: How can we tell the difference between a point light source and a directional light source on a sphere?

Point light vs. directional light

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

Area light sources Area light sources define a 2-D emissive surface (usually a disc or polygon) Good example: fluorescent light panels Capable of generating soft shadows (why?) From http://web.cs.wpi.edu/~emmanuel/courses/cs563/write_ups/zackw/realistic_raytracing.html

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

Spot lights Spotlights are point sources whose intensity falls off directionally. Spotlight is just in front of the camera Supported by OpenGL

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

Specular lighting types There are a number of specular lighting models WardIso Toon Blinn Phong CookTorr Etc. We’ll be looking only at Phong

Specular Reflection Shiny surfaces exhibit specular reflection Polished metal Glossy car finish A light shining on a specular surface causes a bright spot known as a specular highlight Where these highlights appear is a function of the viewer’s position, so specular reflectance is view-dependent

The Physics of Reflection At the microscopic level a specular reflecting surface is very smooth Thus rays of light are likely to bounce off the micro-geometry in a mirror-like fashion The smoother the surface, the closer it becomes to a perfect mirror Polishing metal example (draw it)

The Optics of Reflection Reflection follows Snell’s Laws: The incoming ray and reflected ray lie in a plane with the surface normal The angle that the reflected ray forms with the surface normal equals the angle formed by the incoming ray and the surface normal: l = r

Non-Ideal Specular Reflectance Snell’s law applies to perfect mirror-like surfaces, but aside from mirrors (and chrome) few surfaces exhibit perfect specularity How can we capture the “softer” reflections of surface that are glossy rather than mirror-like? One option: model the micro-geometry of the surface and explicitly bounce rays off of it Or…

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

… An Empirical Approximation In general, we expect most reflected light to travel in direction predicted by Snell’s Law But because of microscopic surface variations, some light may be reflected in a direction slightly off the ideal reflected ray As the angle from the ideal reflected ray increases, we expect less light to be reflected

… An Empirical Approximation An illustration of this angular falloff: How might we model this falloff?

Phong Lighting The most common lighting model in computer graphics was suggested by Phong: The nshiny term is a purely empirical constant that varies the rate of falloff Though this model has no physical basis, it works (sort of) in practice

Phong Lighting: The nshiny Term This diagram shows how the Phong reflectance term drops off with divergence of the viewing angle from the ideal reflected ray: What does this term control, visually?

Calculating Phong Lighting The cos term of Phong lighting can be computed using vector arithmetic: V is the unit vector towards the viewer Common simplification: V is constant (implying what?) R is the ideal reflectance direction An aside: we can efficiently calculate R

Calculating The R Vector This is illustrated below:

Phong Examples These spheres illustrate the Phong model as L and nshiny are varied:

The Phong Lighting Model Our final empirically-motivated model for the illumination at a surface includes ambient, diffuse, and specular components: Commonly called Phong lighting Note: once per light Note: once per color component Do ka, kd, and ks vary with color component?

Phong Lighting: Intensity Plots

Phong Lighting in OpenGL The final Phong model as we studied it: OpenGL variations: Every light has an ambient component Surfaces can have “emissive” component to simulate glow Added directly to the visible reflected intensity Not actually a light source (does not illuminate other surfaces) See Nate Robin’s OpenGL Lighting tutors

Types of lights and light sources Ambient Diffuse Directional Point Area Spot Specular Phong … and then onto shading…

Applying Illumination We now have an illumination model for a point on a surface Assuming that our surface is defined as a mesh of polygonal facets, which points should we use? Keep in mind: It’s a fairly expensive calculation Several possible answers, each with different implications for the visual quality of the result

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

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

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)

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

Face normals in Blender

Gouraud Shading This is the most common approach Demo at: 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/~gfx/Courses/2000/intro.spring00.html/vrml/tpot.wrl Requires a VRML browser or plug-in Does this eliminate the facets? No: we’re still subsampling the lighting parameters (normal, view vector, light vector)

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

An Aside: Transforming Normals Irritatingly, the matrix for transforming a normal vector is not the same as the matrix for the corresponding transformation on points In other words, don’t just treat normals as points:

Transforming Normals Some not-too-complicated affine analysis shows: If A is a matrix for transforming points, then (AT)-1 is the matrix for transforming normals When is this the same matrix? What is the homogeneous representation of a vector (as opposed to a point?) Can use this to simplify the problem: only upper 3x3 matrix matters, so use only it