Combining Edges and Points for Interactive High-Quality Rendering Kavita Bala Bruce Walter Donald Greenberg Cornell University
Motivation Goal: Interactive high-quality rendering Expensive shading: e.g., global illumination But, mostly smooth (coherent) naïve reconstruction points
Edge-and-Point Rendering Edges: important discontinuities Silhouettes and shadows Points: sparse shading samples points edges edge-and-point reconstruction
Edge-and-Point Image Alternative display representation Edge-constrained interpolation preserves sharp features Fast anti-aliasing EPI naive
EPI Properties Works directly with edges and points No meshing Image-space display representation: limited sub-pixel precision Approximate edges and points Scales to complex objects
Edge-constrained interpolation System Edge finding 3D edges Point cache 3D points Shader Asynchronous Request samples Shading 2D edges Rasterization Reprojection 2D points Edge-constrained interpolation Exploits temporal coherence Decouples shading from display EPI
Related Work Sparse sampling and reconstruction Fast ray tracing [Bala99,Guo98,Pighin97,Simmons00,Stamminger00,Tole02,Wald02,Walter99] Fast ray tracing [Parker99,Purcell02,Wald01] Display representation [Levoy86,Pfister00,Rusinkiewicz00,Zwicker01] Edge finding Discontinuity meshing [Heckbert92,Lischinski92] Event finding [Duguet02,Durand99] [Johnson01,Sander00,Sander01]
Pixel types Pixels can have arbitrary edge complexity Classify pixels into 3 groups Empty: no edges Simple: can be approximated by 1 edge Complex: everything else Typical pixel classification statistics empty (85-95%), simple (4-10%), complex (1-4%) Empty Simple Complex
Edge-and-Point Image (EPI) Goal: compact and fast Store at most one edge and one point per pixel Limited sub-pixel precision Combine edges and points in image space View-driven, lazy evaluation Point sample (shaded) Edge EPI pixel
Edge Reconstruction Rasterize edges onto image plane Record their intersections with pixel boundaries Classify pixels and reconstruct simple edges Discontinuity Edges Rasterization Reconstruction empty simple complex pixel boundary intersection
Reachability Reachable samples Propagated outward from each pixel Pixel’s 5x5 neighborhood Connected without crossing any edges (or complex pixels) Propagated outward from each pixel Reachable Unreachable Propagation
Interpolation Interpolate a color for each pixel Uses 5x5 weighted kernel Only interpolate from reachable samples Empty
Interpolation Interpolate a color for each pixel Uses 5x5 weighted kernel Only interpolate from reachable samples Simple pixels: pick one side of edge Empty Simple
Interpolation Interpolate a color for each pixel Uses 5x5 weighted kernel Only interpolate from reachable samples Simple pixels: pick one side of edge Complex pixels: ignore reachability Empty Simple Complex
Anti-Aliasing Interpolation computes one color per pixel Result has classic “staircase” aliasing Use edge information at simple pixels to blend between neighboring pixels Fast table-driven filter Cheap and effective After interpolation After anti-aliasing
Anti-aliasing Magnified view of a ray traced image with 1 sample per pixel Magnified view of our results Our result using <1 sample per pixel Edges
Complex Pixel Filter Can subdivide complex pixels in four Many quadrants are empty or simple Extra work only at complex pixels Complex pixel Before After
Point Sampling Point sample handling Based on the Render Cache [Walter99,02] Produced by asynchronous shaders Stored in a fixed size point cache Project points onto current image plane Request new samples based on feedback
Edge Finding: Types Silhouettes Shadows: hard and soft eye object point light source shadow event blocker receiver area light source umbral event penumbral event blocker receiver
Edge Finding Hierarchical trees: fast edge finding Interval-based
Red: umbral edges, Blue: penumbral edges Soft Shadow Edges Black: silhouettes, Red: umbral edges, Blue: penumbral edges
Reachability & interpolation Putting it Together Edge finding 3D edges Point cache 3D points 2D edges Edge rasterization & reconstruction 2D points Reprojection EPI image Reachability & interpolation Anti-aliasing Complex pixel filter Finished frame
Results: Quality Global illumination 3 lights 150k polygons Without Edges With Edges
Video
Results Framerate: 8-14 fps Sparseness: 1-2%
Summary EPI: New display representation Combines edges and points Image-space: no meshing Compact EPI optimizes for common case Scales to complex scenes Fast anti-aliasing Fast, hierarchical edge finding for silhouettes and shadows
Conclusion Combines best of edges and points Decouple display from shading Arbitrary slow shaders Exploit coherence Spatial: interpolation Temporal: reprojection Software implementation GPU
Acknowledgments Sebastian Fernandez Everybody at the Program of Computer Graphics Stanford’s Digital Michelangelo Project Georgia Tech’s Large Geometric Model Archive NSF Intel
Questions?
Edge-and-Point Image Alternative display representation Edge-constrained interpolation preserves sharp features Fast anti-aliasing