University of British Columbia CPSC 314 Computer Graphics Sep-Dec Tamara Munzner (guest lecturing) Lighting/Shading

Similar documents
Lighting/Shading III. Week 7, Wed Mar 3

CPSC 314 LIGHTING AND SHADING

Lighting/Shading II. Week 7, Mon Mar 1

Computer Graphics. Illumination and Shading

Lighting/Shading I, II, III. Week 3, Tue May 24

Illumination & Shading: Part 1

Illumination and Shading

Page 1. News. Lighting/Shading I, II, III. Week 3, Tue May 24. Homework 2 Clarification. Clarification: N2D General Formulation. Reading: Next Time

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

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

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

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

Sung-Eui Yoon ( 윤성의 )

Shading, Advanced Rendering. Week 7, Wed Feb 28

Reading. Shading. An abundance of photons. Introduction. Required: Angel , 6.5, Optional: Angel 6.4 OpenGL red book, chapter 5.

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

Shading and Illumination

CMSC427 Shading Intro. Credit: slides from Dr. Zwicker

CS5620 Intro to Computer Graphics

Illumination & Shading

Reading. Shading. Introduction. An abundance of photons. Required: Angel , Optional: OpenGL red book, chapter 5.

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

Illumination and Shading

CSE 167: Lecture #7: Color and Shading. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

OpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.

w Foley, Section16.1 Reading

Illumination Models & Shading

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

Computer Graphics. Illumination and Shading

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

INF3320 Computer Graphics and Discrete Geometry

CPSC / Illumination and Shading

LIGHTING AND SHADING

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

Light Transport Baoquan Chen 2017

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

Light Sources. Spotlight model

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

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

Shading. Brian Curless CSE 457 Spring 2015

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

Shading. Brian Curless CSE 557 Autumn 2017

Three-Dimensional Graphics V. Guoying Zhao 1 / 55

Illumination and Shading

CS Computer Graphics: Illumination and Shading I

CS Computer Graphics: Illumination and Shading I

Shading. CSE 457 Winter 2015

Shading. Brian Curless CSE 457 Spring 2017

Illumination and Shading

Methodology for Lecture. Importance of Lighting. Outline. Shading Models. Brief primer on Color. Foundations of Computer Graphics (Spring 2010)

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

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

Illumination and Shading ECE 567

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

Virtual Reality for Human Computer Interaction

Why we need shading?

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

Reflection and Shading

Pipeline Operations. CS 4620 Lecture 10

Lighting and Shading

CEng 477 Introduction to Computer Graphics Fall

ECS 175 COMPUTER GRAPHICS. Ken Joy.! Winter 2014

Shading I Computer Graphics I, Fall 2008

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

Illumination and Shading

Scan Conversion- Polygons

Lecture 15: Shading-I. CITS3003 Graphics & Animation

CS770/870 Spring 2017 Color and Shading

Introduction to Computer Graphics 7. Shading

Illumination. Illumination CMSC 435/634

Introduction Rasterization Z-buffering Shading. Graphics 2012/2013, 4th quarter. Lecture 09: graphics pipeline (rasterization and shading)

CSE 681 Illumination and Phong Shading

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

Comp 410/510 Computer Graphics. Spring Shading

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

Shading. Reading. Pinhole camera. Basic 3D graphics. Brian Curless CSE 557 Fall Required: Shirley, Chapter 10

Illumination & Shading I

Illumination & Shading

Visualisatie BMT. Rendering. Arjan Kok

Simple Lighting/Illumination Models

Shading 1: basics Christian Miller CS Fall 2011

Ambient reflection. Jacobs University Visualization and Computer Graphics Lab : Graphics and Visualization 407

Pipeline Operations. CS 4620 Lecture 14

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

Illumination in Computer Graphics

Mach band effect. The Mach band effect increases the visual unpleasant representation of curved surface using flat shading.

CSE 167: Lecture #8: Lighting. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Shading , Fall 2004 Nancy Pollard Mark Tomczak

Rendering: Reality. Eye acts as pinhole camera. Photons from light hit objects

Shading Intro. Shading & Lighting. Light and Matter. Light and Matter

