1 / 43

Computer Graphics (fall 2009)

Computer Graphics (fall 2009). School of Computer Science University of Seoul. Chap 6: Shading. Light and Matter Light Sources The Phong Reflection Model Computation of Vectors Polygonal Shading Approximation of a Sphere by Recursive Subdivision Light Sources in OpenGL

vidal
Télécharger la présentation

Computer Graphics (fall 2009)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computer Graphics(fall 2009) School of Computer Science University of Seoul

  2. Chap 6: Shading • Light and Matter • Light Sources • The Phong Reflection Model • Computation of Vectors • Polygonal Shading • Approximation of a Sphere by Recursive Subdivision • Light Sources in OpenGL • Specification of Materials in OpenGL • Shading of the Sphere Model • Global Illumination

  3. 6.1 Light and Matter

  4. Rendering Methods • Rendering equation [Kaj86] • Integral eq. resulted by recursive scattering • Physics-based, slow to compute • Radiosity, raytracing (Ch.12) and photon mapping • Approximation of rendering equation for particular surfaces • Still slow • Phong reflection model • Fast!

  5. Rendering Equation • Proposed in “The rendering equation” (by James Kajiya, 1986) • Based on “conservation of energy”

  6. Radiosity • FEM (Finite Element Method) applied to solve the rendering equation • For scenes with diffuse surfaces

  7. Radiosity (cont’d) • Supported by 3D Max, EIAS, etc. (image courtesy of David Stoddard, EIAS) (image courtesy of JCM animation, EIAS)

  8. Raytracing • Rendering by tracing rays for each pixel from the viewer (camera) • Suitable for reflective surfaces (image courtesy of Wikipedia)

  9. Raytracing (cont’d) • Supported by POV-Ray, YafaRay, etc. (“Glasses” by Gilles Tran, POV-Ray) (“Nikon” by Bert Buchholz, YafaRay)

  10. Photon Mapping • Rays from the light source & camera are traced independently Image courtesy of Wikipedia)

  11. Light-Surface Interaction • Reflected, absorbed and transmitted • Depends on • opaqueness • wavelength- “Why does an object look red?” • roughness - “Why does an object look shiny?” • Orientation • etc.

  12. Surface Types • Specular surfaces • Diffuse surfaces • Translucent surfaces

  13. 6.2 Light Sources

  14. General Light Source Model • Can be modeled by an illumination function I(x,y,z,,,) • Each frequency consideredindependently • Total contribution can becomputed by integration • Directional properties canvary with frequency • Too complicated to compute

  15. Simplified Light Sources • Four types: ambient lighting, point sources, spotlights, and distant lights • Light sources with three components, RGB- based on “three-color theory” • Each component calculated independently • Intensity or luminance:

  16. Type #1: Ambient Light • Models uniform illumination • Simplified as an intensity that is identical at every point in the scene:

  17. Type #2: Point Sources • Located at p0: • Intensity received at p: • High contrast than surface light • Can be made soft bythe distance term:

  18. Type #3: Spotlights • Cone-shaped directional range • Distribution of the light within the cone usually defined by

  19. Type #4: Distant Light Sources • Rays can be assumed parallel • Direction instead of location:

  20. 6.3 The Phong Reflection Model

  21. Phong Reflection Model • Introduced by Phong • Four vectors used • Three types of material-light interactions – ambient, diffuse, and specular • Local model (image courtesy of Wikipedia)

  22. Phong Reflection Model (cont’d) • i-the light source: • Reflection terms for a material: • Contribution of each light color (e.g., red): • Contribution of all sources (e.g., red):

  23. #1: Ambient Reflection • Intensity same at every point on the surface • Depends on • Material property • Independent of • Location of the light source • Location of the viewer

  24. #2: Diffuse Reflection • Characterized by rough surfaces • Assumed to be “perfectly diffuse” • Depends on • Material property • Location of the light source • Independent of • Location of the viewer

  25. #2: Diffuse Reflection (cont’d) • Lambert’s law (for perfectly diffuse surface):

  26. #3: Specular Reflection • Characterized by smooth surfaces • Depends on • Material property • Location of the light source • Location of the viewer • “shininess coefficient” ()

  27. Phong Reflection Model

  28. Modified Phong Reflection Model • Modified by Blinn a.k.a. “Blinn-Phong Shading Model” • Simplified by halfway angle (h) for faster calculation • rv replaced by n h • Faster calculation when the lightand the viewer are at infinity (WHY?) • GL_LIGHT_MODEL_LOCAL_VIEWER • Default model in OpenGL

  29. 6.4 Computation of Vectors

  30. Computation of Vectors • How to compute the normal vector of • a triangle? • a (smooth) surface? • How to compute reflection vector?

  31. 6.5 Polygonal Shading

  32. Flat & Gouraud Shading • Flat shading • The normal of the first vertex used • Gouraud shading • Lighting calculation at vertices • Linearly interpolated at each fragment • Artifacts for coarse polygon

  33. Phong Shading • Lighting computation at each fragment • Not directly supported by OpenGL • Can be implemented using GLSL (OpenGL Shading Language)

  34. 6.6 Approximation of a Sphere by Recursive Subdivision

  35. 6.7 Light Sources in OpenGL

  36. Setting Lights • Enable/disable: • glEnable(GL_LIGHTING); • glEnable(GL_LIGHT#); • At least 8 lights • Positional or directional light: • glLight*(GL_LIGHT#, GL_POSITION, position); • Ambient, diffuse, specular components: • glLight*(GL_LIGHT#, GL_*, value); • GL_AMBIENT • GL_DIFFUSE • GL_SPECULAR

  37. Setting Lights (cont’d) • Global ambient: • glLightModel*(GL_LIGHT_MODEL_AMBIENT, value); • Distance-attenuation model: • glLight*(GL_LIGHT#, GL_*, value); • GL_CONSTANT_ATTENUATION (a) • GL_LINEAR_ATTENUATION (b) • GL_QUADRATIC_ATTENUATION (c) • Spotlight: • glLight*(GL_LIGHT#, GL_*, value); • GL_SPOT_DIRECTION • GL_SPOT_EXPONENT • GL_SPOT_CUTOFF ([0,90] or 180)

  38. Setting Lights (cont’d) • Infinite/local viewer: • glLightModel*(GL_LIGHT_MODEL_LOCAL_VIEWER, value); • One/two-sided lighting: • glLightModel*(GL_LIGHT_MODEL_TWO_SIDED, value); • Light sources are transformed by modelview matrices!

  39. 6.8 Specification of Materials in OpenGL

  40. Setting Materials • Material properties are OpenGL states! • Ambient, diffuse, specular, emissive: • glMaterial*v(face, GL_*, value); • GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_DIFFUSE_AND_SPECULAR • Emissive property • Does not affect any other surface (it’s not a light!) • Simply adds color • Shininess: • glMaterial*(face, GL_SHININESS, value); • Front/back/front&back: • GL_FRONT, GL_BACK, GL_FRONT_AND_BACK • glColorMaterial • Various materials: refer to teapots.c!

  41. Nate Robin’s Tutor • Try yourself!!!

  42. 6.9 Shading of the Sphere Model

  43. 6.10 Global Illumination

More Related