Computergrafik Thomas Buchberger, Matthias Zwicker Universität Bern Herbst 2008 Today Introduction Local shading models Light sources strategies Compute interaction of light with surfaces Requires simulation of physics Global illumination Multiple bounces of light Computationally expensive, minutes per image Movies, architectural design, etc. Global illumination Rendering algorithms, Winter 2009! (non-teapot images by Henrik Wann Jensen) Interactive applications No physics based simulation Simplified models Reproduce perceptually most important effects Local illumination Only one bounce of light between light source and viewer Rendering pipeline Scene data Modeling and viewing transformation Projection Different options for shading in rendering pipeline Determine colors of vertices Per vertex shading One bounce of light Surface Scan conversion, visibility Image while drawing triangles Per pixel shading 1
Today Introduction Local shading models Light sources strategies Local illumination What is giving a material its color? How is light reflected by a Mirror White sheet of paper Blue sheet of paper Glossy metal Local illumination Goal: model reflection of light at surfaces Bial reflectance distribution function (BRDF) Given light, viewing, how much light is reflected towards the viewer For any pair of light/viewing s! For R, G, B separately BRDF completely describes appearance of material BRDFs How to define and store BRDFs that represent physical materials? Physical measurements Gonioreflectometer: robot with light source and camera Measures reflection for each light/camera Store measurements in table Too much data, too slow for interactive applications Light source Material sample Camera Cornell University Gonioreflectometer Simplified model BRDF is sum of 3 components Each component is simple analytical function Covers a large class of real surfaces Simplified model BRDF is sum of 3 components Each component is simple analytical function Covers a large class of real surfaces diffuse specular ambient diffuse specular ambient 2
Diffuse reflection Ideal diffuse material reflects light equally in all s View-independent Surface looks the same independent d of viewing i Diffuse reflection Matte, not shiny materials Paper Unfinished wood Unpolished stone Diffuse sphere Lambert s cosine law Beam of parallel rays shining on a surface Area covered by beam varies with the angle between the beam and the normal The larger the area, the less incident light per area Incident light per unit area is proportional to the cosine of the angle between the normal and the light rays Object darkens as normal turns away from light Diffuse surfaces are also called Lambertian surfaces n n n Diffuse sphere Diffuse reflection Given Unit surface normal Unit light Material diffuse reflectance (material color) Light color (intensity) Diffuse color Diffuse reflection Notes Parameters are r,g,b vectors Compute r,g,b values of diffuse color separately Parameters in this model have no precise physical meaning strength, color of light source fraction of reflected light, material color Cosine between normal and light Diffuse reflection Provides visual cues Surface curvature Depth variation Lambertian (diffuse) sphere under different lighting s OpenGL/jogl Lights (gllight*) Values for light (0,0,0) is black, (1,1,1) is white OpenGL Values for diffuse reflection Fraction of reflected light Consult OpenGL book Online http://fly.cc.fer.hr/%7eunreal/theredbook/ 3
Simplified model BRDF is sum of 3 components Each component is simple analytical function Covers a large class of real surfaces Specular reflection Shiny surfaces Polished metal Glossy car finish Plastics Specular highlight diffuse specular ambient Blurred reflection of the light source Position of highlight depends on viewing Sphere with specular highlight Specular reflection Ideal specular reflection is mirror reflection Law of reflection Angle of incidence equals angle of reflection Perfectly smooth surface Incoming light ray is bounced in single Angle of incidence equals angle of reflection Glossy materials Many materials not quite perfect mirrors Glossy materials have blurry reflection of light source Physical model Assume surface composed of small mirrors with random orientation (microfacets) Smooth surfaces Microfacet normals close to surface normal Sharp highlights Rough surfaces Microfacet normals vary strongly Leads to blurry highlight Polished Smooth Glossy teapot with highlights from many light sources Rough Very rough 4
Physical model Expect most light to be reflect in mirror Because of microfacets, some light is reflected slightly off ideal reflection Reflection Brightest when view vector is aligned with reflection Decreases as angle between view vector and reflection increases Phong model Simple implementation of the physical model Specular reflectance coefficient Phong exponent Higher, smaller (sharper) highlight Phong model Blinn model (Jim Blinn, 1977) Alternative to Phong model Define unit halfway vector Halfway vector represents normal of microfacet that would lead to mirror reflection to the eye Blinn model The larger the angle between microfacet orientation and normal, the less likely Use cosine of angle between them Shininess parameter Very similar to Phong Simplified model BRDF is sum of 3 components Each component is simple analytical function Covers a large class of real surfaces diffuse specular ambient 5
Ambient light In real world, light is bounced all around scene Could use global illumination techniques to simulate Simple approximation Add constant ambient light at each point Ambient light Ambient reflection coefficient Areas with no direct illumination are not completely dark Complete model Blinn model with several light sources i diffuse specular ambient Notes All colors, reflection coefficients have separate values for R,G,B Usually, ambient = diffuse coefficient For metals, specular = diffuse coefficient Today Introduction Local shading models Light sources strategies Highlight is color of material For plastics, specular coefficient = (x,x,x) Highlight is color of light Light sources Light sources can have complex properties Geometric area over which light is produced Anisotropy in Variation in color Reflective surfaces act as light sources Interactive rendering is based on simple, standard light sources Light sources At each point on surfaces need to know Direction of incoming light (the L vector) Strength of incoming light (the c l values) Standard light sources in OpenGL Directional: from a specific Point light source: from a specific point Spotlight: from a specific point with intensity that depends on the 6
Directional light Light from a distant source Light rays are parallel Direction and strength constant everywhere in 3D scene As if the source were infinitely far away Good approximation to sunlight Specified by a unit length vector, and a color Point lights Simple model for light bulbs Point that radiates light in all s equally Light vector varies across the surface Intensity drops off proportionally to the inverse square of the distance from the light Intuition for inverse square falloff? Light source Receiving surface Point lights Attenuation p c src Light source c l v c l Receiving surface v Sometimes, it is desirable to modify the inverse square falloff behavior of point lights Common (OpenGL) model for distance attenuation c c l = src k c + k l p v + k q p v 2 Incident light Strength Not physically accurate Spotlights Like point source, but intensity depends on Parameters Position, the location of the source Spotlights Light source Spot, the center axis of the light Receiving surface Falloff parameters how broad the beam is (cone angle) how light tapers off at edges of he beam (cosine exponent) 7
Spotlights Today Introduction Local shading models Light sources strategies Photograph of spotlight Spotlights in OpenGL Per-triangle, -vertex, -pixel shading May compute shading operations Once per triangle Once per vertex Once per pixel Scene data Modeling and viewing transformation Projection Rasterization, visibility Per-triangle shading Known as flat shading Evaluate shading once per triangle Advantages Fast Disadvantages Faceted appearance Image Per-vertex shading Known as Gouraud shading (Henri Gouraud 1971) Interpolate vertex colors across triangles OpenGL default Advantages Fast Smoother than flat shading Disadvantages Problems with small highlights Per-pixel shading Also known as Phong interpolation (not to be confused with Phong illumination model) Rasterizer interpolates normals across triangles Illumination model evaluated at each pixel Implemented using programmable shaders (next week) Advantages Higher quality than Gouraud shading Disadvantages Much slower 8
Gouraud vs. per-pixel shading Gouraud has problems with highlights Could use more triangles What about shadows? Standard shading assumes light sources are always visible Does not determine if light is blocked Does not produce shadows Shadows require additional work Later in the course Gouraud Per-pixel Summary Local illumination (single bounce) is computed using BRDF BRDF captures appearance of a material Amount of reflected light for each pair of light/viewing s Simplified model for BRDF consists of diffuse + Phong/Blinn + ambient Lambert s law for diffuse surfaces Microfacet model for specular part Ambient to approximate multiple bounces Light source models Directional Point, spot, inverse square fall-off Different shading strategies Per triangle, Gouraud, per pixel Next time Programmable shaders 9