290 likes | 323 Views
This paper presents a simple kinetic visibility polygon using kinetic data structures framework. It focuses on maintaining the visibility polygon continuously by detecting crossing events and updating them. The approach involves moving items with attributes, such as convex hull and Voronoi diagram. The idea is to animate the proof of correctness through time as items move. The paper also discusses the concept of detecting consecutive rays in an ordered set and the importance of updating the visibility polygon using a weak radial decomposition of the scene. The conclusion highlights the benefits and challenges of this approach and suggests future work on extending it to 3D scenarios.
E N D
A simple kinetic visibility polygon EWCG’02 Samuel Hornus, Claude Puech
Hypothesis : • simply-polygonal obstacles • known algebraic motion (everything can move) • Goals : • maintaining the visibility polygon continuously • Solution : • Kinetic Data Structure framework
Overview • Kinetic Data Structures (KDS) • Visibility polygon • Detecting crossing events • Updating the visibility polygon • Conclusion contributions
Overview • Kinetic Data Structures (KDS) • Visibility polygon • Detecting crossing events • Updating the visibility polygon • Conclusion
certificate failure 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 [Bash and Guibas 95]
Proof of correctness Certificate failure Proof update Attribute update Kinetic Data Structures [Bash and Guibas 95]
Overview • Kinetic Data Structures (KDS) • Visibility polygon • Detecting crossing events • Updating the visibility polygon • Conclusion
Visibility polygon • n vertices / edges • Cyclically ordered set of the n tangent rays • The visible edge is stored between each pair of tangent rays
Overview • Kinetic Data Structures (KDS) • Visibility polygon • Detecting crossing events • Updating the visibility polygon • Conclusion
Detecting Events consecutive rays in the ordered set
crossing event ! Detecting Events
Detecting Events next crossing event
Overview • Kinetic Data Structures (KDS) • Visibility polygon • Detecting crossing events • Updating the visibility polygon • Conclusion
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.
Updating the Visibility Polygon • Each tangent ray consists of • the vertex of « tangency »
8 8 8 8 8 8 8 Updating the Visibility Polygon • Each tangent ray consists of • the vertex of « tangency » • - the hit edge along the ray, beyond the vertex of tangency 8
8 8 8 8 8 8 8 8 8 Updating the Visibility Polygon • Each tangent ray consists of • the vertex of « tangency » • - the hit edge along the ray • the visible edge at its left
8 8 8 8 8 8 8 8 8 Updating the Visibility Polygon • Each 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…
Updating the Visibility Polygon Tangent ray type
Updating the Visibility Polygon Before the crossing hit2 hit1 R L
Updating the Visibility Polygon Before the crossing hit2 hit1 R L • There is no other tangent ray between these ones
Updating the Visibility Polygon Before the crossing hit2 hit1 R C L • There is no other tangent ray between these ones • C exists if and only if • hit1 is different from hit2
Updating the Visibility Polygon Before the crossing, when C does not exist hit2 hit1 R L visible = hit2 = hit1
Updating the Visibility Polygon Before the crossing, when C does not exist After the crossing, hit2 R hit2 hit1 hit1 := R R L L visible = hit2 = hit1 visible := L
Updating the Visibility Polygon Before the crossing, when C does not exist hit2 R C L hit1 = C visible = C
Updating the Visibility Polygon hit2 After the crossing, Before the crossing, when C exists R hit2 C R hit1 L C L hit1 = C visible = C visible := L
Conclusion • Pros • Concave (simple) polygons • Constant time processing of an event • Cons • High quantity of crossing events • Future Work • What about 3d ?
A simple kinetic visibility polygon Thank you for your attention Any questions ?