Raytracing. COSC 4328/5327 Scott A. King

Introduction. Lighting model Light reflection model Local illumination model Reflectance model BRDF

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

CS Surface Rendering

CS452/552; EE465/505. Intro to Lighting

Shading / Light. Thanks to Srinivas Narasimhan, Langer-Zucker, Henrik Wann Jensen, Ravi Ramamoorthi, Hanrahan, Preetham

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

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

CS Illumination and Shading. Slide 1

Transcription:

University of British Columbia CPSC 314 Computer Graphics Sep-Dec 2010 Tamara Munzner (guest lecturing) Lighting/Shading

Lighting 2

Rendering Pipeline Geometry Database Model/View Transform. Lighting Perspective Transform. Clipping Scan Conversion Texturing Depth Test Blending Framebuffer 3

Projective Rendering Pipeline object world viewing O2W OCS WCS W2V VCS modeling transformation OCS - object/model coordinate system WCS - world coordinate system viewing transformation VCS - viewing/camera/eye coordinate system CCS - clipping coordinate system NDCS - normalized device coordinate system DCS - device/display/screen coordinate system V2C projection transformation C2N perspective divide N2D viewport transformation clipping CCS normalized device NDCS device DCS 4

Goal simulate interaction of light and objects fast: fake it! approximate the look, ignore real physics get the physics (more) right BRDFs: Bidirectional Reflection Distribution Functions local model: interaction of each object with light global model: interaction of objects with each other 5

Photorealistic Illumination transport of energy from light sources to surfaces & points global includes direct and indirect illumination more later [electricimage.com] electricimage.com] Henrik Wann Jensen 6

Illumination in the Pipeline local illumination only models light arriving directly from light source no interreflections or shadows can be added through tricks, multiple rendering passes light sources simple shapes materials simple, non-physical reflection models 7

Light Sources types of light sources gllightfv(gl_light0,gl_position,light[]) directional/parallel lights real-life example: sun infinitely far source: homogeneous coord w=0 point lights same intensity in all directions & x# $! $ y! spot lights $ z! $! limited set of directions: % 1" point+direction+cutoff angle & x# $! $ y! $ z! $! % 0" 8

area lights Light Sources light sources with a finite area more realistic model of many light sources not available with projective rendering pipeline (i.e., not available with OpenGL) 9

ambient lights Light Sources no identifiable source or direction hack for replacing true global illumination (diffuse interreflection: light bouncing off from other objects) 10

Diffuse Interreflection 11

Ambient Light Sources scene lit only with an ambient light source Light Position Not Important Viewer Position Not Important Surface Angle Not Important 12

Directional Light Sources scene lit with directional and ambient light Surface Angle Important Light Position Not Important Viewer Position Not Important 13

Point Light Sources scene lit with ambient and point light source Light Position Important Viewer Position Important Surface Angle Important 14

Light Sources geometry: positions and directions standard: world coordinate system effect: lights fixed wrt world geometry demo: http://www.xmission.com/~nate/tutors.html alternative: camera coordinate system effect: lights attached to camera (car headlights) points and directions undergo normal model/view transformation illumination calculations: camera coords 15

Types of Reflection specular (a.k.a. mirror or regular) reflection causes light to propagate without scattering. diffuse reflection sends light in all directions with equal energy. mixed reflection is a weighted combination of specular and diffuse. 16

Specular Highlights Michiel van de Panne 17

Types of Reflection retro-reflection occurs when incident energy reflects in directions close to the incident direction, for a wide range of incident directions. gloss is the property of a material surface that involves mixed reflection and is responsible for the mirror like appearance of rough surfaces. 18

Reflectance Distribution Model most surfaces exhibit complex reflectances vary with incident and reflected directions. model with combination + + = specular + glossy + diffuse = reflectance distribution 19

Surface Roughness at a microscopic scale, all real surfaces are rough cast shadows on themselves mask reflected light: shadow shadow Masked Light 20

Surface Roughness notice another effect of roughness: each microfacet is treated as a perfect mirror. incident light reflected in different directions by different facets. end result is mixed reflectance. smoother surfaces are more specular or glossy. random distribution of facet normals results in diffuse reflectance. 21

