Visibility in Point Clouds Philip Dutré - Parag Tole Program of Computer Graphics Cornell...

Post on 25-Dec-2015

213 views 0 download

Transcript of Visibility in Point Clouds Philip Dutré - Parag Tole Program of Computer Graphics Cornell...

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