Adaptive Point Cloud Rendering A Feasibility Study

Slides:



Advertisements
Similar presentations
CSG and Raytracing CPSC 407.
Advertisements

Technische Universität München Computer Graphics SS 2014 Graphics Effects Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung.
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.

Graphics Pipeline.
AVL Trees COL 106 Amit Kumar Shweta Agrawal Slide Courtesy : Douglas Wilhelm Harder, MMath, UWaterloo
Render Cache John Tran CS851 - Interactive Ray Tracing February 5, 2003.
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
Computer Graphics Visible Surface Determination. Goal of Visible Surface Determination To draw only the surfaces (triangles) that are visible, given a.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
1 Dr. Scott Schaefer Hidden Surfaces. 2/62 Hidden Surfaces.
Memory-Savvy Distributed Interactive Ray Tracing David E. DeMarle Christiaan Gribble Steven Parker.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Introduction to Volume Rendering Presented by Zvi Devir.
Streaming QSplat: A Viewer for Networked Visualization of Large, Dense Models Szymon Rusinkiewicz Marc Levoy Stanford University.
1 View Coherence Acceleration for Ray Traced Animation University of Colorado at Colorado Springs Master’s Thesis Defense by Philip Glen Gage April 19,
1 CSCE 441: Computer Graphics Hidden Surface Removal (Cont.) Jinxiang Chai.
Ch 1 Intro to Graphics page 1CS 367 First Day Agenda Best course you have ever had (survey) Info Cards Name, , Nickname C / C++ experience, EOS experience.
10/11/2001CS 638, Fall 2001 Today Kd-trees BSP Trees.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
Abstract: Digital 3D models are used in industry during the design process. Our client, Siemens PLM, creates software to allow these businesses to view.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Week 1 - Friday.  What did we talk about last time?  C#  SharpDX.
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
University of Illinois at Chicago Electronic Visualization Laboratory (EVL) CS 426 Intro to 3D Computer Graphics © 2003, 2004, 2005 Jason Leigh Electronic.
Objectives Review some advanced topics, including Review some advanced topics, including Chapter 8: Implementation Chapter 8: Implementation Chapter 9:
COMP 175: Computer Graphics March 24, 2015
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Computer Graphics World, View and Projection Matrices CO2409 Computer Graphics Week 8.
-Global Illumination Techniques
“QSplat : A Multiresolution Point Rendering System for Large Data Meshes” Authors: Szymon Rusinklewicz Marc Levoy Presentation: Nathaniel Fout.
2D/3D Shape Manipulation, 3D Printing Shape Representations Slides from Olga Sorkine February 20, 2013 CS 6501.
Visible-Surface Detection Jehee Lee Seoul National University.
1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.
1 Real-time visualization of large detailed volumes on GPU Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre INRIA Rhône-Alpes / Grenoble Universities Interactive.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
Computer Graphics Chapter 6 Andreas Savva. 2 Interactive Graphics Graphics provides one of the most natural means of communicating with a computer. Interactive.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Lecture 7: Intro to Computer Graphics. Remember…… DIGITAL - Digital means discrete. DIGITAL - Digital means discrete. Digital representation is comprised.
03/15/03© 2005 University of Wisconsin Where We’ve Been Photo-realistic rendering –Accurate modeling and rendering of light transport and surface reflectance.
04/23/03© 2003 University of Wisconsin Where We’ve Been Photo-realistic rendering –Accurate modeling and rendering of light transport and surface reflectance.
Basic Perspective Projection Watt Section 5.2, some typos Define a focal distance, d, and shift the origin to be at that distance (note d is negative)
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
PMR: Point to Mesh Rendering, A Feature-Based Approach Tamal K. Dey and James Hudson
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
An Efficient CUDA Implementation of the Tree-Based Barnes Hut n-body Algorithm By Martin Burtscher and Keshav Pingali Jason Wengert.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
1 Perception and VR MONT 104S, Fall 2008 Lecture 20 Computer Graphics and VR.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
BSP Tree Supplement Jyun-Ming Chen. Fall Kd-Tree and BSP tree kd-tree is a special kind of bsp tree.
Instructor: Mircea Nicolescu Lecture 5 CS 485 / 685 Computer Vision.
Efficient Ray Tracing of Compressed Point Clouds Erik Hubo Tom Mertens Tom Haber Philippe Bekaert Expertise Centre for Digital Media Hasselt University.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.