Physics of Diffuse Reflection ideal diffuse reflection very rough surface at the microscopic level real-world example: chalk microscopic variations mean incoming ray of light equally likely to be reflected in any direction over the hemisphere what does the reflected intensity depend on? 22

Lambert s Cosine Law ideal diffuse surface reflection the energy reflected by a small portion of a surface from a light source in a given direction is proportional to the cosine of the angle between that direction and the surface normal reflected intensity independent of viewing direction depends on surface orientation wrt light often called Lambertian surfaces 23

Lambert s Law intuitively: cross-sectional area of the beam intersecting an element of surface area is smaller for greater angles with the normal. 24

Computing Diffuse Reflection depends on angle of incidence: angle between surface normal and incoming light I diffuse = k d I light cos θ l n in practice use vector arithmetic I diffuse = k d I light (n l) θ always normalize vectors used in lighting!!! n, l should be unit vectors scalar (B/W intensity) or 3-tuple or 4-tuple (color) k d : diffuse coefficient, surface color I light : incoming light intensity I diffuse : outgoing light intensity (for diffuse reflection) 25

Diffuse Lighting Examples Lambertian sphere from several lighting angles: need only consider angles from 0 to 90 why? demo: Brown exploratory on reflection http://www.cs.brown.edu/exploratories/freesoftware/repository/edu/brown/cs/ex ploratories/applets/reflection2d/reflection_2d_java_browser.html 26

Specular Reflection shiny surfaces exhibit specular reflection polished metal glossy car finish diffuse diffuse plus specular highlight bright spot from light shining on a specular surface view dependent highlight position is function of the viewer s position specular 27

Physics of Specular Reflection at the microscopic level a specular reflecting surface is very smooth thus rays of light are likely to bounce off the microgeometry in a mirror-like fashion the smoother the surface, the closer it becomes to a perfect mirror 28

Optics of Reflection reflection follows Snell s Law: incoming ray and reflected ray lie in a plane with the surface normal angle the reflected ray forms with surface normal equals angle formed by incoming ray and surface normal θ (l)ight = θ (r)eflection 29

Non-Ideal Specular Reflectance Snell s law applies to perfect mirror-like surfaces, but aside from mirrors (and chrome) few surfaces exhibit perfect specularity how can we capture the softer reflections of surface that are glossy, not mirror-like? one option: model the microgeometry of the surface and explicitly bounce rays off of it or 30

Empirical Approximation we expect most reflected light to travel in direction predicted by Snell s Law but because of microscopic surface variations, some light may be reflected in a direction slightly off the ideal reflected ray as angle from ideal reflected ray increases, we expect less light to be reflected 31

angular falloff Empirical Approximation how might we model this falloff? 32

