Ermittlung Eines Guten Wegenetzes Für Navigationsalgorithmen (vortrag)

  • Uploaded by: Jens Remus
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ermittlung Eines Guten Wegenetzes Für Navigationsalgorithmen (vortrag) as PDF for free.

More details

  • Words: 2,127
  • Pages: 57
Informatik-Seminar (Spiele-KI) Ermittlung eines guten Wegenetzes für Navigationsalgorithmen

Jens Remus

[email protected] Technische Informatik

30. April 2007

Agenda 1

Einleitung Motivation Begrisdenitionen Suchraum- / Spielweltrepräsentationen

2

Automatische Generierung von Navigation Meshes Eigenschaften guter bzw. optimaler Navigation Meshes Operationen auf konvexen Polygonen Generierung des Navigation Mesh aus der Spielweltgeometrie Optimierung der Datenstrukturen

3

Ausblick AI Game Programming Wisdom 4

Jens Remus (FH Wedel)

30.05.2007

2 / 35

Agenda 1

Einleitung Motivation Begrisdenitionen Suchraum- / Spielweltrepräsentationen

2

Automatische Generierung von Navigation Meshes Eigenschaften guter bzw. optimaler Navigation Meshes Operationen auf konvexen Polygonen Generierung des Navigation Mesh aus der Spielweltgeometrie Optimierung der Datenstrukturen

3

Ausblick AI Game Programming Wisdom 4

Jens Remus (FH Wedel)

30.05.2007

3 / 35

Motivation Die Performanz der Spiele-KI Navigation ist abhängig von: Suchalgorithmus (Best-First,

Dijkstra, A*,

...)

Suchraum- / Spielweltrepräsentation (Grids, Waypoints,

Meshes,

Navigation

...)

Vorhergehender Vortrag Die Optimierung von Suchalgorithmen wurde im vorhergehenden Vortrag Anpassungen des A*-Algorithmus an reale Anwendungen am Beispiel des

A* Algorithmus

von Jan Schliep erläutert.

Dieser Vortrag Dieser Vortrag erläutert die Optimierung des Suchraums  der Repräsentation der Spielwelt für Navigationsalgorithmen am Beispiel der

Navigation Meshes. Jens Remus (FH Wedel)

30.05.2007

4 / 35

Motivation Die Performanz der Spiele-KI Navigation ist abhängig von: Suchalgorithmus (Best-First,

Dijkstra, A*,

...)

Suchraum- / Spielweltrepräsentation (Grids, Waypoints,

Meshes,

Navigation

...)

Vorhergehender Vortrag Die Optimierung von Suchalgorithmen wurde im vorhergehenden Vortrag Anpassungen des A*-Algorithmus an reale Anwendungen am Beispiel des

A* Algorithmus

von Jan Schliep erläutert.

Dieser Vortrag Dieser Vortrag erläutert die Optimierung des Suchraums  der Repräsentation der Spielwelt für Navigationsalgorithmen am Beispiel der

Navigation Meshes. Jens Remus (FH Wedel)

30.05.2007

4 / 35

Motivation Die Performanz der Spiele-KI Navigation ist abhängig von: Suchalgorithmus (Best-First,

Dijkstra, A*,

...)

Suchraum- / Spielweltrepräsentation (Grids, Waypoints,

Meshes,

Navigation

...)

Vorhergehender Vortrag Die Optimierung von Suchalgorithmen wurde im vorhergehenden Vortrag Anpassungen des A*-Algorithmus an reale Anwendungen am Beispiel des

A* Algorithmus

von Jan Schliep erläutert.

Dieser Vortrag Dieser Vortrag erläutert die Optimierung des Suchraums  der Repräsentation der Spielwelt für Navigationsalgorithmen am Beispiel der

Navigation Meshes. Jens Remus (FH Wedel)

30.05.2007

4 / 35

Begrisdenitionen

