Reflection and Shading

Similar documents
Comp 410/510 Computer Graphics. Spring Shading

CS 325 Computer Graphics

Computer Graphics (CS 4731) Lecture 16: Lighting, Shading and Materials (Part 1)

Illumination & Shading I

Computer Graphics (CS 543) Lecture 7b: Intro to lighting, Shading and Materials + Phong Lighting Model

Illumination and Shading

Topic 9: Lighting & Reflection models 9/10/2016. Spot the differences. Terminology. Two Components of Illumination. Ambient Light Source

Topic 9: Lighting & Reflection models. Lighting & reflection The Phong reflection model diffuse component ambient component specular component

Introduction to Computer Graphics 7. Shading

Illumination & Shading

CS Computer Graphics: Illumination and Shading I

CS Computer Graphics: Illumination and Shading I

Raytracing. COSC 4328/5327 Scott A. King

CS Illumination and Shading. Slide 1

WHY WE NEED SHADING. Suppose we build a model of a sphere using many polygons and color it with glcolor. We get something like.

Visualisatie BMT. Rendering. Arjan Kok

Shading. Why we need shading. Scattering. Shading. Objectives

Local Illumination. CMPT 361 Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller

Objectives. Introduce Phong model Introduce modified Phong model Consider computation of required vectors Discuss polygonal shading.

ECS 175 COMPUTER GRAPHICS. Ken Joy.! Winter 2014

Today s class. Simple shadows Shading Lighting in OpenGL. Informationsteknologi. Wednesday, November 21, 2007 Computer Graphics - Class 10 1

CS5620 Intro to Computer Graphics

So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources.

Introduction to Computer Graphics. Farhana Bandukwala, PhD Lecture 14: Light Interacting with Surfaces

CPSC 314 LIGHTING AND SHADING

Simple Lighting/Illumination Models

Illumination Models & Shading

CS 4600 Fall Utah School of Computing

Three-Dimensional Graphics V. Guoying Zhao 1 / 55

Overview. Shading. Shading. Why we need shading. Shading Light-material interactions Phong model Shading polygons Shading in OpenGL

Computer Graphics. Shading. Based on slides by Dianna Xu, Bryn Mawr College

Virtual Reality for Human Computer Interaction

Lecture 15: Shading-I. CITS3003 Graphics & Animation

Rendering. Illumination Model. Wireframe rendering simple, ambiguous Color filling flat without any 3D information

Graphics for VEs. Ruth Aylett

Recollection. Models Pixels. Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows

Computer Graphics. Illumination and Shading

Computer Graphics. Illumination Models and Surface-Rendering Methods. Somsak Walairacht, Computer Engineering, KMITL

Photorealism: Ray Tracing

Graphics for VEs. Ruth Aylett

Computer Graphics. Illumination and Shading

Lighting and Shading

I have a meeting with Peter Lee and Bob Cosgrove on Wednesday to discuss the future of the cluster. Computer Graphics

Lighting. Figure 10.1

Chapter 10. Surface-Rendering Methods. Somsak Walairacht, Computer Engineering, KMITL

Graphics and Visualization

Illumination & Shading: Part 1

