CS248 Final Review CS248 Final • Thurs, December 12, 7-10 pm, Gates B01, B03 • Mainly from material in the second half of the quarter – will not include material from last part of last lecture (volume rendering, image-based rendering) • Review session slides available from class website • Office hours as regularly scheduled CS248 Final Review Contents • • • • Image warping, texture mapping Perspective Visibility Lighting / Shading Texture Mapping • Coordinate systems – [u,v,q] => [xo, yo zo, wo] => [xw, yw zw, ww] => [x, y, w] – Assuming all transforms are linear, then – [A][u, v, q]’ = [x, y, w] • Common mappings – forward mapping (scatter), texture->screen – backward mapping (gather) Texture Warps • Rotation, translation • perspective • Minification (decimation) – unweighted average: average projected texel elements that fall within a pixel’s filter support – area-weighted average: average based on area of texel support Texture Warps • Magnification – Unweighted – Area-weighted – bilinear interpolation = texel = pixel Textures 1.Mipmapping 1.multi-resolution texture 2.bilinear interpolation at 2 closest resolutions to get 2 color values 3.linear interpolate 2 color values based on actual resolution 2.Summed area tables 1.fast calculation of prefilter integral in texture space Viewing: Planar Projections • Perspective Projection – rays pass through center of projection – parallel lines intersect at vanishing points • Parallel Projection – center of projection is at infinity – oblique – orthographic How many vanishing points are there in an image produced by parallel projection ? Specifying Perspective Views • Observer position (eye, center of projection) • Viewing direction (normal to picture plane) • Clipping planes (near, far, top, bottom, left, right) Viewing: OpenGL Pipeline • • • • • Object Space Eye Coordinates Projection Matrix Clipped to Frustum Homogenize to normalized device coordinates • Window coordinates Visibility 1.6 visible-surface determination algorithms: 1.Z-buffer 2.Watkins 3.Warnock 4.Weiler-Atherton 5.BSP Tree 6.Ray Tracing Things to know how does it work what are the necessary preconditions? asymptotic time complexity how can anti-aliasing be done? how can shading be incorporated? well-suited for hardware? parallelizable? ease of implementation best-case/worst-case scenarios Z-buffer • Project all polygons to the image plane, at each pixel, pick the color corresponding to closet polygon Watkins • Scanline + depth – progressing across scanline, if pixel is inside two or more polygons, use depth to pick – process interpenetrating polygons, add those events Warnock Subdivision • Start with area as original image – subdivide areas until either: • all surfaces are our outside the area • only one inside, overlapping or surrounding • a surrounding surface obscures all other surfaces * Weiler-Atherton Subdivision • Cookie-cutter algorithm:clips polygons against polygons – front to back sort of list – clip with front polygon BSP Trees • Provides a data structure for back-tofront or front-to-back traversal – split polygons according to specified planes – create a tree where edges are front/back, leaves are polygons Ray Tracing • “Ray Casting” – for each pixel, cast a ray into the scene, and use the color of the point on the closest polygon – Parametric form of a line: u(t) = a+(b-a)t a y (0,0) x t b Ray Tracing • Sphere: |P-Pc|2 – r2 = 0 • Plane: N • P = -D • Can you compute the intersection of a ray and a plane? A ray and a sphere? Ray Tracing • Point in polygon tests – Odd, even rule • draw a line from point to infinity in one direction • count intersections: odd = inside, even = outside – Non-zero winding rule • counts number of times polygon edges wind around a point in the clockwise direction • winding number non zero = inside, else outside Lighting • Terminology – Radiant flux: energy/time (joules/sec = watts) – Irradiance: amount of incident radiant flux / area (how much light energy hitting a unit area, per unit time) – Radiant intensity (of point source): radiant flux over solid angle – Radiance: radiant intensity over a unit area Lighting • Point to area transport – Computing the irradiance to a surface – Cos falloff: N • L – E = Fatt x I x (N • L) Lighting • Lambertian (diffuse) surfaces – Radiant intensity has cosine fall off with respect to angle – Radiance is constant with respect toangle – Reason: the projected unit area ALSO gets smaller as a cosine fall off! – Fatt x I x Kd x (N • L) N I length = cos(t) V Radiance intensity: intensity/solid angle N V Lighting • BRDF = Bidirectional Reflectance Distribution Function – description of how the surface interacts with incident light and emits reflected light – Isotropic • Independent of absolute incident and reflected angles – Anisotropic • Absolute angles matter – Don’t forget the generalizations to the BRDF! • Spatially/spectrally varying, florescence, phosphorescence, etc. Lighting • Phong specular model – Isn’t true to the physics, but works pretty well – reflected light is greatest near the reflection angle of the incident light, and falls off with a cosine power – Lspec = Ks x cosn(a), a= angle between viewer and reflected ray R N – how do you compute the reflected ray vector? V L Lighting • Local vs. infinite lights – Understand them! Know how to draw the goniometric diagrams for various light/viewer combinations • N • H model – H is the halfway vector between the viewer and the light HN – What is the difference in specular R highlight? V L Shading • Gouraud shading – Compute lighting information (ie: colors) at polygon vertices, interpolate those colors – Problems? • Misses highlights • need high resolution mesh to catch highlights • mach bands! Shading • Angle interpolation – interpolate normal angles according to the implicit surface – compute shading at each point of the implicit surface – CORRECT! But very expensive Shading • Phong shading – Compute lighting normals at all points on the polygon via interpolation, and do the lighting computation on the interpolated normals (of the polygon) – Problems? Difference with angle interpolation? N1 Polygon approximation N2 Implicit surface Lighting and Shading • Know the OpenGL 1.1, 1.2 light equations Exotic uses of textures • Environment/reflection mapping • Alphas for selecting between textures/shading parameters • Bump mapping • Displacement mapping • Object placement • 3d textures Good Luck! Good Luck on the Final! More review questions at: http://graphics.stanford.edu/courses/cs248-99/final_review