Screen-Space Triangulation for Interactive Point Rendering Reinhold - - PowerPoint PPT Presentation

screen space triangulation for interactive point rendering
SMART_READER_LITE
LIVE PREVIEW

Screen-Space Triangulation for Interactive Point Rendering Reinhold - - PowerPoint PPT Presentation

Screen-Space Triangulation for Interactive Point Rendering Reinhold Preiner Institute of Computer Graphics and Algorithms Vienna University of Technology Motivation High-quality point rendering mostly implies some kind of continuous surface


slide-1
SLIDE 1

Screen-Space Triangulation for Interactive Point Rendering

Reinhold Preiner Institute of Computer Graphics and Algorithms Vienna University of Technology

slide-2
SLIDE 2

1

Motivation

High-quality point rendering mostly implies some kind of continuous surface reconstruction Using Point Properties for rendering point normals (local surface orientation) splat radii (connectivity)

slide-3
SLIDE 3

2

Motivation

Huge point clouds: time-consuming Preprocessing

  • St. Stephans Cathedral

Domitilla Catacomb 460 Million Points 1.9 Billion Points Normal Est.: ~ 17h Normal Est.: ~ 21h

slide-4
SLIDE 4

3

Motivation

Can we achieve comparable quality on rendering without precomputed attributes? Our Approach: Reconstruct normal and connectivity info

  • n-the-fly during rendering in screen-space on the GPU

Advantages No time-consuming preprocessing Saves memory for storing attributes (normals, radii) Rendering/Reconstruction independent from data layout (Hierarchical, Out-Of-Core, …) Possible Applications Fast on-site preview of scanned point clouds Instant rendering of 4D point streams

slide-5
SLIDE 5

4

Overview of Our Approach

Input: Point data projected to screen

Position Color (optional)

Output: Reconstructed frame buffers

Depth Normal Color (optional)

Use for further deferred shading, illumination, …

slide-6
SLIDE 6

5

Surface reconstruction - FAQ

Given a surface sample which neighbors to use for reconstruction? KNN, FDN, … robust statistics, LMS …

?

slide-7
SLIDE 7

6

Surface reconstruction - FAQ

Given a surface sample which neighbors to use for reconstruction? KNN, FDN, … robust statistics, LMS … Given a local neighborhood how to reconstruct surface? surface fitting, forward search, …

slide-8
SLIDE 8

Given a surface sample which neighbors to use for reconstruction? KNN, FDN, … robust statistics, LMS …

Screen-Space Nearest Neighbor Search

Given a local neighborhood how to reconstruct surface? surface fitting, forward search, …

Normal Estimation & Triangulation

7

Surface reconstruction - Our Approach

slide-9
SLIDE 9

8

Input: projected point buffer Initial search radius r How to quickly find and store k nearest neighbors of each point Q in the input buffer? Divide screen space region around Q in 8 segments Storing nearest neighbor

  • f each segment in

2 RGBA Textures

Screen-Space Nearest Neighbor Search

Screen-Space Nearest Neighbor Search

slide-10
SLIDE 10

9

Screen-Space Nearest Neighbor Search

Pass 1: for each Pi, render search splat of radius r Store min. world space distances dmin at pixel Q Pass 2: Render Search Splats Pi again Compare distance PiQ with saved dmin Screen-Space Nearest Neighbor Search

slide-11
SLIDE 11

10

Screen-Space Nearest Neighbor Search

Lookup the neighbor points and calculate normal Normal Estimation

Neighbor Buffers Point Position Buffer Point Normal Buffer

slide-12
SLIDE 12

11

Screen-Space Nearest Neighbor Search

Triangulation in Geometry Shader Triangulation

Sparse Input Buffers

Depth Normal Color

Final Buffers Neighbor Buffers

slide-13
SLIDE 13

12

Temporal Coherence Depth Culling

Depth Buffer

i+1 i

Input Points Depth Culled Input Points REPROJECT

slide-14
SLIDE 14

13

Search Radii

Maintain a search radius buffer Adapt radii over time Start with initial search radius r0 Define increase factor α > 1 Frame i: if #neighbors too small (e.g. < 3) ri+1 = ri * α else ri+1 = max( distance(neighbork) ), k = 1…8

slide-15
SLIDE 15

14

Algorithm - Summary

1) Project points to screen Depth cull with depth buffer from previous frame 2) Update search radii 3) Perform neighbor search 4) Normal estimation 5) Triangulation

slide-16
SLIDE 16

15

Results

Comparison to point splatting

Box Splatting Gauss Splatting SST

slide-17
SLIDE 17

16

Results

Gauss Splats (Precomputed) SST

slide-18
SLIDE 18

17

Results

Normalestimation only locally noise sensitive

precomputed Normals SST Normals

slide-19
SLIDE 19

18

Conclusion / Outlook

Interactive rendering without precomputation Quality comparable to Gauss splats Drawbacks Temporal Coherence Artifacts, Flickering Some degrees of freedom (r0, α) Normal estimation only local Future Work Introduce denoising of normals by geometry-aware filter Estimate absolute radii per frame (get rid of TC, r0 and α) instantly estimate good splat radii Gauss splatting?