INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Shading David Carr Virtual Environments, Fundamentals Spring 2005 Based on Slides by E. Angel 1 L Feb-22-05 SMM009, Shading Overview • Theory - Shading for 3D appearance - Light-material interactions - The Phong model • OSG - OSG methods • Gouraud Shading 2 L Feb-22-05 SMM009, Shading INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Shading Theory 3 L Feb-22-05 SMM009, Shading 1
Why We Need Shading • Model of a sphere using many polygons and color it with a single color: - We get something like - But we want 4 L Feb-22-05 SMM009, Shading Shading • Why does the image of a real sphere look like • Light-material interactions cause each point to have a different color or shade • Need to consider - Light sources - Material properties - Location of viewer - Surface orientation 5 L Feb-22-05 SMM009, Shading Scattering • Light strikes A - Some scattered - Some absorbed • Some of scattered light strikes B - Some scattered - Some absorbed • Some of this scattered light strikes A and so on 6 L Feb-22-05 SMM009, Shading 2
Rendering Equation • The infinite scattering and absorption of light can be described by the rendering equation - Cannot be solved in general - Ray tracing is a special case for perfectly reflecting surfaces • Rendering equation is global and includes - Shadows - Multiple scattering from object to object 7 L Feb-22-05 SMM009, Shading Global Effects shadow multiple reflection translucent surface 8 L Feb-22-05 SMM009, Shading Local versus Global Rendering • Correct shading requires: - Global calculation involving all objects and light sources - Incompatible with pipeline model which shades each polygon independently (local rendering) • However, in computer graphics, especially real time graphics, we are happy if things “look right” - Many techniques for approximating global effects 9 L Feb-22-05 SMM009, Shading 3
Light-Material Interaction • Light that strikes an object is: - Partially absorbed and - Partially scattered (reflected) • The amount reflected determines the color and brightness of the object - A surface appears red under white light because the red component of the light is reflected and the rest is absorbed • The reflected light is scattered in a manner that depends on the smoothness and orientation of the surface 10 L Feb-22-05 SMM009, Shading Light Sources • General light sources are difficult to work with because we must integrate light coming from all points on the source 11 L Feb-22-05 SMM009, Shading Simple Light Sources • Point source - Model with position and color - Distant source = infinite distance away (parallel) • Spotlight - Restrict light from ideal point source • Ambient light - Same amount of light everywhere in scene - Can model contribution of many sources and reflecting surfaces 12 L Feb-22-05 SMM009, Shading 4
Surface Types • The smoother a surface, the more reflected light is concentrated in the direction a perfect mirror would reflected the light • A very rough surface scatters light in all directions rough surface smooth surface 13 L Feb-22-05 SMM009, Shading Phong Model • A simple model that can be computed rapidly • Has three components - Diffuse - Specular - Ambient • Uses four vectors - To source - To viewer - Normal - Perfect reflector 14 L Feb-22-05 SMM009, Shading Ideal Reflector • Normal is determined by local orientation • Angle of incidence = angle of reflection • The three vectors must be coplanar r = 2 ( l · n ) n - l 15 L Feb-22-05 SMM009, Shading 5
Solving for the Reflection Vector • Note, let l, n, r be unit vectors - The angle of incidence = the angle of reflection - The reflection is co-planer with the normal and the vector to the light source. - Two equations and 2 unknowns • From the 1 st , θ i = θ r , so cos θ i = cos θ r , thus, l · n = r · n • From the 2 nd , r is a linear combination of n, l thus, r = α l + β n • Take the above and dot with n , solve for β r · n = α l · n + β l · n = α l · n + β β = ( α -1)(l · n ) • But, r is of unit length, so 1 = r · r = α 2 + 2 αβ l · n + β 2 • Solving gives r = 2(l · n)n - l 16 L Feb-22-05 SMM009, Shading Normal for Triangle n p 2 plane n ·( p - p 0 ) = 0 n = ( p 2 - p 0 ) × ( p 1 - p 0 ) p p 1 normalize n ← n/ |n| p 0 Note that right-hand rule determines outward face 17 L Feb-22-05 SMM009, Shading Lambertian Surface • Perfectly diffuse reflector • Light scattered equally in all directions • Amount of light reflected is proportional to the vertical component of incoming light - reflected light ~ cos θ i - cos θ i = l · n if vectors normalized - There are also three coefficients, k r , k b , k g that show how much of each color component is reflected 18 L Feb-22-05 SMM009, Shading 6
Specular Surfaces • Most surfaces are neither ideal diffusers nor perfectly specular (ideal reflectors) • Smooth surfaces show specular highlights due to incoming light being reflected in directions concentrated close to the direction of a perfect reflection Specular highlight 19 L Feb-22-05 SMM009, Shading Modeling Specular Reflections • Phong proposed using a term that dropped off as the angle between the viewer and the ideal reflection increased I r ~ k s I cos α φ φ shininess coefficient reflected incoming intensity intensity absorption coefficient 20 L Feb-22-05 SMM009, Shading The Shininess Coefficient • Values of α between 100 and 200 correspond to metals • Values between 5 and 10 give surface that look like plastic cos α φ 90 21 L -90 φ Feb-22-05 SMM009, Shading 7
Ambient Light • Ambient light is the result of multiple interactions between (large) light sources and the objects in the environment • Amount and color depend on both the color of the light(s) and the material properties of the object • Add k a I a to diffuse and specular terms reflection coefficient intensity of ambient light 22 L Feb-22-05 SMM009, Shading Distance Terms • The light from a point source that reaches a surface is inversely proportional to the square of the distance between them • We can add a factor of the form 1/(a + bd +cd 2 ) to the diffuse and specular terms • The constant and linear terms soften the effect of the point source 23 L Feb-22-05 SMM009, Shading Light Sources • In the Phong Model, we add the results from each light source • Each light source has separate diffuse, specular, and ambient terms to allow for maximum flexibility even though this form does not have a physical justification • Separate red, green and blue components • Hence, 9 coefficients for each point source - I dr , I dg , I db , I sr , I sg , I sb , I ar , I ag , I ab 24 L Feb-22-05 SMM009, Shading 8
Material Properties • Material properties match light source properties - Nine absorption coefficients +k dr , k dg , k db , k sr , k sg , k sb , k ar , k ag , k ab - Shininess coefficient α 25 L Feb-22-05 SMM009, Shading Adding up the Components • For each light source and each color component, the Phong model can be written (without the distance terms) as I =k d I d l · n + k s I s (v · r ) α + k a I a • For each color component we add contributions from all sources 26 L Feb-22-05 SMM009, Shading Example • Only differences in these teapots are the parameters in the Phong model 27 L Feb-22-05 SMM009, Shading 9
INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Shading in OSG 28 L Feb-22-05 SMM009, Shading Steps in OSG Shading • Specify material properties - setDiffuse,setSpecular, setAmbient + Take a 4D vector, RGB α + For RGB 1.0=100% reflectivity, 0.0=0% + For α , 1.0=opaque, 0.0=transparent - setShininess, bigger gives smaller specular highlights • Specify normal vectors - Default for OSG primitive objects - In OSG the normal vector is part of the drawable - Usually bound per vertex 29 L Feb-22-05 SMM009, Shading Steps in OSG Shading • Specify lights, point sources - setLightNum, different for each source, limited but at least 8 - setPosition, 4D vector, w=1 for finite distance, 0 for infinite - setDirection, 3D vector pointing in light’s direction - setDiffuse, setSpecular, setAmbient + 4D vectors RBG α , α is used for blending • Construct StateSet for - Materials, attached to objects (drawables, Geodes) - Root, gets the lights - Stick the lights in a LightSource and enable LightSource.setStateSetModes(); • See LightDemo.java 30 L Feb-22-05 SMM009, Shading 10
Video with Commentary 31 L Feb-22-05 SMM009, Shading Notes on Lights • Spotlights - Model cone - Variable intensity - Proportional to cosaf φ −θ θ • Global Ambient Light - Ambient light depends on color of light sources - A red light in a white room will cause a red ambient term that disappears when the light is turned off 32 L Feb-22-05 SMM009, Shading Moving Light Sources • Light sources are geometric objects whose positions or directions are affected by their position in the scene graph • Depending on where we place them, we can - Move the light source(s) with the object(s) - Fix the object(s) and move the light source(s) - Fix the light source(s) and move the object(s) - Move the light source(s) and object(s) independently 33 L Feb-22-05 SMM009, Shading 11
Recommend
More recommend