Upload
shawn-little
View
215
Download
0
Embed Size (px)
Citation preview
Visibility in Point Clouds
Philip Dutré - Parag Tole
Program of Computer Graphics
Cornell University
Motivation
points as modeling and rendering primitives
finding new ways to evaluate (and approximate) the visibility function
General Idea
Sample original surfaces (polygons) to construct set of oriented points
Evaluate visibility between any two points in the scene using only this point cloud
General Idea
Use it for shading only, NOT for primary visibility
eye
visibility = 0 or 1?
General Idea
Exact visibility: 0 or 1
Approximate visibility: numerical value between 0 and 1 “confidence” that 2 points are mutually visible use as numerical value in shading calculations
Generate oriented surface points
Scene geometry Surface sampling Oriented points
Intersection heuristic
Find closest point x to query line pq
Approximate original surface by surface element Sx
position Sx : probability density dns(Sx)
Check whether Sx intersects pq
Intersection heuristic
p
q
y
x
Sx
p
x
q
Intersection heuristic
Probability y belongs to Sx :
Visibility value:
)()(
)()(),(
x
xSySx
xxx SdSdnsySp
),(),( ySp1pqxvis x
Intersection heuristic
Use C closest points to query line pq
C
1ii pqxvispqvis ),()(
Use only ‘valid’ points
p
q
x1
p
q
x2
x3
> threshold distance
Validation
Sx = square with length L
dns(Sx):
NAL /
dns Sx
rxy
L-------
0
0 .2
0 .4
0 .6
0 .8
1
0 0 .2 0 .4 0 .6 0 .8 1
r x y
L-------
p Sx y
d 0=
d 5=
d 10=
d 3=
0
0 . 2
0 . 4
0 . 6
0 . 8
1
0 0 . 2 0 . 4 0 . 6 0 . 8 1
d 1=
d 3=
d 5=
d 10=
Validation
Use vis(pq) as probability to determine whether pq is visible
compare to exact visibility of pq
Validation
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9 100
0.2
0.4
0.6
0.8
1
5000 10000 15000 20000 25000 30000 35000 40000 45000 50000
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
1 2 3 4 5 6 7 8 9 10
a. Size of square - fL b. Number of points in cloud N
c. Number of closest points C d. Power d
visible
invisible
total
visible
invisible
total
visible
invisible
total
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
0 10 20 30 40 50 60 70 80 90 100
visible
invisible
total
Validation
size of Sx doesn’t really matter
Power d indicates a stepping function? true for this validation not true for shading
Direct Illumination
use continuous value of vis(pq)
reference - 97min. 10,000 points - 50m. 20,000 points - 59m.
Global Illumination
Bidirectional path tracing
Generate & store light paths
Rendering: generate eye path & connect to selected light paths
Use continuous visibility value with separate point cloud
Global Illumination
reference - 37m. 20,000 points - 229m. 100,000 points - 334m.
Some trivial extensions
Use point cloud for primary visibility (reprojection)
Light paths + point cloud = same set
Separate clouds for each object (e.g. LDIs, points as modeling primitives)
TR: http://www.graphics.cornell.edu/pubs/2000/DTG00.html
Open Questions
“Polygons are so 10 days ago, but points are hot!!!”
Is exact visibility always necessary?
Do we need the same model representations for display & shading?
Conclusion
TR: http://www.graphics.cornell.edu/pubs/ 2000/DTG00.html