A P C

birdsowlSoftware and s/w Development

Dec 2, 2013 (3 years and 10 months ago)

93 views

Group May13
-
11

Christopher Jeffers

-

Communicator

Eric Jensen
-

Webmaster

Joel Rausch
-

Coordinator

Client: Siemens PLM Software

Advisor: Professor Simanta Mitra

A
DAPTIVE

P
OINT

C
LOUD

R
ENDERING

A F
EASIBILITY

S
TUDY


O
UTLINE

2


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/6a00d83452464869
e2013485dc88bd970c
-
pi

Group: May13
-
11

Client: Siemens PLM

S
IEMENS

PLM S
OFTWARE


“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
.”

3

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)

Group: May13
-
11

Client: Siemens PLM

W
HAT

IS

A

P
OINT

C
LOUD
?


A collection of vertices

4

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

Polygons

Star
Wars: Rogue
Squadron © LucasArts

Lines/Vectors

Star Wars © Atari

Points

© Nghia Ho


In computer graphics, a way to represent an
object or scene as set of points

Group: May13
-
11

Client: Siemens PLM

W
HY

H
AVE

P
OINT

C
LOUDS
?


3D
scanners output points clouds

5

Stanford Armadillo

© Stanford Computer Graphics Laboratory

19
-
year old toy

© 1993 Bandai

Group: May13
-
11

Client: Siemens PLM

P
RIMARY

B
USINESS

U
SE

C
ASE

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.

6

Leica terrestrial LIDAR (
Li
ght
D
etection
A
nd
R
anging)

©
2007 David Monniaux

Group: May13
-
11

Client: Siemens PLM

H
OW

TO

D
EAL

W
ITH

A

P
OINT

C
LOUD
?


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

7

=

=

/

Group: May13
-
11

Client: Siemens PLM

S
O

W
HAT

A
RE

W
E

D
OING
?


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.


8

Group: May13
-
11

Client: Siemens PLM

R
EQUIREMENTS


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.

9

Group: May13
-
11

Client: Siemens PLM

R
EQUIREMENTS
,
CONT
.


Inverse Requirements


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
.


10

H
OW

TO

R
ENDER

A B
ILLION

P
OINTS
?

11


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

Group: May13
-
11

Client: Siemens PLM

S
PLATTING

(P
OINT

R
ENDERING
)


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,
a
s
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
.

12

S
PLATTING

USING

O
CTREES



O
CTREE

13


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

i
s lost.


Space:
O(d*n)

©
WhiteTimberwolf

Group: May13
-
11

Client: Siemens PLM

Group: May13
-
11

Client: Siemens PLM

S
PLATTING

USING

O
CTREES



A
LGORITHM


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*8
k
), where k is the resolution
boundary and A is the completeness of the
octree


Worst: O(d*n) bound by O(8
d
)




14

R
AY

C
AST

F
ILTERING



K
-
D T
REE

15


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

Group: May13
-
11

Client: Siemens PLM

R
AY

C
AST

F
ILTERING



A
LGORITHM


Derived from ray tracing


Use view rays to select only

the points that can be seen.


Pros


Independent updating and

r
endering.


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

16

Group: May13
-
11

Client: Siemens PLM

R
AY

C
AST

F
ILTERING



R
AY

C
ASTING


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.

17

r

C

O

D



=







= ‖


2



(‖


2

𝑟
2
)



=
𝑂





0

2

1

3

4

5

6

7

8

9

Group: May13
-
11

Client: Siemens PLM

QS
PLAT



D
ATA

S
TRUCTURE


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

18

(
Rusinkiewicz

00)

Group: May13
-
11

Client: Siemens PLM

QS
PLAT



A
LGORITHM


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

19

M
ETRICS

20


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

Graphics Performance

Backend Performance

* Our primary concerns
for
our prototypes

Group: May13
-
11

Client: Siemens PLM

R
ESULTS

OF

PROTOTYPES

-

S
PLATTING


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: ~

21

Group: May13
-
11

Client: Siemens PLM

R
ESULTS

OF

PROTOTYPES



R
AY

C
ASTING


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)

22

Group: May13
-
11

Client: Siemens PLM

R
ESULTS

OF

PROTOTYPES

-

QS
PLAT


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

23

R
ESULTS

OF

PROTOTYPES

-

S
UMMARY

24

Alg.

Mem
.

Size

Load

Time

Up
-
date

Octrees

27 GB

1
-
2

hrs

~

Ray
Casting

20

GB

1
-
2
hrs

4
yrs

QSplat

6

GB

3
-
4
hrs

Vari
-
able


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

Group: May13
-
11

Client: Siemens PLM

S
YSTEM

D
ESCRIPTION


State Diagram

25

Load
Update
Draw
+
LoadData
()
+
GetDrawablePoints
()
QSplat Structure
+
Draw
()
+
Update
()
Render Structure
Viewer
+
setCamera
()
Render

Class Diagram

Group: May13
-
11

Client: Siemens PLM

A
CCOMPLISHMENTS


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.


26

Group: May13
-
11

Client: Siemens PLM

W
HAT

S

N
EXT
?


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.

27

C
ONCLUSION

28

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/6a00d83452464869
e2013485dc799d970c
-
pi

Group: May13
-
11

Client: Siemens PLM


Questions

http://
www.bnl.gov/bnlweb/history/higinbotham.asp

http
://
en.wikipedia.org/wiki/File:Pong.png

© LucasArts
X
-
Wing