A simple kinetic visibility polygon
description
Transcript of A simple kinetic visibility polygon
![Page 1: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/1.jpg)
iMAGIS is a joint project of CNRS - INPG - INRIA - UJF
iMAGIS-GRAVIR / IMAG
A simple kinetic visibility polygon
EWCG’02
Samuel Hornus, Claude Puech
![Page 2: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/2.jpg)
iMAGIS-GRAVIR / IMAG
Hypothesis :
• simply-polygonal obstacles
• known algebraic motion (everything can move)
Goals :
• maintaining the visibility polygon continuously
Solution :
Kinetic Data Structure framework
![Page 3: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/3.jpg)
iMAGIS-GRAVIR / IMAG
Overview
• Kinetic Data Structures (KDS)
• Visibility polygon
• Detecting crossing events
• Updating the visibility polygon
• Conclusion
contributions
![Page 4: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/4.jpg)
iMAGIS-GRAVIR / IMAG
Overview
• Kinetic Data Structures (KDS)
• Visibility polygon
• Detecting crossing events
• Updating the visibility polygon
• Conclusion
![Page 5: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/5.jpg)
iMAGIS-GRAVIR / IMAG
Kinetic Data Structures
• Moving Items (points, segments, …)
• Attributes on the items (convex hull, voronoï diagram)
given with a proof of correctness for the static case
• Idea : animating the proof through time when items are moving
certificate failure
[Bash and Guibas 95]
![Page 6: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/6.jpg)
iMAGIS-GRAVIR / IMAG
Kinetic Data Structures
Proof ofcorrectness
Certificatefailure
Proof update Attribute update
[Bash and Guibas 95]
![Page 7: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/7.jpg)
iMAGIS-GRAVIR / IMAG
Overview
• Kinetic Data Structures (KDS)
• Visibility polygon
• Detecting crossing events
• Updating the visibility polygon
• Conclusion
![Page 8: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/8.jpg)
iMAGIS-GRAVIR / IMAG
Visibility polygon
• n vertices / edges
• Cyclically ordered set of the n tangent rays
• The visible edge is stored between each pair of tangent rays
![Page 9: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/9.jpg)
iMAGIS-GRAVIR / IMAG
Overview
• Kinetic Data Structures (KDS)
• Visibility polygon
• Detecting crossing events
• Updating the visibility polygon
• Conclusion
![Page 10: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/10.jpg)
iMAGIS-GRAVIR / IMAG
Detecting Eventsconsecutive rays in the ordered set
![Page 11: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/11.jpg)
iMAGIS-GRAVIR / IMAG
Detecting Events
crossingevent !
![Page 12: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/12.jpg)
iMAGIS-GRAVIR / IMAG
Detecting Events
next crossing event
![Page 13: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/13.jpg)
iMAGIS-GRAVIR / IMAG
Detecting Events
![Page 14: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/14.jpg)
iMAGIS-GRAVIR / IMAG
Overview
• Kinetic Data Structures (KDS)
• Visibility polygon
• Detecting crossing events
• Updating the visibility polygon
• Conclusion
![Page 15: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/15.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
Knowing only the visibility polygon is not enough to maintain it, we need more data…
We will use a weak radial decomposition of the scene.
![Page 16: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/16.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility PolygonEach tangent ray consists of
- the vertex of « tangency »
![Page 17: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/17.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility PolygonEach tangent ray consists of
- the vertex of « tangency »
- the hit edge along the ray, beyond the vertex of tangency
8
88
88 8
8
8
![Page 18: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/18.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility PolygonEach tangent ray consists of
-the vertex of « tangency »
- the hit edge along the ray
-the visible edge at its left
88
88
88
8
8
8
![Page 19: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/19.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility PolygonEach tangent ray consists of
-the vertex of « tangency »
- the hit edge along the ray
-the visible edge at its left
-the type of the tangency vertex
see next slide…
88
88
88
8
8
8
![Page 20: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/20.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
Tangent ray type
![Page 21: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/21.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
R
L
hit2hit1Before the crossing
![Page 22: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/22.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
• There is no other tangent ray between these ones
Before the crossing
R
L
hit2hit1
![Page 23: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/23.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
C
R
L
hit2hit1
• There is no other tangent ray between these ones
Before the crossing
• C exists if and only if
hit1 is different from hit2
![Page 24: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/24.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
R
L
hit2hit1
Before the crossing,
when C does not exist
visible = hit2 = hit1
![Page 25: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/25.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility PolygonAfter the crossing,
R
L
hit1 := R
hit2
R
L
hit2hit1
Before the crossing,
when C does not exist
visible = hit2 = hit1
visible := L
![Page 26: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/26.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility Polygon
R
L
hit2
Before the crossing,
when C does not exist
visible = C
C
hit1 = C
![Page 27: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/27.jpg)
iMAGIS-GRAVIR / IMAG
Updating the Visibility PolygonAfter the crossing,
L
C
R
hit1
hit2
R
L
hit2
Before the crossing,
when C exists
visible = C
C
visible := L
hit1 = C
![Page 28: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/28.jpg)
iMAGIS-GRAVIR / IMAG
ConclusionPros
• Concave (simple) polygons
• Constant time processing of an event
Cons
• High quantity of crossing events
Future Work
• What about 3d ?
![Page 29: A simple kinetic visibility polygon](https://reader035.fdocuments.us/reader035/viewer/2022062519/56814dbe550346895dbb1427/html5/thumbnails/29.jpg)
iMAGIS-GRAVIR / IMAG
A simple kinetic visibility polygon
Thank you for your attention
Any questions ?