Vertex (latein: Punkt) Punkt, Vektor oder n-Tupel im Raum. Ecke eines Polygons. Polygon (griechisch: Vieleck'") Gebiet einer Fläche, welche durch geschlossenen Streckenzug begrenzt ist. konvexes Polygon Alle inneren Winkel des Polygons

≤ 180◦ .

Triangulation Verfahren zur Erzeugung eines Dreiecknetztes aus einer Punktmenge.

Jens Remus (FH Wedel)

30.05.2007

5 / 35

Begrisdenitionen Polygon: konvex, konkav

Abbildung: konvexes Polygon Jens Remus (FH Wedel)

Abbildung: konkaves Polygon 30.05.2007

6 / 35

Begrisdenitionen Triangulation

Abbildung: Delaunay-Triangulation einer Punktmenge Jens Remus (FH Wedel)

30.05.2007

7 / 35

Suchraum- / Spielweltrepräsentationen Alle Suchräume sind Graphen Sie bestehen aus: Navigationsfeldern / - knoten, den Ecken Verbindungen zwischen den Feldern, den Kanten

Kriterien bei der Auswahl der Suchraumrepräsentation Performanz (Geschwindigkeit der ermöglichten Suchen) Speicherbedarf





Bewegungsfähigkeiten der Agenten Generierung des Suchraums

Jens Remus (FH Wedel)

30.05.2007

8 / 35

Suchraum- / Spielweltrepräsentationen Alle Suchräume sind Graphen Sie bestehen aus: Navigationsfeldern / - knoten, den Ecken Verbindungen zwischen den Feldern, den Kanten

Kriterien bei der Auswahl der Suchraumrepräsentation Performanz (Geschwindigkeit der ermöglichten Suchen) Speicherbedarf





Bewegungsfähigkeiten der Agenten Generierung des Suchraums

Jens Remus (FH Wedel)

30.05.2007

8 / 35

Suchraum- / Spielweltrepräsentationen

Abbildung: Beispiel-Spielwelt,

Jens Remus (FH Wedel)

Pathnding Demo,

Paul Tozour

30.05.2007

9 / 35

Suchraum- / Spielweltrepräsentationen Regular Grids (Reguläre Gitter): Square

Abbildung: Square Cells, 4-Way Jens Remus (FH Wedel)

Abbildung: Square Cells, 8-Way 30.05.2007

10 / 35

Suchraum- / Spielweltrepräsentationen Regular Grids (Reguläre Gitter): Hexagonal

Abbildung: Hexagonal Cells Jens Remus (FH Wedel)

30.05.2007

11 / 35

Suchraum- / Spielweltrepräsentationen Corner Graphs

Abbildung: Corner Graph Jens Remus (FH Wedel)

30.05.2007

12 / 35

Suchraum- / Spielweltrepräsentationen Waypoint Graphs

Abbildung: Waypoint Graph Jens Remus (FH Wedel)

30.05.2007

13 / 35

Suchraum- / Spielweltrepräsentationen Circle-Based Waypoint Graphs

Abbildung: Circle-Based Waypoint Graph Jens Remus (FH Wedel)

30.05.2007

14 / 35

Suchraum- / Spielweltrepräsentationen Space-Filling Volumes

Abbildung: Space-Filling Volumes Jens Remus (FH Wedel)

30.05.2007

15 / 35

Suchraum- / Spielweltrepräsentationen Space-Filling Volumes: Beispiel

Abbildung:

Navigation Areas

in Dust, Counter-Strike:Source (Valve),

[Michael Booth, Game Developers Conference 2004]

Jens Remus (FH Wedel)

30.05.2007

16 / 35

Suchraum- / Spielweltrepräsentationen Space-Filling Volumes: Beispiel

Abbildung:

Navigation Areas

in Dust, Counter-Strike:Source (Valve),

[Michael Booth, Game Developers Conference 2004]

Jens Remus (FH Wedel)

30.05.2007

16 / 35

Suchraum- / Spielweltrepräsentationen Space-Filling Volumes: Beispiel

Abbildung:

Navigation Areas

in Dust, Counter-Strike:Source (Valve),

[Michael Booth, Game Developers Conference 2004]

Jens Remus (FH Wedel)

30.05.2007

16 / 35

Suchraum- / Spielweltrepräsentationen Space-Filling Volumes: Beispiel

Abbildung:

Navigation Areas

in Dust, Counter-Strike:Source (Valve),

[Michael Booth, Game Developers Conference 2004]

Jens Remus (FH Wedel)

30.05.2007

16 / 35

Suchraum- / Spielweltrepräsentationen Navigation Meshes

Abbildung: Navigation Mesh (NavMesh),

Abbildung: Navigation Mesh (NavMesh),

Triangle-Based

N-Sided-Poly-Based

Jens Remus (FH Wedel)

30.05.2007

17 / 35

Suchraum- / Spielweltrepräsentationen Navigation Meshes: Beispiel

Abbildung:

Navigation Mesh,

Jens Remus (FH Wedel)

[Paul Tozour, AI Game Programming Wisdom] 30.05.2007

18 / 35

Suchraum- / Spielweltrepräsentationen Navigation Meshes: Beispiel

Abbildung:

Navigation Mesh,

Jens Remus (FH Wedel)

[Paul Tozour, AI Game Programming Wisdom] 30.05.2007

18 / 35

Agenda 1

Einleitung Motivation Begrisdenitionen Suchraum- / Spielweltrepräsentationen

2

Automatische Generierung von Navigation Meshes Eigenschaften guter bzw. optimaler Navigation Meshes Operationen auf konvexen Polygonen Generierung des Navigation Mesh aus der Spielweltgeometrie Optimierung der Datenstrukturen

3

Ausblick AI Game Programming Wisdom 4

Jens Remus (FH Wedel)

30.05.2007

19 / 35

Automatische Generierung von Navigation Meshes

Das im folgenden erläuterte Verfahren basiert auf: Building a Near-Optimal Navigation Mesh [Paul Tozour, AI Game Programming Wisdom] Improving on Near-Optimality: More Techniques for Building Navigation Meshes [Fredrik Farnstrom, AI Game Programming Wisdom 3]

Jens Remus (FH Wedel)

30.05.2007

20 / 35

Automatische Generierung von Navigation Meshes Eigenschaften guter bzw. optimaler Navigation Meshes

Eigenschaften eines optimalen

Navigation Mesh:

Vollständigkeit Einfachheit Konsistenz Exzellente Laufzeit Vollständige Automatisierung Zumutbare Generationszeit Robust im Bezug auf Degenerationen Robust in der Handhabung von zusätzlicher einschneidender Geometrie

Jens Remus (FH Wedel)

30.05.2007

21 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 2

→1

Merge (Hertel-Mehlhorn Algorithmus)

Hertel-Mehlhorn Algorithmus 1

Triangulation der Fläche.

2

Enfernung einer unwichtigen Kante zwischen zwei Polygonen.

3

Wiederholung von Schritt 2 bis keine unwichtigen Kante mehr existiert.

Jens Remus (FH Wedel)

30.05.2007

22 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 2

Abbildung: 2

→1

Jens Remus (FH Wedel)

→1

Merge (Hertel-Mehlhorn Algorithmus)

Merge-Operation (Hertel-Mehlhorn Algorithmus) 30.05.2007

23 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 2

Abbildung: 2

→1

Jens Remus (FH Wedel)

→1

Merge (Hertel-Mehlhorn Algorithmus)

Merge-Operation (Hertel-Mehlhorn Algorithmus) 30.05.2007

23 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 2

Abbildung: 2

→1

Jens Remus (FH Wedel)

→1

Merge (Hertel-Mehlhorn Algorithmus)

Merge-Operation (Hertel-Mehlhorn Algorithmus) 30.05.2007

23 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 2

Abbildung: 2

→1

Jens Remus (FH Wedel)

→1

Merge (Hertel-Mehlhorn Algorithmus)

Merge-Operation (Hertel-Mehlhorn Algorithmus) 30.05.2007

23 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 2

Abbildung: 2

→1

Jens Remus (FH Wedel)

→1

Merge (Hertel-Mehlhorn Algorithmus)

Merge-Operation (Hertel-Mehlhorn Algorithmus) 30.05.2007

23 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 3

→2

Merge

Abbildung: 3

→2

Merge-Operation

Jens Remus (FH Wedel)

30.05.2007

24 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 3

→2

Merge

Abbildung: 3

→2

Merge-Operation

Jens Remus (FH Wedel)

30.05.2007

24 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 3

→2

Merge

Abbildung: 3

→2

Merge-Operation

Jens Remus (FH Wedel)

30.05.2007

24 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 3

→2

Merge

Abbildung: 3

→2

Merge-Operation

Jens Remus (FH Wedel)

30.05.2007

24 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: 3

→2

Merge

Abbildung: 3

→2

Merge-Operation

Jens Remus (FH Wedel)

30.05.2007

24 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen:

Abbildung: Jens Remus (FH Wedel)

N → 1 Merge

N→1

Merge-Operation 30.05.2007

25 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen:

Abbildung: Jens Remus (FH Wedel)

N → 1 Merge

N→1

Merge-Operation 30.05.2007

25 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: Subdivide

Abbildung: Subdivide-Operation, Dreieck und Viereck Jens Remus (FH Wedel)

30.05.2007

26 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: Subdivide

Abbildung: Subdivide-Operation, Dreieck und Viereck Jens Remus (FH Wedel)

30.05.2007

26 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: Subdivide

Abbildung: Subdivide-Operation, Dreieck und Viereck Jens Remus (FH Wedel)

30.05.2007

26 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: Subdivide

Abbildung: Subdivide-Operation, Dreieck und Viereck Jens Remus (FH Wedel)

30.05.2007

26 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: Subdivide

Abbildung: Subdivide-Operation, Dreieck und Viereck Jens Remus (FH Wedel)

30.05.2007

26 / 35

Automatische Generierung von Navigation Meshes Operationen auf konvexen Polygonen: Subdivide

Abbildung: Subdivide-Operation, Dreieck und Viereck Jens Remus (FH Wedel)

30.05.2007

26 / 35

Automatische Generierung von Navigation Meshes Generierung des Navigation Mesh aus der Spielweltgeometrie

Vollständig automatische Generierung des

Navigation Mesh

aus der

Spielweltgeometrie 1 2

Hinzufügen der Polygone der begehbaren Spielweltgeometrie. Wiederholte Anwendung der 2

→1

Merge-Operation

(Hertel-Mehlhorn).

→ 2 Merge-Operation. N → 1 Merge-Operation.

3

Wiederholte Anwendung der 3

4

Wiederholte Anwendung der

5

Wiederholung der Schritte 2, 3 und 4 bis keine weitere Optimierung mehr möglich.

NavMesh-Knoten.

6

Entfernung unnützer

7

Subtrahierung der statischen Hinderniss-Geometrie der Spielwelt (durch rekursive Anwendung der Subdivide-Operation).

8

Wiederholung der Schritte 2, 3 und 4 bis keine weitere Optimierung mehr möglich.

Jens Remus (FH Wedel)

30.05.2007

27 / 35

Automatische Generierung von Navigation Meshes Optimierung der Datenstrukturen: Normal-Pooling

Normal-Pooling: Speichern aller Normalen-Vektoren in einem Pool. Polygon speichert einen Zeiger oder Index auf einen Normalen-Vektor anstelle des Vektors selbst.

Jens Remus (FH Wedel)

30.05.2007

28 / 35

Automatische Generierung von Navigation Meshes Optimierung der Datenstrukturen: Vertex-Pooling

Vertex-Pooling: Speichern aller Vertices in einem Vertex-Pool (Hash Map). Polygon speichert Liste von 2- oder 4-Byte Indices auf Vertices anstelle der Vertices selbst.

Jens Remus (FH Wedel)

30.05.2007

29 / 35

Automatische Generierung von Navigation Meshes Optimierung der Datenstrukturen: Schnelle Bestimmung der direkten Nachbarschaft von Polygonen

Schnelle Bestimmung der direkten Nachbarschaft von Polygonen: Erweiterung des Vertex-Pooling. Vertex speichert Liste von Zeigern auf Polygone, die ihn verwenden. Suche aller benachbarten Polygone durch iterieren über Vertex-Pool. Suche der benachbarten Polygone zu einem bestimmten Polygon über dessen Vertices.

Jens Remus (FH Wedel)

30.05.2007

30 / 35

Agenda 1

Einleitung Motivation Begrisdenitionen Suchraum- / Spielweltrepräsentationen

2

Automatische Generierung von Navigation Meshes Eigenschaften guter bzw. optimaler Navigation Meshes Operationen auf konvexen Polygonen Generierung des Navigation Mesh aus der Spielweltgeometrie Optimierung der Datenstrukturen

3

Ausblick AI Game Programming Wisdom 4

Jens Remus (FH Wedel)

30.05.2007

31 / 35

AI Game Programming Wisdom 4, Februar 2008 Kapitel: Pathnding Team AI (Edmond Prakash) Memory Ecient Pathnding Abstractions (Nathan Sturtevant) Fast Pathnding Based on Triangulation Abstraction (Michael Buro) Real-Time Dynamic NavMesh Generation (Paul Marden, Forrest Smith) Automatic Generation of Path Nodes for a General Purpose 3D Environment (John Ratcli ) Intrinsic Detail in Navigation Mesh Generation (James Stewart, Colt McAnlis) NavMesh Generation: An Empirical Approach (David Hamm) Navigation Graph Generation in Highly Dynamic World (Ramon Axelrod) Path Planning in Dynamic Environments (Ferns Paanakker) Practical Path Finding in Dynamic Environments (Per-Magnus Olsson) Post Processing for High Quality Turns (Chris Jurney)

Annähernd 50% der Artikel des Kapitels Pathnding handeln von

Navigation Meshes. Jens Remus (FH Wedel)

30.05.2007

32 / 35

AI Game Programming Wisdom 4, Februar 2008 Kapitel: Pathnding Team AI (Edmond Prakash) Memory Ecient Pathnding Abstractions (Nathan Sturtevant) Fast Pathnding Based on Triangulation Abstraction (Michael Buro) Real-Time Dynamic NavMesh Generation (Paul Marden, Forrest Smith) Automatic Generation of Path Nodes for a General Purpose 3D Environment (John Ratcli ) Intrinsic Detail in Navigation Mesh Generation (James Stewart, Colt McAnlis) NavMesh Generation: An Empirical Approach (David Hamm) Navigation Graph Generation in Highly Dynamic World (Ramon Axelrod) Path Planning in Dynamic Environments (Ferns Paanakker) Practical Path Finding in Dynamic Environments (Per-Magnus Olsson) Post Processing for High Quality Turns (Chris Jurney)

Annähernd 50% der Artikel des Kapitels Pathnding handeln von

Navigation Meshes. Jens Remus (FH Wedel)

30.05.2007

32 / 35

Vielen Dank für die Aufmerksamkeit! Fragen?

Literatur I AI Game Programming Wisdom 1-3 Steve Rabin, Charles River Media Game Programming Gems 1-6 Mark DeLoura / Dante Treglia / Andrew Kirmse / Kim Pallister / Mike Dickheiser, Charles River Media Fredrik FarnstromRockstar, San Diego Near-Optimality: More Techniques for Building Navigation Meshes

AI Game Programming Wisdom 3,

Charles River Media, 2006,

Kapitel 2.2, S. 113-128 Paul TozourIon Storm Austin Building a Near-Optimal Navigation Mesh

AI Game Programming Wisdom,

Charles River Media, 2002,

Kapitel 4.3, S. 171-185

Jens Remus (FH Wedel)

30.05.2007

34 / 35

Literatur II

Paul TozourRetro Studios Search Space Representations

AI Game Programming Wisdom 2,

Charles River Media, 2003,

Kapitel 2.1, S. 85-102 Michael BoothTurtle Rock Studios The Making of the Ocial Counter-Strike Bot

Game Developers Conference 2004, http://www.gdconf.com/conference/2004.htm

Jens Remus (FH Wedel)

30.05.2007

35 / 35

Related Documents

Eines
June 2020 27
Eines
June 2020 30
Vortrag
November 2019 24
Vortrag Kristiansand_1
November 2019 19
Vortrag Kristiansand_5
November 2019 12
Eric Vortrag
June 2020 11

More Documents from "Eric Guimatsia"

October 2019 6
October 2019 10
Bis.docx
August 2019 23