Point-Based Rendering Kobbelt & Botsch, Computers & Graphics 2004 Surface Splatting (EWA: Elliptic Weighted Averaging) Main Idea Signal Processing Basics Resampling Gaussian Filters Reconstruction Kernels Footprint Rasterization Results 1
Points as Rendering Primitives Point clouds instead of triangle meshes [Levoy and Whitted 1985] Point-Based Surface Representation Points are samples of the surface The point cloud describes: 3D surface geometry Surface reflectance properties No additional information, such as connectivity (neighborhood information between points) texture maps, bump maps, etc. 2
Surface Elements - Surfels Each point corresponds to a surface element, or surfel, describing the surface in a small neighborhood Basic surfel: BasicSurfel { position; color; } Extended Surfels Store additional attributes Allows for higher quality rendering or advanced shading effects ExtendedSurfel { position; color; normal; radius; etc... } 3
Surfels Surfels store essential information for rendering Surfels are primarily designed as a point rendering primitive Surfels do not provide a mathematically smooth surface definition Shape Approximation Piecewise linear C 0 polygons Piecewise constant C -1 points Piecewise linear C -1 splats 4
Point rendering by splatting Simple forward projection of point samples Splatting footprints: each point sample distributes its contribution among neighboring pixels Point Rendering Pipeline Surfels carry all information through the pipeline (surfel stream) No texture look-ups Framebuffer stores RGB, alpha, and Z 5
Surface splatting overview Surface splatting overview Gaussian reconstruction kernel on the tangent plane of each 3D point p i Project each kernel to image plane Low-pass filter projected kernel -> anti-aliased footprints (resampling kernels) Footprint rasterization: Sample footprints at pixel locations, weighted with shaded color value and restricted to visible regions 6
Step 1: Find the tangent plane Find normal direction n at point q by least squares fitting a tangent plane H(x) passing through q that minimizes the sum of squares for a set of points {p i } in a local neighborhood of q Step 1: Cover surface with disks Use surfel disc radius r to cover surface completely without holes (r depends on sampling density) 7
Step 2: Project the surface disks Project surfel discs from object to screen space Projected disc is an ellipse in screen space Ellipse shape adapts to surface orientation w.r.t. viewer m(t) x=(x,y) t=(t 1,t 2 ) Step 3: Resampling kernel A splat primitive consists of a colored point primitive and an alpha mask colored point primitive c i alpha mask w(x,y) (2D Gaussian) splat primitive c i.w(x,y) 8
Step 4: Footprint rasterization Evaluate splat primitives at all output pixel locations x=(x,y): Normalization necessary, for weights do not sum to 1 Contributions of each footprint are accumulated in a frame buffer. Visibility: A z-buffer is used to remove hidden surfaces Effect of normalization 9
Z-buffering Step 3: Compute resampling kernel The surface is represented in 3D coordinates t=(t 1,t 2 ) by with c i the samples, and r i (t) a Gaussian function whose width is proportional to the disk radius 10
Step 3: Compute resampling kernel The resampling filter in screen space is a convolution of a 2D anti-aliasing filter h(x) and a warped version of r i (t): reconstruction kernel low-pass filter convolve Here x=m(t) is the surface screen projection, and t=m -1 (x) its inverse Step 3: Compute resampling kernel The 2D anti-aliasing filter h(x) is chosen as a Gaussian whose width is proportional to the Nyquist frequency of the pixel grid The function r i (m -1 (.)) is approximately Gaussian as well ρ i (x) This means that ρ i (x) is a Gaussian filter kernel 11
Step 4: Footprint rasterization The continuous 2D screen space function is: ρi (x) where ci are shaded samples and ρi(x) are Gaussian footprints (resampling kernels) The Gaussian kernel is truncated at a cutoff radius r (typically 1< r < 2) This expression has to be evaluated at output pixel locations x=(x,y) Contributions of each footprint is accumulated in a frame buffer. A z-buffer is used to remove hidden surfaces Example Optimized sub-sampling of the Iphigenie model (top, 350k points) using 30k circular splats (bottom) [L. Kobbelt, M. Botsch / Computers & Graphics 28 (2004) 801 814] 12
Magnification and Minification Magnification: objects close to viewer. Reconstruction filter is enlarged, dominates the resampling filter Minification: objects far from viewer. Reconstruction filter is scaled down, lowpass filter dominates the resampling filter Magnification and Minification 13
Image Quality Comparison (a) surface splatting (b) ellipse splatting (footprints do not include low-pass filter) (c) bilinear interpolation (d) trilinear interpolation Improvement: cover surface with ellipses instead of disks An elliptical region around a surface point p i is defined by two tangential vectors u i and v i which are aligned to the principal curvature directions of the underlying surface The lengths of u i and v i are inversely proportional to the corresponding minimum and maximum curvatures So the ellipse centered at p i is defined by all points q in the tangent plane at p i that satisfy 14
Comparison Different shape approximations consisting of about 730 geometry primitives: irregular triangle meshes (left), regular aligned triangle mesh (center left), circular splats (center right), elliptical splats (right). [L. Kobbelt, M. Botsch / Computers & Graphics 28 (2004) 801 814] 15