1 / 28

Planar Shadow Map with Edge Buffer

Planar Shadow Map with Edge Buffer. Final Project for C.S. 870 By Shawn Brown. Goals. Reduce BIAS: reduce artifacts casued by self-intersection and numerical precision by storing a plane equation instead of single depth value at each pixel in shadow map.

catrin
Download Presentation

Planar Shadow Map with Edge Buffer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Planar Shadow MapwithEdge Buffer Final Project for C.S. 870 By Shawn Brown

  2. Goals • Reduce BIAS: reduce artifacts casued by self-intersection and numerical precision by storing a plane equation instead of single depth value at each pixel in shadow map. • Improve Pixilated Appearance: Reduce pixilated appearance of shadows via an edge buffer.

  3. Shadow Maps • Introduced by Lance Williams in 1978 • An simple high performance method for generating shadows using an one or more extra frame buffers per light and z-buffering techniques

  4. Basic Algorithm • Render from point of view of the light source. • For each pixel, record distance (z-depth) from light source in the in the shadow map frame buffer. • Render from point of view of the camera. • For each hit point • map hit point from world space into light space, • compute it’s distance from light, zC = dist(Light – HP) • find stored depth value in shadow map, zL = SM<x,y> • If (zC > zL) then in shadow else compute lighting

  5. Shadow Mapfrom light source Rendered Imagefrom Camera Image from “Perspective shadow maps” by M. Stamminger & G. Drettakis in SIGGRAPH 2002, p. 557-562

  6. Pros & Cons

  7. Image Artifacts Self – Shadowing Or Numerical precision Artifacts Blocky Appearance Of Shadow

  8. Step 1: Planar Shadow Mapping • Concept first introduced by ATI as part of their 2005 SDK • Replace single z-depth value per pixel by a 3D plane equation (Ax+By+Cz+D) across surface of pixel • Still need a small bias value for numerical precision issues 2D Analogy Rectangle vs. Trapezoid pl1 pl2 pl3 z1 z2 z3 Plane Buffer Depth Buffer

  9. Plane & Edge Equations • Plane Equation • Ax + By + Cz + D = 0 • Alternate form N∙P=c, N=<A,B,C> • Test a point (above (>0), below (<0), equal (=0) • Can be computed from point and normal at point • D = -(A∙P.x + B∙P.y +C∙P.z) • Edge Equation • Ax + By + C = 0 • Alternate form Perp┴∙P=c, Perp=<A,B> • Test a point (left (<0), right (>0), equal (=0) • Can be computed from point and direction at point • C = -(A∙P.x + B∙P.y)

  10. Algorithm with Planes • Render from point of view of the camera. • For each hit point • map hit point from world space into light space, • compute it’s distance from light, zC = dist(Light – HP) • Look up planar equation <A,B,C,D> = SM(x,y) • <x,y> values already known from transform • Compute z’ = -(A∙x + B∙y + D)/C • Compute distance zL = dist(<x,y,z’> - LightPos) • If (zC > zL+bias) then in shadow else compute lighting

  11. UL UL UM UM UR UR ML ML MR MR LL LL LM LM LR LR Step 2: Add an Edge Buffer • Reduce pixilated appearance of shadow edges by adding canonical edge information to each pixel. Uniform Plane across entire pixel for shadow testing Borrow Neighbor Planes as better approximations along border pixels VS.

  12. Border Pixels • Store Object ID’s for each pixel in shadow map. • Look at eight neighbors of each pixel • Homogenous set = interior pixel • Heterogeneous set = potential border pixel Interior pixel Border pixel

  13. Categorize Neighborhoodsusing Border Map • Small portion of border map showing border and interior pixels • 16 distinct cases for 4 corner test, 256 cases for 8 way test

  14. UL UM UR 4 5 6 7 8 3 9 ML 2 10 MR 1 11 0 15 14 13 12 LL LM LR Canonical Edges • 16 points equally spaced around border of Unit cube • 16 starting points x 16 ending points = 256 edges • each canonical edge can be represented by a single byte Identity Edges: 4 → 4, not a valid edge, 16 entries of this form. Solution: could add new edges Border Edges: 4 → 5, valid but not useful 4 x 16 = 48 entries of this form Solution: could add new edges Edges thru Center: 4 → 12 ambiguous, There are 16 edges of this form. Solution: use neighbor pixels for resolving ambiguity Symmetry: 4 to 12 = 12 to 4. Not a problem, directed edges needed for proper testing.

  15. UL UL UM UM UR UR 4 4 5 5 6 6 7 7 8 8 3 3 9 9 ML ML 2 2 10 10 MR MR MM MM 1 1 11 11 0 0 15 15 14 14 13 13 12 12 LL LL LM LM LR LR 4 Corner Tests • Test ray traced objects at 4 corners against object at center • 16 test cases, test cases require 1-4 edge tests to resolve properly Original Approach Use middle points (1/2) for canonical edges Alternate Approach Use quarter points (1/4, 3/4) for canonical edges

  16. UL UM UR 4 5 6 7 8 3 9 ML 2 10 MR MM 1 11 0 15 14 13 12 LL LM LR 8 Way Test • Test ray traced objects at 8 positions against object at center • 256 test cases, test cases require 1-8 edge tests to resolve • Use canonical edges involving ¼, ½, ¾ points

  17. Algorithm with Edge Buffer • Render from point of view of the camera. • For each hit point • map hit point from world space into light space, • compute it’s distance from light, zC = dist(Light – HP) • Use Edge buffer to pick plane from current pixel or one of its 8 neighbors • Compute distance zL as before from picked plane • If (zC > zL+bias) then in shadow else compute lighting

  18. Results (I) Ray Traced Shadows Planar Shadow Map

  19. Results (II) Planar Shadow Map 4 Corner Edge Buffer

  20. Results (III) 4 Corner Edge Buffer 4 Corner Alternate

  21. Results (IV) Ray Traced Shadows 8 Way

  22. Differences Planar Shadow Map 4 Corner Edge Buffer

  23. Differences (II) 4 Corner Alternate 8 Way

  24. Conclusion • Summary: Interesting but not compelling • Looks better (8 way > 4 corner > than planar) • Needs further refinement • Pro: Simple to implement (tedious for 8 way case) • Pro: Only needs 1 extra byte per pixel for edge classification • Con: Regular Patterns (canonical edges) • Con: No interior corners (get truncated)

  25. Future Improvements (I) Regular Patterns • Snapping results to Canonical edges result in to much regularity in edge patterns of shadows. • Add t values (1 byte) to each edge to allow edges to more closely track actual silhouette edges • Use ray tracing and binary search to find approximate location of t value along each edge

  26. Future Improvements (II) No true corners inside pixel • Use t values of edges in extended neighborhood to infer edges and intersections of edges inside pixel • Store <s,t> value for each corner in pixel • Allow maximum of 1-2 corners, • Merge extra corners if more than maximum

  27. Thank You Any Questions?

  28. References • Williams, L. “Casting curved shadows on curved surfaces”. Computer Graphics - Proceedings of SIGGRAPH 1978, 12 (3), 270–274 • M. Stamminger & G. Drettakis, “Perspective shadow maps”, ACM Transactions on Graphics (TOG), v.21 n.3, July 2002 • ATI Technical Document and sample source code, “Plane Shadow Mapping”, part of ATI Radeon 2005 SDK (Archived). • Pharr, M. & Humphreys G., “Physically Based Rendering, From Theory to Implementation” 2004, San Francisco, Elsevier – Morgan Kaufmann

More Related