Phong Lighting most common lighting model in computer graphics (Phong Bui-Tuong, 1975) I specular = k s I light (cos") n shiny n shiny : purely empirical constant, varies rate of falloff k s : specular coefficient, highlight color no physical basis, works ok in practice v 33

Phong Lighting: The n shiny Term Phong reflectance term drops off with divergence of viewing angle from ideal reflected ray what does this term control, visually? Viewing angle reflected angle 34

Phong Examples varying l varying n shiny 35

Calculating Phong Lighting compute cosine term of Phong lighting with vectors I specular = k s I light (v r) n shiny v: unit vector towards viewer/eye r: ideal reflectance direction (unit vector) k s : specular component highlight color I light : incoming light intensity v how to efficiently calculate r? 36

Calculating R Vector P = N cos θ = projection of L onto N L N θ P 37

Calculating R Vector P = N cos θ = projection of L onto N P = N ( N L ) L N θ P 38

Calculating R Vector P = N cos θ L N projection of L onto N P = N cos θ L, N are unit length P = N ( N L ) N L θ P 39

Calculating R Vector P = N cos θ L N projection of L onto N P = N cos θ L, N are unit length P = N ( N L ) 2 P = R + L 2 P L = R 2 (N ( N L )) - L = R L N θ P P L R 40

Phong Lighting Model combine ambient, diffuse, specular components # lights I total = k a I ambient + " I i ( k d (n l i ) + k s (v r i ) nshiny ) i=1 commonly called Phong lighting once per light once per color component reminder: normalize your vectors when calculating! normalize all vectors: n,l,r,v 41

Phong Lighting: Intensity Plots 42

Blinn-Phong Model variation with better physical interpretation Jim Blinn, 1977 I out (x) = k s (h n) n shiny I in (x);with h = (l + v) /2 h: halfway vector h must also be explicitly normalized: h / h highlight occurs when h near n h l n v 43

quadratic falloff Light Source Falloff brightness of objects depends on power per unit area that hits the object the power per unit area for a point or spot light decreases quadratically with distance Area 4πr 2 Area 4π(2r) 2 44

Light Source Falloff non-quadratic falloff many systems allow for other falloffs allows for faking effect of area light sources OpenGL / graphics hardware I o : intensity of light source x: object point r: distance of light from x I in (x) = 1 ar 2 + br + c " I 0 45

lighting models ambient Lighting Review normals don t matter Lambert/diffuse angle between surface normal and light Phong/specular surface normal, light, and viewpoint 46

Lighting in OpenGL light source: amount of RGB light emitted value represents percentage of full intensity e.g., (1.0,0.5,0.5) every light source emits ambient, diffuse, and specular light materials: amount of RGB light reflected value represents percentage reflected e.g., (0.0,1.0,0.5) interaction: multiply components red light (1,0,0) x green surface (0,1,0) = black (0,0,0) 47

Lighting in OpenGL gllightfv(gl_light0, GL_AMBIENT, amb_light_rgba ); gllightfv(gl_light0, GL_DIFFUSE, dif_light_rgba ); gllightfv(gl_light0, GL_SPECULAR, spec_light_rgba ); gllightfv(gl_light0, GL_POSITION, position); glenable(gl_light0); glmaterialfv( GL_FRONT, GL_AMBIENT, ambient_rgba ); glmaterialfv( GL_FRONT, GL_DIFFUSE, diffuse_rgba ); glmaterialfv( GL_FRONT, GL_SPECULAR, specular_rgba ); glmaterialfv( GL_FRONT, GL_SHININESS, n ); warning: glmaterial is expensive and tricky use cheap and simple glcolor when possible see OpenGL Pitfall #14 from Kilgard s list http://www.opengl.org/resources/features/kilgardtechniques/oglpitfall/ 48

Shading 49

lighting Lighting vs. Shading process of computing the luminous intensity (i.e., outgoing light) at a particular 3-D point, usually on a surface shading the process of assigning colors to pixels (why the distinction?) 50

Applying Illumination we now have an illumination model for a point on a surface if surface defined as mesh of polygonal facets, which points should we use? fairly expensive calculation several possible answers, each with different implications for visual quality of result 51

Applying Illumination polygonal/triangular models each facet has a constant surface normal if light is directional, diffuse reflectance is constant across the facet why? 52

Flat Shading simplest approach calculates illumination at a single point for each polygon obviously inaccurate for smooth surfaces 53

Flat Shading Approximations if an object really is faceted, is this accurate? no! for point sources, the direction to light varies across the facet for specular reflectance, direction to eye varies across the facet 54

Improving Flat Shading what if evaluate Phong lighting model at each pixel of the polygon? better, but result still clearly faceted for smoother-looking surfaces we introduce vertex normals at each vertex usually different from facet normal used only for shading think of as a better approximation of the real surface that the polygons approximate 55

Vertex Normals vertex normals may be provided with the model computed from first principles approximated by averaging the normals of the facets that share the vertex 56

Gouraud Shading most common approach, and what OpenGL does perform Phong lighting at the vertices linearly interpolate the resulting colors over faces along edges along scanlines edge: mix of c 1, c 2 C 1 does this eliminate the facets? C 3 interior: mix of c1, c2, c3 C 2 edge: mix of c1, c3 57

Gouraud Shading Artifacts often appears dull, chalky lacks accurate specular component if included, will be averaged over entire polygon C 1 C 1 C 3 C 3 C 2 this interior shading missed! C 2 this vertex shading spread over too much area 58

Gouraud Shading Artifacts Mach bands eye enhances discontinuity in first derivative very disturbing, especially for highlights 59

Mach bands Gouraud Shading Artifacts C 1 C 4 C 3 C 2 Discontinuity in rate of color change occurs here 60

Gouraud Shading Artifacts perspective transformations affine combinations only invariant under affine, not under perspective transformations thus, perspective projection alters the linear interpolation! Image plane Z into the scene 61

Gouraud Shading Artifacts perspective transformation problem colors slightly swim on the surface as objects move relative to the camera usually ignored since often only small difference usually smaller than changes from lighting variations to do it right either shading in object space or correction for perspective foreshortening expensive thus hardly ever done for colors 62

Phong Shading linearly interpolating surface normal across the facet, applying Phong lighting model at every pixel same input as Gouraud shading pro: much smoother results con: considerably more expensive not the same as Phong lighting common confusion Phong lighting: empirical model to calculate illumination at a point on a surface 63

Phong Shading linearly interpolate the vertex normals compute lighting equations at each pixel can use specular component N 1 # lights # i=1 I total = k a I ambient + I i k d n" l i ( ( ) + k ( s v" r ) n ) shiny i remember: normals used in diffuse and specular terms N 4 N 2 N 3 discontinuity in normal s rate of change harder to detect 64

Phong Shading Difficulties computationally expensive per-pixel vector normalization and lighting computation! floating point operations required lighting after perspective projection messes up the angles between vectors have to keep eye-space vectors around no direct support in pipeline hardware but can be simulated with texture mapping stay tuned for modern hardware: shaders 65

Shading Artifacts: Silhouettes polygonal silhouettes remain Gouraud Phong 66

Shading Artifacts: Orientation interpolation dependent on polygon orientation view dependence! A B D Rotate -90 o and color same point C B ι A C Interpolate between AB and AD D Interpolate between CD and AD 67

Shading Artifacts: Shared Vertices D C H vertex B shared by two rectangles on the right, but not by the one on the left B G first portion of the scanline is interpolated between DE and AC E A F second portion of the scanline is interpolated between BC and GH a large discontinuity could arise 68

Shading Models Summary flat shading compute Phong lighting once for entire polygon Gouraud shading compute Phong lighting at the vertices and interpolate lighting values across polygon Phong shading compute averaged vertex normals interpolate normals across polygon and perform Phong lighting across polygon 69

Shutterbug: Flat Shading 70

Shutterbug: Gouraud Shading 71

Shutterbug: Phong Shading 72

Non-Photorealistic Shading cool-to-warm shading k w = 1+ n" l 2,c = k w c w + (1# k w )c c http://www.cs.utah.edu/~gooch/sig98/paper/drawing.html 73

Non-Photorealistic Shading draw silhouettes: if draw creases: if (e " n 0 )(e " n 1 ) # 0 (n 0 " n 1 ) # threshold, e=edge-eye vector http://www.cs.utah.edu/~gooch/sig98/paper/drawing.html 74

Computing Normals per-vertex normals by interpolating per-facet normals OpenGL supports both computing normal for a polygon b c a 75

Computing Normals per-vertex normals by interpolating per-facet normals OpenGL supports both computing normal for a polygon three points form two vectors b c c-b a-b a 76

Computing Normals per-vertex normals by interpolating per-facet normals OpenGL supports both computing normal for a polygon three points form two vectors cross: normal of plane gives direction normalize to unit length! (a-b) x (c-b) b which side is up? convention: points in counterclockwise order c c-b a-b a 77

Specifying Normals OpenGL state machine uses last normal specified if no normals specified, assumes all identical per-vertex normals glnormal3f(1,1,1); glvertex3f(3,4,5); glnormal3f(1,1,0); glvertex3f(10,5,2); per-face normals glnormal3f(1,1,1); glvertex3f(3,4,5); glvertex3f(10,5,2); normal interpreted as direction from vertex location can automatically normalize (computational cost) glenable(gl_normalize); 78