Scene Manager Creates and places movable objects like lights and cameras so as to access them efficiently, e.g. for rendering. Loads and assembles world.
Week 2 - Monday CS361.
Binary Notation and Intro to Computer Graphics
Visualization Shading
Ray Tracing Dr. Scott Schaefer.
Real-Time Ray Tracing Stefan Popov.
3D Object Representations
© University of Wisconsin, CS559 Fall 2004
Implementation II Ed Angel Professor Emeritus of Computer Science
Introduction to Computer Graphics with WebGL
Implementation II Ed Angel Professor Emeritus of Computer Science
Presentation transcript:

Adaptive Point Cloud Rendering A Feasibility Study Group May13-11 Christopher Jeffers - Communicator Eric Jensen - Webmaster Joel Rausch - Coordinator Client: Siemens PLM Software Advisor: Professor Simanta Mitra

Outline What Is Siemens PLM Software? What Is a Point Cloud? What Are We Doing? What Are the Requirements? What Solutions are There? How Are We Going to Do It? What Have We Done? What Will We Do? Questions? © Kean Walmsley http://through-the-interface.typepad.com/.a/6a00d83452464869e2013485dc88bd970c-pi

Siemens PLM Software “A business unit of the Siemens Industry Automation Division” “A leading global provider of product lifecycle management (PLM) software and services.” “Nearly 6.7 million licensed seats and 69,500 customers worldwide” “Headquartered in Plano, Texas.” “Works collaboratively with companies to deliver open solutions that help them turn more ideas into successful products.” “For more information on Siemens PLM Software products and services, visit www.siemens.com/plm.” Images and text from Siemens PLM’s Goelus Brochure (http://www.plm.automation.siemens.com/en_us/products/open/geolus/index.shtml#lightview%26uri=tcm:1023-7061%26title=Geolus%20-%20PLM%20Components%20Brochure%20-%208123%26docType=.pdf)

Star Wars: Rogue Squadron © LucasArts What is a Point Cloud? A collection of vertices In computer graphics, a way to represent an object or scene as set of points Polygons Star Wars: Rogue Squadron © LucasArts Lines/Vectors Star Wars © Atari Points © Nghia Ho Click Animation L: http://prohozhdenie-igr.com/2269-star-wars-rogue-squadron-bonus-mission-18-the.html M: http://www.cosc.brocku.ca/Offerings/3P98/course/lectures/intro/star_wars_large.png R: http://nghiaho.com/?attachment_id=1720

© Stanford Computer Graphics Laboratory Why Have Point Clouds? 3D scanners output points clouds 19-year old toy © 1993 Bandai Stanford Armadillo © Stanford Computer Graphics Laboratory

Primary Business Use Case Siemens PLM provides software that can simulation a layout of machinery on a factory floor. Currently, the model of the factory is based on the building plans The problem: these floor plans are not always maintained, as new machinery is added. Siemens PLM’s idea: Scanned the build, so it is always correct. Leica terrestrial LIDAR (Light Detection And Ranging) © 2007 David Monniaux

How to Deal With a Point Cloud? Convert it to a polygon mesh? Readily available, but not designed for their needs and good results require creation-time knowledge Convert it to multiple meshes? Not an easy solution = = /

So What Are We Doing? We are testing the feasibility rendering a point cloud as a collection of points. Our Goals Create a medium-scale (100s of millions to billions of points) point cloud rendering kernel using C++ and OpenGL. Implement a data structure to organize the point cloud data. Implement a traversal or selection algorithm to choose the correct points to render from the current viewpoint. Create a viewer that gives the user basic input controls to manipulate the view of the point cloud.

Requirements Functional Non-Functional Allow the user to load a point cloud in a TBD format . Allow the user to rotate, zoom, and pan the view of the point cloud. Non-Functional Rendering kernel must be able to display millions of points concurrently. The application must maintain an interactive frame rate (> 1 fps) Selection algorithm should take no more than 10 sec to run.

Requirements, cont. Inverse Requirements Constraints Mesh reconstruction from point clouds Segmentation (RANSAC) Point cloud compression Collision detection Brute Force Approaches Constraints Must be written in C++ programming language. Must use OpenGL library for rendering graphics. All data must fit within a few gigabytes of main memory.

How to Render A Billion Points? We looked through 10+ papers. We selected three methods to further investigate and test. Splatting using Octrees (Kobbelt 02) QSplats (Rusinkiewicz 00) Ray Cast Filtering using K-d Trees (Botsch 03) High-Quality Point-Based Rendering on Modern GPUs (Kobbelt 02) Efficient High Quality Rendering of Point Samples Geometry (Linsen 01) Point Cloud Representation (Moenning 03) A New Point Cloud Simplification Algorithm (Rusinkiewicz 00) QSplat: A Multiresolution Point Rendering System for Large Meshes (Rusu 11) Point Cloud Library (Wimmer 06) Instant Points Fast Rendering of Unprocessed Point Clouds (Rusinkiewicz 01) Streaming QSplat: A Viewer for Networked Visualization of Large, Dense Models (Havran 00) Heuristic Ray Shooting Algorithms (Römisch 09) Sparse Voxel Octree Ray Tracing on the GPU (Kashyap 10) Fast Raytracing of Point Based Models using GPUs (Marques) GPU Ray Casting Group: May13-11 Client: Siemens PLM

Splatting (Point Rendering) Developed by Lee Westover - Vis 1989; SIGGRAPH 1990 Every point is treated as a glob of color and is splat on a the frame, like, as Westover said, a snow ball. Requires front-to-back or back-to-front ordering when using alpha bending to smooth rendering. We probably will be using a FastSplat or geometry shader method. Auto animation

Splatting using Octrees – Octree A tree structure is built by sub-dividing Euclidian space. A node defines a virtual point at its center Pros Easily partitionable Fixed depth Cons Requires knowledge of the bounding box at creation times All information of the point cloud is lost. Space: O(d*n) © WhiteTimberwolf Group: May13-11 Client: Siemens PLM

Splatting using Octrees – Algorithm Based on Efficient High Quality Rendering of Point Samples Geometry by Mario Botsch, Andreas Wiratanaya, Leif Kobbelt Method: Modified DFS of the octree. Traverse a node when is in the viewing frustum. Terminate branch when no children exist or are traversable or at the resolution boundary of the frustum. Order children in traversal back-to-front of the frustum when blending. Pros Back-to-front order for alpha blending. Easy to off-load parts of the traversal to the GPU Cons Hidden points may be rendered There is a resolution limit and fixed depth. Space: O(d*n), where d is the depth Time: Average: O(A*8k), where k is the resolution boundary and A is the completeness of the octree Worst: O(d*n) bound by O(8d) Manual animation

Ray Cast Filtering – K-D Tree BST in k dimensions. A node defines a point and splitting plane. Pros All information of the point cloud is preserved. Four paths of traversal (L, R, Both, None). Cons Creating a balanced tree requires median finding Cannot be rebalance. Space: O(n) © KiwiSunset (upper) © Myguel (lower) Group: May13-11 Client: Siemens PLM

Ray Cast Filtering – Algorithm Derived from ray tracing Use view rays to select only the points that can be seen. Pros Independent updating and rendering. No resolution limits. Fixed number of points being rendered (< 9M). Cons No filtering. Viewport resolution changes are ill defined. Back-to-front alpha bending is ill defined. Space: O(n) Time: Average: O(R lg(n) + R) should be possible Worst: O(R * n), where R is the number of pixels

Ray Cast Filtering – Ray Casting S1: Test if the ray on the node’s splitting plane and store. S2: If S1 is false, traverse the child closest to the origin. Else, if there is an equal-axis child closer to the origin, traverse the or-equal child. S3: If S2’s child returns a point, return that point. S4: Test if the ray hit this node’s point. ((𝑓 ≥ 0) && (𝑔 < 0)) || ((𝑓 < 0) && (𝑓2 ≥ 𝑔)) S5: If S4 is true, return this node’s point. S6: If S1 is false, return empty. Else, Test if the ray intersection with the node’s axis. S7: If S6 is true, traverse remaining child. S8: If S7’s child returns a point, return that point. S9: Return empty. 𝑓 = 𝐸 ∙ 𝐷 𝑔 = ‖𝐷‖2 ∙ (‖𝐸‖2 − 𝑟2) 𝐸 = 𝑂 − 𝐶 r C O D 9 8 7 6 5 4 3 2 1

QSplat – Data Structure Bounding sphere hierarchy Property: Parent less detailed than children Memory Layout Nodes arranged breadth first in a contiguous memory region Bounding sphere nodes Requires 32 bits without color; 48 bits with color Use special relations instead of pointers (Rusinkiewicz 00)

QSplat – Algorithm Based off the work of Szymon Rusinkiewicz and Marc Levoy Level of detail scaling Rough details are painted over with finer details Quality / speed tradeoff High quality while stationary Low quality while moving Refinement Improve quality in subsequent stationary frames Uses feedback system

Metrics *Memory/HDD Footprint *Load Time Size of backend Graphics Performance Backend Performance Frame Rate (Hz) The time it takes to draw a frame *Update Rate (Hz) The time it takes to update to a new static camera setting Fragment Coverage (%) The percentage of unique pixels that were determined Response Time (ms) The time it takes to begin updating update *Memory/HDD Footprint Size of backend *Load Time Time it takes to load X numbers of points into the backend * Our primary concerns for our prototypes

Results of prototypes - Splatting Node Size: 72 byte Packing: 8 – 8-byte pointers, 4-byte color, 4-byte normal Load Time 2,000,000 pts: 6 sec 10,000,000 pts: 32 sec Update Time 10,000,000 pts: ~ For 1 billion points (estimated): Memory Size: Load Time: 1-2 hrs Update Time: ~

Results of prototypes – Ray Casting Node Size: 20 bytes Packing: 2 – 4-byte pointers, 3-byte color, 3-byte normal, 6-byte point (3 – half floats) Load Time (Simulated): 2,000,000 pts: 5 sec 20,000,000 pts: 53 sec Ray Cast (Simulated): 2,000,000 pts: 2 sec 20,000,000 pts: 14 sec 200,000,000 pts: 44-183 sec Best Case for 20,000,000 pts: 0 sec For 1 billion points (estimated): Memory Size: 20 GB Load Time: 1-2 hrs Update Time (at 1080p fully coverage): 4 yrs (1 min / cast)

Results of prototypes - QSplat Node Size: 6 bytes Packing: 13 bits for position & radius, 3-bit pointer, 14-bit normal, 2-bit normal cone width, 16-bit color Load Time 10,000,000 pts: 20 seconds Update Time 10,000,000 pts: speed/quality tradeoff For 1 billion points (estimated): Memory Size: 6 GB Load Time: 3-4 hrs Update Time: speed / quality tradeoff

Results of prototypes - Summary What We Learned: Best option is QSplat We will need to create the structure at a separate time and store it in permanent storage We will want to cache splats to the GPU We will want separate rendering and updating Alg. Mem. Size Load Time Up-date Octrees 27 GB 1-2 hrs ~ Ray Casting 20 GB 4 yrs QSplat 6 GB 3-4 hrs Vari-able

System Description State Diagram Class Diagram

Accomplishments Figured out the problem. Researched multiple solutions. Selected the three most promising solutions. Prototyped our solutions. Selected the solution to be fully implemented based on our findings. We design an architecture for our application. Created our Project Plan, Design Document, and this presentation. We still alive.

What’s Next? Fully developing our Qsplat implementation. Creating our application. Testing our implementation Redesigning everything to improve performance Design a GPU-side solution Graduate and then sleep and then going to work.

Conclusion What is Siemens PLM Software? What is a Point Cloud? What are We Doing? What are the Requirements? What Solutions are There? How are We Going to Do It? What Have We Done? What Will We Do? © Kean Walmsley http://through-the-interface.typepad.com/.a/6a00d83452464869e2013485dc799d970c-pi

Questions Auto animation http://www.bnl.gov/bnlweb/history/higinbotham.asp http://en.wikipedia.org/wiki/File:Pong.png © LucasArts X-Wing