-
GEBIET DER ERFINDUNG
-
Die offenbarten erfindungsgemäßen Ausführungsformen beziehen sich im Allgemeinen auf computergenerierte Bilderzeugung, und beziehen sich spezieller auf Menschenmassensimulationsaufgaben bei computergenerierter Bilderzeugung.
-
HINTERGRUND DER ERFINDUNG
-
Anwendungen einer virtuellen Welt (z. B. Second Life) sind im Begriff, eine wichtige Komponente des CVC-(Connected Visual Computing)-Paradigmas zu werden. Eine der wichtigen auszuführenden Aufgaben ist die künstliche Intelligenz, A. I. (artificial intelligence), wobei die Charaktere in der virtuellen Welt spezifische zugeteilte Aufgaben ausführen und sich durch die Welt navigieren. Die Charakternavigation, die ebenfalls als Menschenmassensimulation bezeichnet wird, ist eine rechenintensive Aufgabe, und bestehende Algorithmen können nur ein paar tausend Agenten in Echtzeit simulieren. Dies ist eine Größenordnung hinsichtlich der Unterstützung der zehn- bis hunderttausenden Agenten, die erforderlich wären, um ein realistisches Szenario einer virtuellen Welt zu generieren.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die offenbarten Ausführungsformen werden besser bei Durchsicht der folgenden detaillierten Beschreibung verstanden, die in Verbindung mit den begleitenden Figuren in den Zeichnungen gegeben wird, in denen:
-
1 eine Darstellung eines einfachen Menschenmassensimulationsszenarios ist, das drei Agenten involviert, gemäß einer erfindungsgemäßen Ausführungsform;
-
2 eine Veranschaulichung eines geometrischen Ansatzes für die Entdeckung einer kollisionsfreien Geschwindigkeit in einem Menschenmassensimulationsszenario ist, gemäß einer erfindungsgemäßen Ausführungsform;
-
3 ein Ablaufdiagramm ist, das ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, gemäß einer erfindungsgemäßen Ausführungsform; und
-
4 ein Ablaufdiagramm ist, das ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, in der der Agent eine Anfangsgeschwindigkeit aufweist, und mit einer Vielzahl von Hinderniskegeln verbunden ist, die in einem Geschwindigkeitsintervall verbleiben, gemäß einer erfindungsgemäßen Ausführungsform.
-
Zum Zweck der Einfachheit und Klarheit der Veranschaulichung veranschaulichen die Zeichnungen in den Figuren die allgemeine Art der Ausgestaltung, und Beschreibungen und Details von wohlbekannten Merkmalen und Techniken können weggelassen werden, um zu verhindern, dass die Erörterung der beschriebenen erfindungsgemäßen Ausführungsformen unnötigerweise in den Hintergrund gerückt wird. Außerdem sind Elemente in den Zeichnungen in den Figuren nicht notwendigerweise maßstabgetreu gezeichnet. Beispielsweise können die Abmessungen einiger der Elemente in den Figuren bezogen auf andere Elemente übertrieben groß dargestellt sein, um dabei zu helfen, das Verständnis der erfindungsgemäßen Ausführungsformen zu verbessern. Die gleichen Bezugsnummern in unterschiedlichen Figuren kennzeichnen die gleichen Elemente, während ähnliche Bezugsnummern ähnliche Elemente anzeigen können, dies aber nicht notwendigerweise tun.
-
Die Begriffe „erste/r/s”, „zweite/r/s”, „dritte/r/s”, „vierte/r/s” und dergleichen in der Beschreibung und in den Ansprüchen werden, wenn überhaupt, zur Unterscheidung zwischen ähnlichen Elementen verwendet, und werden nicht notwendigerweise zur Beschreibung einer besonderen sequentiellen oder chronologischen Reihenfolge verwendet. Es ist selbstverständlich, dass die so verwendeten Begriffe unter angemessenen Umständen untereinander austauschbar sind, derart, dass die hierin beschriebenen erfindungsgemäßen Ausführungsformen beispielsweise in der Lage sind, in Abläufen zu betrieben zu werden, neben denjenigen, die hierin veranschaulicht oder anderweitig beschrieben sind. Gleichermaßen, wenn ein Verfahren hierin als eine Reihe von Schritten umfassend beschrieben ist, ist die Reihenfolge solcher Schritte, wie hierin aufgezeigt, nicht notwendigerweise die einzige Reihenfolge, in der solche Schritte ausgeführt werden können, und bestimmte der angegebenen Schritte können möglicherweise weggelassen werden und/oder bestimmte andere Schritte, die hierin nicht beschrieben sind, können dem Verfahren möglicherweise hinzugefügt werden. Des Weiteren sollen die Begriffe „umfassen”, „beinhalten”, „aufweisen” und jegliche Variationen davon eine nicht-alleinige Einbeziehung abdecken, derart, dass ein Prozess, Verfahren, Produkt oder eine Vorrichtung, der/die eine Liste von Elementen umfasst, nicht notwendigerweise auf diese Elemente beschränkt ist, sondern dass er/sie andere Elemente beinhalten kann, die nicht ausdrücklich aufgelistet sind oder solch einem Prozess, Verfahren, Produkt oder solch einer Vorrichtung innewohnend sind.
-
Die Begriffe „links”, „rechts”, „vorne”, „hinten”, „oben”, „unten”, „über”, „unter” und der gleichen in der Beschreibung und in den Ansprüchen werden, wenn überhaupt, zum Zwecke der Beschreibung verwendet, und werden nicht notwendigerweise zur Beschreibung von permanenten relativen Positionen verwendet. Es ist selbstverständlich, dass die so verwendeten Begriffe unter angemessenen Umständen untereinander austauschbar sind, derart, dass die hierin beschriebenen erfindungsgemäßen Ausführungsformen beispielsweise in der Lage sind, in anderen Richtungen betrieben zu werden, neben denjenigen, die hierin veranschaulicht oder anderweitig beschrieben sind. Der Begriff „gekoppelt”, wie hierin verwendet, wird definiert als direkt oder indirekt auf eine elektrische oder nicht-elektrische Art und Weise verbunden. Objekte, die hierin als „angrenzend” zueinander beschrieben sind, können in physischem Kontakt zueinander sein, in unmittelbarer Nähe zueinander sein, oder in dem gleichen allgemeinen Bereich oder Gebiet zueinander sein, wie für den Kontext angemessen ist, in dem der Ausdruck verwendet wird. Vorkommnisse des Ausdrucks „bei einer Ausführungsform” beziehen sich hierin nicht notwendigerweise alle auf die gleiche Ausführungsform.
-
DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
-
Bei einer erfindungsgemäßen Ausführungsform umfasst ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung das Identifizieren eines quadratischen Optimierungsproblems, das der kollisionsfreien Geschwindigkeit entspricht, und das Finden einer genauen Lösung für das quadratische Optimierungsproblem, indem ein geometrischer Ansatz verwendet wird.
-
Menschenmassensimulation in virtuellen Welten wird unter Anbetracht des Aufkommens von sozialen Netzwerkseiten in 3D immer wichtiger. Gleichermaßen ist Menschenmassensimulation eine immer wichtiger werdende Komponente des A.I.-Teils der visuellen Simulationsschleife. Das Berechnen von kollisionsfreien Geschwindigkeiten der Agenten ist der zeitaufwendigste Teil des Menschenmassensimulationsalgorithmus. Das heutzutage am häufigsten verwendete Verfahren nennt sich reziprokes Geschwindigkeitshindernis (Reciprocal Velocity Obstacle, RVO), wobei Hinderniskegel für einen Agenten in dem Geschwindigkeitsintervall gebildet werden, und eine Geschwindigkeit wird berechnet, die die Zeit bis zur Kollision mit diesen Kegeln maximiert. Der Algorithmus verwendet ein abtastbasiertes Verfahren, wobei ein Satz an 200–300 Abtastungen aus einer gleichmäßigen Verteilung von Punkten ausgewählt wird, und die Abtastung, die die Zeit bis zur Kollision maximiert, wird als die Geschwindigkeit für den nächsten Zeitschritt des Agenten ausgewählt. Bei diesem Verfahren ist nicht einmal sicher, ob eine kollisionsfreie Geschwindigkeit gefunden wird, und es führt tatsächlich oft zu Kollisionen unter Agenten.
-
Im Gegensatz dazu formulieren die erfindungsgemäßen Ausführungsformen das kollisionsfreie Geschwindigkeitsproblem als ein quadratisches Optimierungsproblem, und lösen dies unter Verwendung eines geometrischen Ansatzes genau, wie nachstehend weiter beschrieben wird. (Ein quadratisches Optimierungsproblem sucht einen optimalen Wert, wobei die Optimierungsfunktion quadratisch ist und die Beschränkungsfunktionen linear sind.) Erfindungsgemäße Ausführungsformen ermöglichen, dass lokale Kollisionsverhinderungsgeschwindigkeiten der Agenten wesentlich schneller als bei derzeit verwendeten Verfahren berechnet werden können, und ermöglichen die Generation realistischer 3D-Menschenmassensimulationen, neuer Anwendungsfallszenarien und reicherer Benutzererfahrung. Die offenbarten Verfahren sind ebenfalls anwendbar bei modernen 3D-Spielen, da diese ein spezifisches Beispiel virtueller Welten sind.
-
Unter jetziger Bezugnahme auf die Zeichnungen, ist 1 eine Darstellung eines einfachen Menschenmassensimulationsszenarios 100 im Geschwindigkeitsintervall, das drei Agenten involviert, gemäß einer erfindungsgemäßen Ausführungsform. Wie in 1 veranschaulicht, beinhalten die drei Agenten einen Agenten 110 zusammen mit Agenten 120 und 130, die Agent 110 meiden muss. Pfeile 115 (einer für jeden der Agenten 110, 120 und 130) stellen die bevorzugte Geschwindigkeit (z. B. unter Verwendung von Berechnungen gemäß erfindungsgemäßer Ausführungsformen gefunden) für jeden Agenten in dem nächsten Frame dar. Hinderniskegel 125 und 135 stellen die Geschwindigkeitshindernisse für Agent 110 dar, die sich entsprechend auf Agenten 120 bzw. 130 beziehen. Diese Geschwindigkeitshindernisse bilden die Geschwindigkeitsbereiche, die zu Kollisionen mit den anderen Agenten führen. Mit anderen Worten entspricht jeder Punkt innerhalb der Kegel einer Geschwindigkeit, die schließlich in einer Kollision zwischen Agent 110 und einem oder beiden der Agenten 120 und 130 resultiert (solange diese Agenten eine konstante Geschwindigkeit aufrechterhalten), während jeder Punkt außerhalb beider Kegel einer kollisionsfreien Geschwindigkeit entspricht. Selbstverständlich können Agenten 120 und 130 sehr wohl von einem Moment zum nächsten Änderungen bei der Geschwindigkeit zeigen, wodurch die Annahme konstanter Geschwindigkeit eine Fehleinschätzung ist, da aber die Hinderniskegel jeden Zeitschritt oder Aktualisierungsframe aktualisiert werden, wird dieses potentielle Problem abgeschwächt.
-
Wie gezeigt, überschneidet sich der Geschwindigkeitspfeil 115 für Agent 110 mit Hinderniskegel 125, was bedeutet, dass eine Kollision mit Agent 120 kurz bevor steht. Eine neue Geschwindigkeit für Agent 110 muss daher berechnet werden, um die Kollision zu verhindern; diese neue Geschwindigkeit sollte außerhalb beider Hinderniskegel liegen. Unter anhaltender Bezugnahme auf 1, wird solch eine neue Geschwindigkeit durch einen Pfeil 117 dargestellt. Da diese neue Geschwindigkeit außerhalb Hinderniskegel 125 und 135 liegt, wird diese (basierend auf den Informationen, die zu der Zeit, die in der Figur abgebildet ist, bekannt sind) es Agent 110 erlauben, eine Kollision mit Agenten 120 und 130 zu vermeiden. Selbstverständlich stellt Pfeil 117 nur eine von vielen möglichen kollisionsfreien Geschwindigkeiten dar. Diese bestimmte Geschwindigkeit wurde ausgewählt, da sie außerhalb aller Hinderniskegel liegt, und der Anfangsgeschwindigkeit am nächstgelegenen ist, daher werden abrupte Änderungen bei der Geschwindigkeit für Agent 110 minimiert, und gleichmäßige und natürliche Bewegung wird ermöglicht. Die Art und Weise, auf die diese nächstgelegene Geschwindigkeit ausgewählt wird, wird nun detaillierter beschrieben.
-
Wie erwähnt, berechnen erfindungsgemäße Ausführungsformen die neue (kollisionsfreie) Geschwindigkeit (die, was nicht vergessen werden darf, ein Punkt in einem 2D-Geschwindigkeitsintervall ist), die außerhalb aller Hinderniskegel liegt, und am geringsten von dem Anfangsgeschwindigkeitspunkt abweicht. Dies kann durchgeführt werden, indem der euklidische Abstand der neuen Geschwindigkeit zu der Anfangsgeschwindigkeit minimiert wird, um das folgende quadratische Optimierungsproblem zu erhalten (in dem (x0, y0) die Anfangsgeschwindigkeit darstellt, und (x, y) die neue Geschwindigkeit des betreffenden Agenten darstellt): Minimieren von (x – x0)2 + (y – y0)2, sodass Alx + Bly < Cl für alle Kegelsegmente ist. (1)
-
Für N-Kegel gibt es 2N solcher (linearer) Beschränkungen
-
Anstelle der Verwendung von Verfahren, wie z. B. das Innenpunkt-, Aktivsatz- oder konjugierte Gradienten-Verfahren, nutzen erfindungsgemäße Ausführungsformen die geometrische Natur des Menschenmassensimulationsproblems aus, um die resultierende Geschwindigkeit (x, y) geometrisch zu berechnen. Beispielsweise kann die angemessene resultierende Geschwindigkeit visualisiert werden, indem Hinderniskegel im Geschwindigkeitsintervall manipuliert werden, wie veranschaulicht in 2.
-
2 veranschaulicht einen Hinderniskegel 225 und einen Hinderniskegel 235, die beide für einen betreffenden Agenten (nicht gezeigt) als ein Ergebnis der Gegenwart von anderen Agenten in der Nähe (ebenfalls nicht gezeigt) aufkommen. Eine Anfangsgeschwindigkeit für den betreffenden Agenten ist durch einen Punkt 215 dargestellt. Erfindungsgemäße Ausführungsformen fordern das Auftrennen von Hinderniskegeln 225 und 235 in „Segmente”, die Längen der Kegelgrenzlinien sind, die von einem Linienende oder von einer Überschneidung mit einem anderen Liniensegment beendet werden. (Durch Veranschaulichung zeigt 2 beispielsweise ein Liniensegment 237 innerhalb Hinderniskegel 235, und zeigt weiter Liniensegmente 227 und 228 innerhalb Hinderniskegel 225.) Als nächstes werden die Kegelsegmente in „Innen-” und „Außen-”bereiche aufgeteilt, abhängig von ihrem Standort entweder innerhalb oder außerhalb der anderen Kegel, wie veranschaulicht (wobei „Außen-”bereiche Bereiche auf Kegelgrenzen beinhalten, vorausgesetzt, diese befinden sich nicht innerhalb irgendwelcher anderer Kegel). Das Testen von Innen-/Außenkegelsegmenten ist im Grunde genommen eine lineare Beschränkungsüberprüfung, und kann durch einen Ausdruck der Form Ax + By < C dargestellt werden. Nach der Aufteilung in Innen- und Außensegmente wird der Mindestabstand eines jeden Segments zu dem Anfangspunkt berechnet, um den nächstgelegenen Geschwindigkeitspunkt eines jeden Segments zu finden (d. h. der Punkt auf jedem Segment, der dem Anfangsgeschwindigkeitspunkt am nächstgelegenen ist), und anschließend wird von diesen nächstgelegenen Punkten der gesamttechnisch nächstgelegene Geschwindigkeitspunkt als die neue Geschwindigkeit ausgewählt. Dieser Punkt ist in 2 durch einen Punkt 217 dargestellt.
-
Bei einigen Szenarien kann das Finden einer Lösung nicht möglich sein. In diesen Fällen wird die unbedeutendste Beschränkung entfernt (z. B. der Agent, der am unwichtigsten für den betreffenden Agenten ist, wird ignoriert), und das Optimierungsproblem wird gemäß der vorstehend dargelegten Schritte gelöst. Beispielsweise kann der unwichtigste Agent als der Agent genommen werden, der am weitesten von dem betreffenden Agenten entfernt ist, oder der Agent, der sich in eine Richtung bewegt, die direkt entgegengesetzt der Bewegung des betreffenden Agenten ist, oder die den betreffenden Agenten ansonsten am unwahrscheinlichsten beeinflussen kann.
-
Erfindungsgemäße Ausführungsformen ermöglichen Menschenmassensimulationsausführungszeiten (für eine Anzahl an Agenten, die zwischen 100 und 250.000 und mehr variiert), deren Größenordnung schneller ist, als die besten Ausführungszeiten, über die in der Literatur berichtet wird. Außerdem skalieren erfindungsgemäße Ausführungsformen bei großen Anzahlen an Kernen (32 und mehr) fast linear, und können Parallelismus auf Datenebene ausnutzen, um noch schnellere Beschleunigungen zu erzielen. Auf einem 8-Kern Intel Penryn System wurde beispielsweise gesamttechnisch ein 7 × paralleles Skalieren beobachtet. Wenn mit einem Mehrkernsimulator simuliert wurde, wurde ein 29 × Skalieren auf 32 Kernen erreicht. Insgesamt, auf einem 8-Kern, 3.2 GHz Penryn System, sind erfindungsgemäße Ausführungsformen in der Lage, 15.000 Agenten bei 58 Frames pro Sekunde (frames per second, FPS), und 5.000 Agenten in einer komplexen Umgebung bei 121 FPS zu simulieren.
-
Die vorangehenden Ergebnisse wurden erhalten, und erfindungsgemäße Ausführungsformen wurden getestet und mit bestehenden Verfahren verglichen, indem Eingabedaten verwendet wurden, wie sie nun beschrieben werden.
-
Kreis-100: 100 Agenten starten gleichmäßig um einen Kreis herum angeordnet, und versuchen sich direkt durch den Kreis zu ihrer antipodischen Position auf der anderen Seite zu bewegen. Das Szenario wird sehr überfüllt, wenn alle Agenten in der Mitte aufeinandertreffen, was zu einem Wirbelverhalten führt.
-
Vier-Flüsse: 2.000 Agenten sind als vier Flüsse organisiert, die entlang der Diagonalen eines Quadrats gehen. Gleichmäßige Bewegung, Spurbildung und einige Wirbel werden beobachtet.
-
Hin- und Herbewegung: Zwischen 10 und 100 Agenten bewegen sich entlang einer Linie hin- und her-. Dieser Test wurde parallel mit OpenSteer (eine C++ Library, um bei der Ausgestaltung von Führungsverhalten für autonome Charaktere bei Spielen und Animationen zu helfen) betrieben, um die Anzahl an Kollisionen von unmodifiziertem OpenSteer gegen Kollisionen von OpenSteer in Kombination mit erfindungsgemäßen Ausführungsformen zu vergleichen.
-
Gebäudeevakuierung: Agenten werden in unterschiedlichen Räumen eines Bürogebäudes in Anfangspositionen aufgestellt. Die Szene hat 218 Hindernisse, und der Plan besteht aus 429 Knoten und 7.200 Kanten. Die Agenten bewegen sich zu den Zielpositionen hin, die den Ausgangsschildern entsprechen. Es wurden drei Versionen dieses Szenarios mit 500, 1.000 bzw. 5.000 Agenten verwendet.
-
Stadionszene: Dies simuliert die Bewegung von 25.000 Agenten beim Aufstehen aus ihren Sitzen und ihrem Austritt aus dem Stadion. Die Szene hat in etwa 1.400 Hindernisse, und der Plan besteht aus nahezu 2.000 Knoten und 3.200 Kanten. Die Agenten bewegen sich entlang der Korridore, was zu einer Verstopfung und dichtgepackten Szenarien führt.
-
Stadtsimulation: Ein Stadtmodell mit Gebäuden und Straßen sowie 1.500 Hindernissen wurde verwendet. Der Plan hat 480 Knoten und 916 Kanten. Die Bewegung unterschiedlicher Agenten wird simuliert, wie sie in der Stadt und bei Überschneidungen umherlaufen. Die Agenten bewegen sich unterschiedlich schnell, und überholen sich gegenseitig, und verhindern Kollisionen mit entgegenkommenden Agenten. Es wurden drei Versionen dieses Szenarios mit 10.000, 100.000 bzw. 250.000 Agenten verwendet.
-
3 ist ein Ablaufdiagramm, das ein Verfahren 300 zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, gemäß einer erfindungsgemäßen Ausführungsform. Die kollisionsfreie Geschwindigkeit wird unter Verwendung eines Rechengeräts berechnet. Bei einer Ausführungsform kann das Rechengerät über ein Kommunikationsnetzwerk mit einem zweiten Rechengerät verbunden werden.
-
Ein Schritt 310 von Verfahren 300 ist es, ein quadratisches Optimierungsproblem zu identifizieren, das der kollisionsfreien Geschwindigkeit entspricht. Beispielsweise kann das quadratische Optimierungsproblem gleich dem Ausdruck (1) sein, der vorstehend erscheint. Als ein weiteres Beispiel kann das Rechengerät ein Client-Computer sein, das zweite Rechengerät kann ein Server sein, und das Kommunikationsnetzwerk kann das Internet sein.
-
Ein Schritt 320 von Verfahren 300 ist es, eine genaue Lösung bei dem Rechengerät für das quadratische Optimierungsproblem zu finden, indem ein geometrischer Ansatz verwendet wird. Bei bestimmten Ausführungsformen involviert der geometrische Ansatz das Identifizieren von Hinderniskegeln für den Agenten in einem Geschwindigkeitsintervall, und das Finden eines Punktes, der außerhalb der Hinderniskegel liegt (wobei der Punkt die kollisionsfreie Geschwindigkeit darstellt).
-
Bei einigen Ausführungsformen umfasst das Finden des (kollisionsfreien Geschwindigkeits-)Punkts das Identifizieren einer Vielzahl von Hinderniskegelgrenzsegmenten, das Identifizieren eines Teilsatzes der Hinderniskegelgrenzsegmente, die außerhalb aller Hinderniskegel liegen, das Berechnen (für jedes Hinderniskegelgrenzsegment in dem Teilsatz) eines Mindestabstands zu einem Anfangspunkt in dem Geschwindigkeitsintervall, der einer Anfangsgeschwindigkeit des Agenten entspricht, und das Auswählen eines kleinsten Mindestabstands der berechneten Mindestabstände. Dieser Kleinste der Mindestabstände wird der betreffende Punkt, d. h. die kollisionsfreie Geschwindigkeit.
-
4 ist ein Ablaufdiagramm, das ein Verfahren 400 zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, in der der Agent eine Anfangsgeschwindigkeit aufweist, und mit einer Vielzahl von Hinderniskegeln verbunden ist, die in einem Geschwindigkeitsintervall verbleiben, gemäß einer erfindungsgemäßen Ausführungsform. Verfahren 400 behandelt eine Situation, die ähnlich ist zu derjenigen, die von Verfahren 300 behandelt wird, die aber auf eine andere Art und Weise beschrieben wird.
-
Ein Schritt 410 von Verfahren 400 liegt darin, alle Grenzsegmente der Hinderniskegel, die außerhalb aller anderen Hinderniskegel liegen, als ein Außengrenzsegment zu identifizieren. Beispielsweise können die Hinderniskegel ähnlich zu Hinderniskegeln 125, 135, 225 und 235 sein, die in 1 und 2 gezeigt sind, und die Außengrenzsegmente können wie vorstehend in der Erörterung von 2 definiert sein. Wie vorstehend erwähnt, umfasst in Situationen, wo kein Außengrenzsegment besteht, das Verfahren weiter das Ignorieren eines der Hinderniskegel, z. B. der Hinderniskegel, der den Agenten am unwahrscheinlichsten beeinflusst oder, allgemeiner, ein Hinderniskegel, der den Agenten am unwahrscheinlichsten als ein anderer Hinderniskegel beeinflusst. Mögliche Identitäten solcher Kegel wurden vorstehend erörtert.
-
Ein Schritt 420 von Verfahren 400 liegt darin, für jedes Außengrenzsegment einen Mindestabstand des Außengrenzsegments zu der Anfangsgeschwindigkeit zu berechnen. Diese Berechnung kann erzielt werden, indem ganz einfach der euklidische Abstand (unter Verwendung von Standardtechniken) zwischen Punkten in einem Geschwindigkeitsintervall gemessen wird.
-
Ein Schritt 430 von Verfahren 400 liegt darin, eine Geschwindigkeit als die kollisionsfreie Geschwindigkeit auszuwählen, die dem kleinsten berechneten Mindestabstand entspricht.
-
5 ist ein Ablaufdiagramm, das ein Verfahren 500 zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Anwendung einer virtuellen Welt veranschaulicht, gemäß einer erfindungsgemäßen Ausführungsform. Verfahren 500 behandelt eine Situation, die ähnlich ist zu derjenigen, die von Verfahren 300 und 400 behandelt wird, die aber auf eine andere Art und Weise beschrieben wird. Jeder der Schritte 510–550 von Verfahren 500 wird für jeden Bildaktualisierungframe oder Zeitschritt einer visuellen Simulationsschleife der Anwendung einer virtuellen Welt ausgeführt.
-
Ein Schritt 510 von Verfahren 500 liegt darin, eine Anfangsgeschwindigkeit für den Agenten zu erhalten. Es ist anzumerken, dass hierfür keine tatsächliche Berechnung erforderlich ist (obwohl dies zulässig ist); es ist lediglich erforderlich, dass die Anfangsgeschwindigkeit bekannt ist, bevor die nachfolgenden Schritte ausgeführt werden. Daher kann die Anfangsgeschwindigkeit berechnet werden, die von dem Server der virtuellen Welt empfangen wird, oder auf eine andere Art und Weise erhalten wird.
-
Ein Schritt 520 von Verfahren 500 liegt darin, einen Hinderniskegel in einem Geschwindigkeitsintervall für jeden fremden Agenten in der Anwendung einer virtuellen Welt auszugestalten, der innerhalb eines bestimmten Abstands zu dem Agenten lokalisiert ist. Wie vorstehend zuerst beschrieben, stellt jeder solche Hinderniskegel einen Satz aller Geschwindigkeiten dar, die in einer Kollision zwischen dem Agenten und einem bestimmten fremden Agenten resultieren, wobei angenommen wird, dass sich bei dem bestimmten fremden Agenten die Geschwindigkeit nicht ändert.
-
Ein Schritt 530 von Verfahren 500 liegt darin, eine Vielzahl möglicher neuer Geschwindigkeiten für den Agenten zu identifizieren, von denen jede außerhalb aller Hinderniskegel liegt. Bei einer Ausführungsformen umfasst Schritt 530 das Identifizieren einer Vielzahl von Hinderniskegelgrenzsegmenten, das Identifizieren eines Teilsatzes der Hinderniskegelgrenzsegmente, die außerhalb aller Hinderniskegel liegen, und für jedes Hinderniskegelgrenzsegment in dem Teilsatz das Berechnen eines Mindestabstands zu einem Anfangspunkt in dem Geschwindigkeitsintervall, der einer Anfangsgeschwindigkeit des Agenten entspricht.
-
Ein Schritt 540 von Verfahren 500 liegt darin, einen Abstand zu der Anfangsgeschwindigkeit zu jeder der möglichen neuen Geschwindigkeiten zu bestimmen, um eine bestimmte Geschwindigkeit der möglichen neuen Geschwindigkeiten zu finden, die der Anfangsgeschwindigkeit am nächstgelegenen ist. Bei einer Ausführungsform umfasst das Finden der bestimmten Geschwindigkeit der möglichen neuen Geschwindigkeiten das Minimieren von (x – x0)2 + (y – y0)2 derart, dass Alx + Bly < Cl für jeden der Hinderniskegel, wobei (x0, y0) die Anfangsgeschwindigkeit ist, (x, y) die kollisionsfreie Geschwindigkeit des Agenten ist, und Alx + Bly < Cl eine lineare Beschränkungsüberprüfung ist.
-
Ein Schritt 550 von Verfahren 500 liegt darin, die nächstgelegene Geschwindigkeit einer Vielzahl neuer Geschwindigkeiten als die kollisionsfreie Geschwindigkeit für den Bildaktualisierungsframe auszuwählen.
-
Obwohl die Erfindung unter Bezugnahme auf spezifische Ausführungsformen beschrieben wurde, ist es für Fachleute selbstverständlich, dass verschiedene Änderungen unternommen werden können, ohne vom Geist oder Umfang der Erfindung abzurücken. Dementsprechend ist die Offenbarung der erfindungsgemäßen Ausführungsformen zur Veranschaulichung des Umfangs der Erfindung gedacht und soll diese nicht einschränken. Es ist beabsichtigt, dass der Umfang der Erfindung nur in dem Ausmaß beschränkt ist, wie dies von den angehängten Ansprüchen erfordert wird. Beispielsweise wird ein Fachmann sofort erkennen, dass die Menschenmassensimulationsberechnungsverfahren und darauf bezogene Verfahren, die hierin erörtert werden, in einer Vielfalt von Ausführungsformen implementiert werden können, und dass die vorangehende Erörterung von bestimmten Ausführungsformen dieser Ausführungsformen nicht notwendigerweise eine vollständige Beschreibung aller möglichen Ausführungsformen darstellt.
-
Außerdem wurden der Nutzen, andere Vorteile sowie Problemlösungen hinsichtlich spezifischer Ausführungsformen beschrieben. Der Nutzen, die Vorteile, Problemlösungen und jede(s) Element(e), die dafür sorgen können, dass jeglicher Nutzen, Vorteil oder Lösung auftritt oder stärker hervorkommt, sind jedoch nicht als kritische, erforderliche oder wesentliche Merkmale oder Elemente irgendeines oder aller der Ansprüche auszulegen.
-
Außerdem sind hierin offenbarte Ausführungsformen und Beschränkungen unter der Widmungsdoktrin nicht der Allgemeinheit gewidmet, wenn die Ausführungsformen und/oder Beschränkungen: (1) nicht ausdrücklich in den Ansprüchen beansprucht werden; und (2) potentielle Äquivalente von ausgedrückten Elementen und/oder Beschränkungen in den Ansprüchen unter der Äquivalentdoktrin sind.