Lighting and Shading Computer Graphics I Lecture 7. Light Sources Phong Illumination Model Normal Vectors [Angel, Ch

w Foley, Section16.1 Reading

CS130 : Computer Graphics Lecture 8: Lighting and Shading. Tamar Shinar Computer Science & Engineering UC Riverside

Today we will start to look at illumination models in computer graphics

Shading I Computer Graphics I, Fall 2008

CPSC / Illumination and Shading

Computer Graphics. Ray Tracing. Based on slides by Dianna Xu, Bryn Mawr College

CSE 167: Introduction to Computer Graphics Lecture #6: Lights. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Lessons Learned from HW4. Shading. Objectives. Why we need shading. Shading. Scattering

Illumination and Shading

Computer Graphics. Lecture 10. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura 12/03/15

surface: reflectance transparency, opacity, translucency orientation illumination: location intensity wavelength point-source, diffuse source

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

Illumination in Computer Graphics

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

C O M P U T E R G R A P H I C S. Computer Graphics. Three-Dimensional Graphics V. Guoying Zhao 1 / 65

CS452/552; EE465/505. Intro to Lighting

9. Illumination and Shading

Today. Global illumination. Shading. Interactive applications. Rendering pipeline. Computergrafik. Shading Introduction Local shading models

6. Illumination, Lighting

Ray-Tracing. Misha Kazhdan

Illumination Model. The governing principles for computing the. Apply the lighting model at a set of points across the entire surface.

CS 488. More Shading and Illumination. Luc RENAMBOT

Illumination and Shading

CEng 477 Introduction to Computer Graphics Fall

Supplement to Lecture 16

Shading, Advanced Rendering. Week 7, Wed Feb 28

Introduction Ray tracing basics Advanced topics (shading) Advanced topics (geometry) Graphics 2010/2011, 4th quarter. Lecture 11: Ray tracing

Today. Global illumination. Shading. Interactive applications. Rendering pipeline. Computergrafik. Shading Introduction Local shading models

Objectives. Shading II. Distance Terms. The Phong Reflection Model

Illumination and Shading

CHAPTER5. We have learned to build three-dimensional graphical models and to LIGHTING AND SHADING

Why we need shading?

Announcements. Written Assignment 2 out (due March 8) Computer Graphics

Virtual Reality for Human Computer Interaction

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Lighting Models. CS116B Chris Pollett Mar 21, 2004.

Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007

INF3320 Computer Graphics and Discrete Geometry

Introduction to Visualization and Computer Graphics

COMP environment mapping Mar. 12, r = 2n(n v) v

Lighting and Shading II. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

CS3500 Computer Graphics Module: Lighting and Shading

Computer Graphics I Lecture 11

Sung-Eui Yoon ( 윤성의 )

CS580: Ray Tracing. Sung-Eui Yoon ( 윤성의 ) Course URL:

Local Illumination physics. Law of reflection and Snell s law of refraction

Computer Graphics 1. Chapter 7 (June 17th, 2010, 2-4pm): Shading and rendering. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

Shading and Illumination

Illumination and Shading

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Illumination Models and Surface-Rendering Methods. Chapter 10

Lecture 17: Recursive Ray Tracing. Where is the way where light dwelleth? Job 38:19

Transcription:

Reflection and Shading R. J. Renka Department of Computer Science & Engineering University of North Texas 10/19/2015

Light Sources Realistic rendering requires that we model the interaction between light and objects reflection from one surface to another; shadows; texture, color, and highlights (bright spots); and refraction through nonopaque objects. Light hitting a surface is reflected, absorbed, or transmitted through the surface. The surface is visible only if it reflects light. Incoming light is categorized into two types. Point light comes from a light emitting source (either a point source or a distributed source). Ambient light or background light comes from light reflecting sources in the scene and outside the scene. The key distinction is that a point light source has a direction associated with it, while ambient light comes from all directions.

Types of Reflection The physics of reflection is complex, but simple models are sufficient for computer graphics. There are two types of reflection. diffuse reflection is reflection from a rough surface in all directions. specular reflection is reflection from a smooth surface in a direction that depends on the direction to the source. Phong s model of reflection includes terms for diffuse reflection of both ambient light and point light, and specular reflection of point light.

Diffuse Reflection of Ambient Light Light hitting a rough surface is scattered in all directions, producing uniform illumination at any viewing position. The amount of light reflected (not absorbed) depends on the light color and the surface. Let (I r, I g, I b ) denote RGB intensities (normalized to [0,1]) of reflected light, and let (I ar, I ag, I ab ) be the intensities of an ambient light source. Then the contribution from ambient light to the total illumination at a surface point is I j = k dj I aj for j {r, g, b}, where k dj [0, 1] is the diffuse reflectivity for the j th primary the fraction of incoming light that is reflected. The reflectivities define the color of the surface. A red surface, for example, has k dg = k db = 0 because green and blue wavelengths are absorbed. Other terms for k dj include diffuse reflectance, diffuse reflection coefficient, and diffuse reflection constant.

Diffuse Reflection of Point Light Point light hits a surface point with an angle of incidence φ [0, π/2]: the angle between the surface normal N and a vector L that points to the light source. The direction of diffuse reflection is independent of φ, but the density (and hence intensity) of the point light hitting the surface is proportional to cos(φ) = L T N, assuming L and N are unit vectors. This is Lambert s Cosine Law. Also, intensity of light from a point source decreases with squared distance d 2, but Phong found that replacing d 2 with d works better. For point light intensities (I pr, I pg, I pb ), the model for the contribution to overall illumination is I j = I pj cos(φ) k dj /d for j {r, g, b}. The distance d to the light source is usually taken to be 1 if it is large relative to the illuminated surface area, implying a negligible difference at different surface points. Note, however, that if two surfaces of the same color are parallel and overlap in the projection plane, they will be indistinguishable unless d varies.

Specular Reflection of Point Light Specular reflectivity of a surface is its capacity to reflect incoming light in a nearly fixed direction without changing its color. Specular reflection produces highlights on shiny surfaces such as mirrors. The direction R of reflection is in the plane of L and N, and the angle of reflection is equal to the angle of incidence. The shininess of the surface determines the concentration of the reflected light around the reflection direction R, and hence the size of highlights. The intensity of the incoming light is scaled by cos n (θ), where θ [0, π/2] is the deviation from R. For any fixed θ (0, π/2), cos n (θ) decreases, and the reflected light becomes more concentrated around R, as shininess n increases. Values range from n = 1 for dull surfaces like cardboard to n = 150 or more for very shiny surfaces like polished silver, with n = for a perfect mirror. For viewing direction V, θ is the angle between R and V. The light source is visible if and only if θ is small or n is small. Note that V is generally not in the plane of L and N.

Specular Reflection of Point Light continued Phong s model for specular reflection of point light is I j = I pj k sj cos n (θ) for j {r, g, b}, where k sj is a constant that approximates specular reflectance a function that depends on the wavelength and angle of incidence φ. The ratio of specularly reflected light to incident light increases with φ because the amount of light absorbed, reflected diffusively, or transmitted decreases with φ (is larger at smaller angles of incidence). A sheet of glass, for example, transmits light hitting it at low incidence angle (face-on), but reflects light at high incidence angle. For materials like glass whose reflectance changes significantly with φ, k sj should be replaced by a function of φ. The three k sj values should be nearly identical so that the reflected light has the color of the point light source.

Phong s Illumination Model Combining the above expressions, we have the following reflection model. I r = I ar k dr + I pr (k dr cos(φ)/d + k sr cos n (θ)) I g = I ag k dg + I pg (k dg cos(φ)/d + k sg cos n (θ)) I b = I ab k db + I pb (k db cos(φ)/d + k sb cos n (θ)) Note the following. All intensity values, as well as reflectances, are in [0,1]. There is only one set of ambient light intensities I aj, but each point light source contributes terms associated with I pj. Parameter values must be determined experimentally. Specular reflection of ambient light is not included in the model. The effect of reflecting ambient light in all directions without changing its color would be to give the object some of the color of the ambient light.

Surface Normals Angles φ and θ depend on the surface normal direction N. The unit normal to a triangle with vertices v 1, v 2, and v 3 is computed by normalizing a cross product: N = (v 2 v 1 ) (v 3 v 1 )/ (v 2 v 1 ) (v 3 v 1 ). Smooth shading of a triangle mesh surface requires surface normals at vertices. We define the vertex surface normal as a normalized weighted average of the unit normals to the triangles that share the vertex. There are various weighting schemes that depend on the triangle sizes and shapes. The simple method of weighting all triangles equally is usually good enough. In the case of a smooth (regular) parametric surface S(u, v) = (x(u, v), y(u, v), z(u, v)), the first partial derivatives S u (u, v) = (x u (u, v), y u (u, v), z u (u, v)) and S v (u, v) = (x v (u, v), y v (u, v), z v (u, v)) are tangent to the surface, and their cross product S u S v (nonzero by assumption) is normal to the surface.

Transparency and Refraction Refraction is the deflection from a straight path undergone by a light ray in passing obliquely from one transparent medium into another in which its velocity is different. Snell s Law of Refraction: n sin φ = n sin φ, where n and n are indices of refraction, and φ, φ are angles of incidence. If 0 < φ < π/2 and n > n then sin φ = (n/n ) sin φ < sin φ and hence φ < φ; i.e., the light ray is bent toward the normal in passing from one medium, say air, into a medium with a larger index of refraction a denser material, such as glass or water. To render a scene involving refraction, the shift in direction of light rays must be accounted for. In addition to bending light, a transparent object weakens its intensity and changes its color; e.g., tinted sunglasses.

Shading Methods A polygonal surface can be made to appear smooth by means of smooth shading. There are three shading methods. Lambert Shading (or faceted shading or flat shading) consists of rendering each polygonal face with a single set of RGB intensities. This makes sense when both the viewer and light source are far from the surface, and the polygonal surface is not an approximation to a curved surface. Gouraud Shading consists of applying an illumination model only at the vertices, and computing colors for pixels not associated with vertices by linear interpolation of the vertex values. Phong Shading consists of applying the illumination model at every surface point associated with a pixel, but using normals obtained by linear interpolation (and renormalization) of the vertex unit normals.

Shading Methods continued By using interpolated intensities or normals, the intensities at a point on an edge depends only on the edge endpoint values. It follows that intensities vary continuously across the edge, despite the discontinuity in the surface normal, thus smoothing out the edge (unless it lies on a boundary not shared by two polygons). Note that polygonal silhouettes are unavoidable. When lighting is enabled, the OpenGL fixed pipeline uses Gouraud shading by default. Flat shading is more efficient, and should be used if it is acceptable. Note also, that the current drawing color is not used when lighting is enabled. Providing the option of using Phong shading is one of the reasons that shading languages have been developed as an alternative to the fixed pipeline.

Shading Methods continued The tradeoffs between the two smooth shading methods are as follows. Gouraud shading is cheaper because there are far fewer vertices than pixels, and linear interpolation is much cheaper than applying the illumination model. Gouraud shading suffers from poor highlights. Since the illumination model is applied only to vertices, specular reflections only show up for a small range of viewpoints. Also, moving the eye position, object, or light source causes the highlight to appear and disappear from the vicinity of vertices rather than move smoothly across the surface. Furthermore, interpolation smears out highlights, making them larger than they should be. These effects are especially bad for shiny surfaces and with animation. They are mitigated by using a larger number of smaller polygons.

OpenGL Illumination Model The illumination model used by OpenGL differs from Phong s model as follows. A light source may be either positional (w 0) or directional (w = 0). Instead of a single set of ambient light intensities I aj and point light intensities I pj for each point source, each light source has ambient, diffuse, and specular components. There are also global ambient light intensities not associated with any of the point sources. Realism requires identical diffuse and specular components the light color. OpenGL also allows a light-emitting material, adding terms to the reflected light intensities. A positional point light source can be a spotlight with a direction and an angle defining a cone.

OpenGL Illumination Model continued Instead of diffuse reflectivities k dj for both ambient and point light, different values may be used. Since they define the material color, they should be similar if not identical. Instead of the attenuation factor 1/d for diffuse reflection of point light, all three components (ambient, diffuse, and specular) are attenuated by 1/(k c + k l d + k q d 2 ) unless the point source is directional. Note that a light position is transformed to eye coordinates by the modelview matrix only at the time it is specified (by a call to gllightfv). If the light position is to be part of the scene, with position independent of the viewing perspective, the call to gllightfv must follow any change to the viewing transformations. If, on the other hand, a point light source is positioned at the origin with the modelview matrix set to the identity, it will effectively move with the eye position like a miner s helmet light.

Vertex Normal Vectors Lighting calculations require unit normal vectors at the vertices, and they must be transformed from object coordinates to eye coordinates in a manner that is consistent with vertex transformations by the modelview matrix. Suppose p and q are arbitrary vertices, n is a normal vector, and the modelview transformation is defined by Mp = Ap + t. In order to preserve the angle between p q and n it is necessary to preserve n T (p q). The solution is to transform n to A T n. Then (A T n) T (Mp Mq) = n T A 1 A(p q) = n T (p q). If A is a rotation, then the norm of n is preserved, but if A involves scaling, then n must be renormalized, either by glenable(gl NORMALIZE) or by glenable(gl RESCALE NORMAL) for uniform scaling by a constant derived from M, which is cheaper.

Global Illumination Global illumination models compute reflected light intensities at a surface point by taking into account all light sources, both direct and indirect, thus allowing for shadows, reflection of one object in another, and transparency/refraction. These methods are computationally intensive, and are not supported by the fixed OpenGL pipeline. There are two basic approaches. Ray Tracing treats only specular reflection and is view-dependent, hence too expensive for animation in real time. Radiosity treats only diffuse reflection and is view-independent. It is better for softly lit scenes with no sharp shadow boundaries and no shiny surfaces.

Ray Tracing Ray tracing in its simplest form works as follows. For each pixel in the viewport, cast a ray from the eye position through the point (in eye coordinates) that maps to the pixel center. Intersect the ray with all objects in the scene to find the point closest to the eye position, and apply the illumination model at that point. This replaces the z-buffer algorithm. Shadow feelers Cast a ray from a surface point to a point light source to determine if the light source is visible or occluded by intervening objects. Reflection Rays When a ray hits a surface point, reflect it in the direction of perfect specular reflection, and then treat it the same way as a ray from the eye position find the first surface intersection point, and calculate that point s illumination from all light sources. Continue this process recursively.

Ray Tracing continued The RGB intensities associated with the visible point (the intersection of the ray from the eye position with the scene) are computed as I = I local + ρ rg I reflect, where I local is the local illumination, I reflect is the illumination of the point in the direction of the first reflection ray (computed recursively), and ρ rg (rg for reflection, global) is a material property the fraction of light that is reflected. Transmission Rays When a ray hits the surface of a transparent or semi-transparent object (either entering or exiting), a transmission ray, along with a reflection ray, is generated and recursively traced. The model is then I = I local + ρ rg I reflect + ρ tg I xmit, where ρ tg (tg for transmission, global) is the fraction transmitted.

Radiosity Radiosity consists of four steps. 1 Mesh the scene with flat polygonal patches, each with its own intensities. Some patches are emissive (light sources). Since patches are assumed to be uniformly illuminated, they should be smaller in corners where diffuse reflection intensities change discontinuously with the normal direction. Time and memory requirements are O(n 2 ) for n patches. 2 Compute form factors F ij : the fraction of light from patch P i that hits patch P j directly. F ii = 0 and (assuming visibility) F ij = 1 cos φ i cos φ j A i πr 2 A i A j for i j, where A i is the area of patch P i, and φ i is the angle between the normal to P i and the line segment of length r connecting a point of P i to a point of P j. This is the O(n 2 ) algorithm. The cost can be halved by reciprocity: F ij A i = F ji A j. A simple quadrature rule is often sufficient.

Radiosity continued 3 Let B i denote the brightness (radiosity) of P i the light energy per unit area averaged over the patch. Let E i be the emissiveness (light energy per unit area) of P i. Let ρ i be the reflectivity fraction of incoming light that is diffusely reflected. Then B i = E i + ρ i B in and A i B in = n j=1 F jia j B j (total light entering P i ). Hence, from reciprocity, = n j=1 F ijb j and B i = E i + ρ n i j=1 F ijb j ; i.e., Bi in B = E + MB or i (I M)B = E for M ij = ρ i F ij. 4 Render the scene for a particular viewpoint: compute patch vertex brightness as weighted averages of patch brightness levels. Then use Gouraud shading to smooth by interpolation (bilinear interpolation for quadrilateral patches). i