300 likes | 311 Views
Discover a novel display representation combining edges and points for efficient interactive rendering, offering fast anti-aliasing and scalable performance in complex scenes without meshing. Embrace the power of hierarchical edge finding for shadows and silhouettes.
E N D
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
edges points Edge-and-Point Rendering • Edges: important discontinuities • Silhouettes and shadows • Points: sparse shading samples edge-and-point reconstruction
naive EPI Edge-and-Point Image • Alternative display representation • Edge-constrained interpolation preserves sharp features • Fast anti-aliasing
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
Shading samples Edge finding Point cache Rasterization Reprojection Shader 3D edges 3D points 2D edges 2D points Edge-constrained interpolation Request samples Asynchronous System Exploits temporal coherence Decouples shading from display EPI
Related Work • Sparse sampling and reconstruction • [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
Reconstruction empty simple complex Edge Reconstruction • Rasterize edges onto image plane • Record their intersections with pixel boundaries • Classify pixels and reconstruct simple edges Discontinuity Edges Rasterization pixel boundary intersection
Reachability • Reachable samples • 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
Magnified view of a ray traced image with 1 sample per pixel Magnified view of our results Anti-aliasing 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
point light source area light source umbralevent shadowevent blocker blocker penumbralevent receiver receiver Edge Finding: Types • Silhouettes eye object • Shadows: hard and soft
Edge Finding • Hierarchical trees: fast edge finding • Interval-based
Soft Shadow Edges Black: silhouettes, Red: umbral edges, Blue: penumbral edges
Edge finding Point cache Reprojection 3D edges 3D points Edge rasterization & reconstruction 2D edges 2D points Reachability & interpolation Complex pixel filter Anti-aliasing EPI image Finished frame Putting it Together
Without Edges With Edges Results: Quality • Global illumination • 3 lights • 150k polygons
Results Sparseness: 1-2% Framerate: 8-14 fps
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
Edge-and-Point Image • Alternative display representation • Edge-constrained interpolation preserves sharp features • Fast anti-aliasing