April 4-7, 2016 | Silicon Valley
Innfarn Yoo, OpenGL Chips and Core Markus Schuetz, Professional Visualization
MASSIVE TIME-LAPSE POINT CLOUD RENDERING with VR Innfarn Yoo, - - PowerPoint PPT Presentation
April 4-7, 2016 | Silicon Valley MASSIVE TIME-LAPSE POINT CLOUD RENDERING with VR Innfarn Yoo, OpenGL Chips and Core Markus Schuetz, Professional Visualization Introduction Previous Work Methods AGENDA Progressive Blue-Noise Point Cloud
April 4-7, 2016 | Silicon Valley
Innfarn Yoo, OpenGL Chips and Core Markus Schuetz, Professional Visualization
2
Introduction Previous Work Methods Progressive Blue-Noise Point Cloud High-Quality VR Point Cloud Conclusion Demos
3
Point Cloud A set of points that represents the external surface
Our Dataset: Project Endeavor New NVIDIA building under construction Time-Lapse Point Clouds
4
Simplicity Scalability Easiness of capturing Easiness of data handling
Advantages Visually incomplete Easy to get noise Increasing data size Disadvantages
5
Point Cloud Massive Scale (more than 1 TB) Time-Lapse VR Rendering
Real-Time Rendering Instant Scalability Efficient Out-of-Core Design Plausible Visualization High-Quality VR Experience
6
A Novel Approach for Massive Time-Lapse Point Cloud Rendering Adapting Progressive Blue-Noise Point Cloud (PBNPC) Resampling High-Quality Point Cloud VR Experience Our method provides several important features: performance, quality, & navigation
7
Introduction Previous Work Methods Progressive Blue-Noise Point Cloud High-Quality VR Point Cloud Conclusion Demos
8
Li et al., Analyzing Growing Plants from 4D Point Cloud Data, 2013, Transaction on Graphics
Image source: Li et al., Analyzing growing plants from 4D point cloud data, 2013, ToG
9
First Person Hyper-lapse Video, Kopf et al., 2014, Transaction on Graphics
Image source: Kopf et al., First Person Hyper-lapse Video, 2014, ToG
10
Introduction Previous Work Methods Progressive Blue-Noise Point Cloud High-Quality VR Point Cloud Conclusion Demos
11
12
Per Day PC: 1.5 GB 2 Years: 1 TB Current: 120 GB GPU Memory: up to 24 GB (NVIDIA Quadro M6000) Out-of-Core Loading Daily weather changes Capturing time changes Sun position changes Shadows Drone captured Capturing is not perfect Actual site changes by daily construction
13
14
July 27, 2015 July 30, 2015
15
16
Real-Time Processing Preprocessing Input Point Cloud (LAS files) PBNPC Creation Registration Color Correction
Estimating Time-Lapse Speed Async Loading & Removing Sparse Buffer Filling Sparse Vertex Buffer Adjusting # of points & Rendering
17
Drone captures point cloud every 2-3 day Input file format: LAS (libLAS) Sampling density is varying per day Boundary is varying per day (Noise) 1.5 GB per capture * 86 := 120 GB Reduced to 50 GB
Input Point Cloud (LAS files) PBNPC Creation Registration Color Correction
18
Massive Scale Point Cloud Data Handling We need “Immediate Scalability” & Preserve Visual Quality
Input Point Cloud (LAS files) PBNPC Creation Registration Color Correction
19
Types of Noise, depend on frequency distribution White Noise, Pink Noise, and Blue-Noise Blue-Noise Point Cloud Nearly Poisson Distribution Approximation of Human Retina Cells’ Distribution Visually Plausible
Image source: Recursive Wang Tiles for Real-Time Blue Noise, Kopf et al., 2006, ACM SIGGRAPH
20
Progressive Blue-Noise Point Cloud (PBNPC) Adding or removing any number of points preserve Blue-Noise Characteristics Using “Recursive Wang Tiles for Real-Time Blue Noise”, Kopf et al., 2006, ACM SIGGRAPH
Image source: Recursive Wang Tiles for Real-Time Blue Noise, Kopf et al., 2006, ACM SIGGRAPH
21
22
Input Point Cloud (LAS files) PBNPC Creation Registration Color Correction
We tried to use Approximated Nearest Neighbors (ANN) to align Point Clouds
Render depth maps in several different camera positions Generate gradient maps from depth maps Octree-based Search + Hill Climbing Algorithm
23
We are not correcting colors YET Instead Time-Lapse Blending between Days Blending alleviates the color mismatching problem Blending cannot solve shadow(sun position) and color distribution problems
Input Point Cloud (LAS files) PBNPC Creation Registration Color Correction
24
25
26
Real-Time Processing Preprocessing Input Point Cloud (LAS files) PBNPC Creation Registration Color Correction
Estimating Time-Lapse Speed Async Loading & Removing Sparse Buffer Filling Sparse Vertex Buffer Adjusting # of points & Rendering
27
Newly introduced OpenGL 4.5 Extension (https://www.opengl.org/registry/specs/ARB/sparse_buffer.txt) Decouple GPU’s virtual and physical memory Similar to ARB_sparse_texture extension We are using Sparse Buffer as a Stack (Prepare entire virtual memory per daily PC)
Estimating Time- Lapse Speed
Async Loading & Removing Sparse Buffer Filling Sparse Vertex Buffer Adjusting # of points & Rendering
28
We allocate virtual memory for entire time-lapse point clouds glBufferStorage(target, size, data_ptr, GL_SPARSE_STORAGE_BIT_ARB) Physical memory can be committed by using glBufferPageCommitmentARB(target, offset, size, commit) Greatly ease our effort to manage GPU memory
data_ptr will be ignored, when with sparse storage bit GL_TRUE or GL_FALSE for commit or decommit memory
29
Calculating Time-Lapse Direction & Speed Amount of Async Loading Request is based on Probability Probability adjusted by Time-Lapse Direction & Speed
Estimate Time- Lapse Speed
Async Loading & Removing Sparse Buffer Filling Sparse Vertex Buffer Adjusting # of points & Rendering
30
For Real-Time Rendering (Normal > 60 Hz & VR > 90 Hz) Instant Level of Details (LOD) by using Progressive Blue-Noise Point Cloud Simply adjusting LOD percentage until target FPS accomplished
Estimate Time- Lapse Speed
Async Loading & Removing Sparse Buffer Filling Sparse Vertex Buffer Adjusting # of points & Rendering
31
32
33
34
(“Interactions with Gigantic Point Clouds”, Claus Scheiblauer)
source: “Potree: Rendering Large Point Clouds in Web Browsers”, Markus Schuetz
35
source: “Potree: Rendering Large Point Clouds in Web Browsers”, Markus Schuetz
36
constant motion and low resolution
37
Surface Patches made up
Points fighting for visibility Model Silhouettes Point Sprite Silhouettes Building Multi-Resolution Octree, only considering point coordinates Like Nearest-Neighbor
source: “Potree: Rendering Large Point Clouds in Web Browsers”, Markus Schuetz
38
(“High-quality surface splatting on today's GPUs”, Botsch et al., 2005)
source: “Potree: Rendering Large Point Clouds in Web Browsers”, Markus Schuetz
39
40
3D data and noise
41
42
43
44
45
46
47
Measurements Previous / Next Day
48
Introduction Previous Work Methods Progressive Blue-Noise Point Cloud High-Quality VR Point Cloud Conclusion Demos
49
50
51
NVIDIA’S NEW BUILD VISUALIZATION
52
Introduction Previous Work Methods Progressive Blue-Noise Point Cloud High-Quality VR Point Cloud Conclusion Demos
April 4-7, 2016 | Silicon Valley