Computer Graphics (fall 2009)

1 / 43

# Computer Graphics (fall 2009) - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Computer Graphics (fall 2009)' - vidal

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Computer Graphics(fall 2009)

School of Computer Science

University of Seoul

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

### 6.1 Light and Matter

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!
Rendering Equation
• Proposed in “The rendering equation” (by James Kajiya, 1986)
• Based on “conservation of energy”
• FEM (Finite Element Method) applied to solve the rendering equation
• For scenes with diffuse surfaces
• Supported by 3D Max, EIAS, etc.

(image courtesy of David Stoddard, EIAS)

(image courtesy of JCM animation, EIAS)

Raytracing
• Rendering by tracing rays for each pixel from the viewer (camera)
• Suitable for reflective surfaces

(image courtesy of Wikipedia)

Raytracing (cont’d)
• Supported by POV-Ray, YafaRay, etc.

(“Glasses” by Gilles Tran, POV-Ray)

(“Nikon” by Bert Buchholz, YafaRay)

Photon Mapping
• Rays from the light source & camera are traced independently

Image courtesy of Wikipedia)

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.
Surface Types
• Specular surfaces
• Diffuse surfaces
• Translucent surfaces

### 6.2 Light Sources

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
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:
Type #1: Ambient Light
• Models uniform illumination
• Simplified as an intensity that is identical at every point in the scene:
Type #2: Point Sources
• Located at p0:
• High contrast than surface light
• Can be made soft bythe distance term:
Type #3: Spotlights
• Cone-shaped directional range
• Distribution of the light within the cone usually defined by
Type #4: Distant Light Sources
• Rays can be assumed parallel

### 6.3 The Phong Reflection Model

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)

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):
#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
#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
#2: Diffuse Reflection (cont’d)
• Lambert’s law (for perfectly diffuse surface):
#3: Specular Reflection
• Characterized by smooth surfaces
• Depends on
• Material property
• Location of the light source
• Location of the viewer
• “shininess coefficient” ()
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

### 6.4 Computation of Vectors

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

• The normal of the first vertex used
• Lighting calculation at vertices
• Linearly interpolated at each fragment
• Artifacts for coarse polygon
• Lighting computation at each fragment
• Not directly supported by OpenGL
• Can be implemented using GLSL (OpenGL Shading Language)

### 6.7 Light Sources in OpenGL

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
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)
• Spotlight:
• glLight*(GL_LIGHT#, GL_*, value);
• GL_SPOT_DIRECTION
• GL_SPOT_EXPONENT
• GL_SPOT_CUTOFF ([0,90] or 180)
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!

### 6.8 Specification of Materials in OpenGL

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