Where We Stand So far we know how to: –Transform between spaces –Rasterize –Decide what’s in front Next –Deciding its intensity and color.

Slides:



Advertisements
Similar presentations
Polygon Rendering Flat Rendering Goraud Rendering Uses Phong Reflectance Phong Rendering.
Advertisements

2 COEN Computer Graphics I Evening’s Goals n Discuss the fundamentals of lighting in computer graphics n Analyze OpenGL’s lighting model n Show.
Virtual Realism LIGHTING AND SHADING. Lighting & Shading Approximate physical reality Ray tracing: Follow light rays through a scene Accurate, but expensive.
1 Computer Graphics Chapter 9 Rendering. [9]-2RM Rendering Three dimensional object rendering is the set of collective processes which make the object.
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.
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
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.
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,
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.
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.
19/17/ :25 UML Graphics: Conceptual Model Real Object Human Eye Display Device Graphics System Synthetic Model Synthetic Camera Real Light Synthetic.
CS 638, Fall 2001 Admin Grad student TAs may have had their accounts disabled –Please check and the lab if there is a problem If you plan on graduating.
Shading and Illumination. OpenGL Shading Without ShadingWith Shading.
Shading & Texture. Shading Flat Shading The process of assigning colors to pixels. Smooth Shading Gouraud ShadingPhong Shading Shading.
CSC418 Computer Graphics n Illumination n Lights n Lightinging models.
Computer Graphics I, Fall 2010 Shading in OpenGL.
Rendering Overview CSE 3541 Matt Boggus. Rendering Algorithmically generating a 2D image from 3D models Raster graphics.
Taku KomuraComputer Graphics Local Illumination and Shading Computer Graphics – Lecture 10 Taku Komura Institute for Perception, Action.
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.
03/14/02 (c) 2002 University of Wisconsin, CS559 Last Time Some more visibility (Hidden Surface Removal) algorithms –A-buffer –Scanline –Depth sorting.
CS 638, Fall 2001 Interactive Programs Games are interactive systems - they must respond to the user Today is all about how interactive programs are designed.
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
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
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.
11/5/2002 (c) University of Wisconsin, CS 559 Last Time Local Shading –Diffuse term –Specular term –All together –OpenGL brief overview.
Local Illumination and Shading
Lighting and Shading Part 2. Global Ambient Light There are at least 8 OpenGL lights and 1 Global Ambient Setting the Global Ambient globalAmbient[] =
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
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)
03/19/2002(c) University of Wisconsin, CS 559 Last Time BSP Tree rendering and exact visibility in mazes Local Shading –Diffuse term –Specular term.
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.
Chapter 5. Lighting Computer Graphics (spring, 2009) School of Computer Science University of Seoul.
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.
© University of Wisconsin, CS559 Spring 2004
Unit-7 Lighting and Shading
Vectors, Normals, & Shading
© University of Wisconsin, CS559 Fall 2004
Shading in OpenGL Ed Angel
Fundamentals of Computer Graphics Part 6 Shading
Last Time Liang-Barsky Details Weiler-Atherton clipping algorithm
Computer Graphics (Fall 2003)
Illumination Model 고려대학교 컴퓨터 그래픽스 연구실.
Presentation transcript:

Where We Stand So far we know how to: –Transform between spaces –Rasterize –Decide what’s in front Next –Deciding its intensity and color

Normal Vectors The intensity of a surface depends on its orientation with respect to the light and the viewer –CDs are an extreme example The surface normal vector describes the orientation of the surface at a point –Mathematically: Vector that is perpendicular to the tangent plane of the surface What’s the problem with this definition? –Just “the normal vector” or “the normal” –Will use N to denote

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();

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

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

Local Shading Models (Watt 6.2) What they capture: –Direct illumination from light sources –Diffuse and Specular components –(Very) Approximate effects of global lighting What they don’t do: –Shadows –Mirrors –Refraction –Lots of other stuff …

“Standard” Lighting Model Consists of three terms linearly combined: –Diffuse component for the amount of incoming light reflected equally in all directions –Specular component for the amount of light reflected in a mirror-like fashion –Ambient term to approximate light arriving via other surfaces

Diffuse Illumination Incoming light, I i, from direction L, is reflected equally in all directions –No dependence on viewing direction Amount of light reflected depends on: –Angle of surface with respect to light source Actually, determines how much light is collected by the surface, to then be reflected –Diffuse reflectance coefficient of the surface, k d Don’t want to illuminate back side. Use

Diffuse Example Where is the light?

Specular Reflection (Phong Model) Incoming light is reflected primarily in the mirror direction, R –Perceived intensity depends on the relationship between the viewing direction, V, and the mirror direction –Bright spot is called a specularity Intensity controlled by: –The specular reflectance coefficient, k s –The parameter, n, controls the apparent size of the specularity Higher n, smaller highlight L R V

Specular Example

Specular Reflection Speedup Compute based on normal vector and “halfway” vector, H –Easier to compute than mirror direction –Same result LV NH

Putting It Together Global ambient intensity, I a : –Gross approximation to light bouncing around of all other surfaces –Modulated by ambient reflectance k a Just sum all the terms If there are multiple lights, sum contributions from each light Several variations, and approximations …

Color Do everything for three colors, r, g and b Note that some terms (the expensive ones) are constant For reasons we will not go into, this is an approximation, but few graphics practitioners realize it –Aliasing in color space –Better results use 9 color samples –Watt discusses it in section 15.4

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

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

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

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

Shading Interpolation The models we have discussed give the intensity of a single point –Computing these models for every point that is displayed is expensive –Normals may not be explicitly stated for every point Several options: –Flat shading –Gouraud interpolation –Phong interpolation New hardware does per-pixel programmable shading!!

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

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

Phong Interpolation Interpolate normals across faces Shade each pixel Advantages: –High quality, narrow specularities Disadvantages: –Expensive –Still an approximation for most surfaces Not to be confused with Phong’s specularity model

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

The Full Story We have only touched on the complexities of illuminating surfaces –The common model is hopelessly inadequate for accurate lighting (but it’s fast and simple) Consider two sub-problems of illumination –Where does the light go? Light transport –What happens at surfaces? Reflectance models Other algorithms address the transport or the reflectance problem, or both –Much later in class, or a separate course