7 research outputs found
Agents for educational games and simulations
This book consists mainly of revised papers that were presented at the Agents for Educational Games and Simulation (AEGS) workshop held on May 2, 2011, as part of the Autonomous Agents and MultiAgent Systems (AAMAS) conference in Taipei, Taiwan. The 12 full papers presented were carefully reviewed and selected from various submissions. The papers are organized topical sections on middleware applications, dialogues and learning, adaption and convergence, and agent applications
New geometric algorithms and data structures for collision detection of dynamically deforming objects
Any virtual environment that supports interactions between virtual objects and/or a user and objects,
needs a collision detection system to handle all interactions in a physically correct or plausible way. A
collision detection system is needed to determine if objects are in contact or interpenetrates. These
interpenetrations are resolved by a collision handling system. Because of the fact, that in nearly all
simulations objects can interact with each other, collision detection is a fundamental technology, that
is needed in all these simulations, like physically based simulation, robotic path and motion planning,
virtual prototyping, and many more. Most virtual environments aim to represent the real-world as
realistic as possible and therefore, virtual environments getting more and more complex. Furthermore,
all models in a virtual environment should interact like real objects do, if forces are applied to the
objects. Nearly all real-world objects will deform or break down in its individual parts if forces are
acted upon the objects. Thus deformable objects are becoming more and more common in virtual
environments, which want to be as realistic as possible and thus, will present new challenges to the
collision detection system. The necessary collision detection computations can be very complex and this
has the effect, that the collision detection process is the performance bottleneck in most simulations.
Most rigid body collision detection approaches use a BVH as acceleration data structure. This
technique is perfectly suitable if the object does not change its shape. For a soft body an update step
is necessary to ensure that the underlying acceleration data structure is still valid after performing a
simulation step. This update step can be very time consuming, is often hard to implement and in most
cases will produce a degenerated BVH after some simulation steps, if the objects generally deform.
Therefore, the here presented collision detection approach works entirely without an acceleration data
structure and supports rigid and soft bodies. Furthermore, we can compute inter-object and intraobject
collisions of rigid and deformable objects consisting of many tens of thousands of triangles in a
few milliseconds. To realize this, a subdivision of the scene into parts using a fuzzy clustering approach
is applied. Based on that all further steps for each cluster can be performed in parallel and if desired,
distributed to different GPUs. Tests have been performed to judge the performance of our approach
against other state-of-the-art collision detection algorithms. Additionally, we integrated our approach
into Bullet, a commonly used physics engine, to evaluate our algorithm.
In order to make a fair comparison of different rigid body collision detection algorithms, we propose
a new collision detection Benchmarking Suite. Our Benchmarking Suite can evaluate both the performance
as well as the quality of the collision response. Therefore, the Benchmarking Suite is subdivided
into a Performance Benchmark and a Quality Benchmark. This approach needs to be extended to
support soft body collision detection algorithms in the future.Jede virtuelle Umgebung, welche eine Interaktion zwischen den virtuellen Objekten in der Szene
zulässt und/oder zwischen einem Benutzer und den Objekten, benötigt für eine korrekte Behandlung der
Interaktionen eine Kollisionsdetektion. Nur dank der Kollisionsdetektion können Berührungen zwischen
Objekten erkannt und mittels der Kollisionsbehandlung aufgelöst werden. Dies ist der Grund für die weite
Verbreitung der Kollisionsdetektion in die verschiedensten Fachbereiche, wie der physikalisch basierten
Simulation, der Pfadplanung in der Robotik, dem virtuellen Prototyping und vielen weiteren. Auf Grund
des Bestrebens, die reale Umgebung in der virtuellen Welt so realistisch wie möglich nachzubilden,
steigt die Komplexität der Szenen stetig. Fortwährend steigen die Anforderungen an die Objekte, sich
realistisch zu verhalten, sollten Kräfte auf die einzelnen Objekte ausgeübt werden. Die meisten Objekte,
die uns in unserer realen Welt umgeben, ändern ihre Form oder zerbrechen in ihre Einzelteile, wenn
Kräfte auf sie einwirken. Daher kommen in realitätsnahen, virtuellen Umgebungen immer häufiger
deformierbare Objekte zum Einsatz, was neue Herausforderungen an die Kollisionsdetektion stellt. Die
hierfür Notwendigen, teils komplexen Berechnungen, führen dazu, dass die Kollisionsdetektion häufig
der Performance-Bottleneck in der jeweiligen Simulation darstellt.
Die meisten Kollisionsdetektionen für starre Körper benutzen eine Hüllkörperhierarchie als Beschleunigungsdatenstruktur.
Diese Technik ist hervorragend geeignet, solange sich die Form des Objektes
nicht verändert. Im Fall von deformierbaren Objekten ist eine Aktualisierung der Datenstruktur nach
jedem Schritt der Simulation notwendig, damit diese weiterhin gültig ist. Dieser Aktualisierungsschritt
kann, je nach Hierarchie, sehr zeitaufwendig sein, ist in den meisten Fällen schwer zu implementieren
und generiert nach vielen Schritten der Simulation häufig eine entartete Hüllkörperhierarchie, sollte
sich das Objekt sehr stark verformen. Um dies zu vermeiden, verzichtet unsere Kollisionsdetektion vollständig
auf eine Beschleunigungsdatenstruktur und unterstützt sowohl rigide, wie auch deformierbare
Körper. Zugleich können wir Selbstkollisionen und Kollisionen zwischen starren und/oder deformierbaren
Objekten, bestehend aus vielen Zehntausenden Dreiecken, innerhalb von wenigen Millisekunden
berechnen. Um dies zu realisieren, unterteilen wir die gesamte Szene in einzelne Bereiche mittels eines
Fuzzy Clustering-Verfahrens. Dies ermöglicht es, dass alle Cluster unabhängig bearbeitet werden und
falls gewünscht, die Berechnungen für die einzelnen Cluster auf verschiedene Grafikkarten verteilt werden
können. Um die Leistungsfähigkeit unseres Ansatzes vergleichen zu können, haben wir diesen gegen
aktuelle Verfahren für die Kollisionsdetektion antreten lassen. Weiterhin haben wir unser Verfahren in
die Physik-Engine Bullet integriert, um das Verhalten in dynamischen Situationen zu evaluieren.
Um unterschiedliche Kollisionsdetektionsalgorithmen für starre Körper korrekt und objektiv miteinander
vergleichen zu können, haben wir eine Benchmarking-Suite entwickelt. Unsere Benchmarking-
Suite kann sowohl die Geschwindigkeit, für die Bestimmung, ob zwei Objekte sich durchdringen, wie
auch die Qualität der berechneten Kräfte miteinander vergleichen. Hierfür ist die Benchmarking-Suite
in den Performance Benchmark und den Quality Benchmark unterteilt worden. In der Zukunft wird
diese Benchmarking-Suite dahingehend erweitert, dass auch Kollisionsdetektionsalgorithmen für deformierbare
Objekte unterstützt werden