DE112006000938T5 - Dynamischer Lösungsfinder mit fester Zeitschrittgrösse für interagierende Teilchensysteme - Google Patents

Dynamischer Lösungsfinder mit fester Zeitschrittgrösse für interagierende Teilchensysteme Download PDF

Info

Publication number
DE112006000938T5
DE112006000938T5 DE112006000938T DE112006000938T DE112006000938T5 DE 112006000938 T5 DE112006000938 T5 DE 112006000938T5 DE 112006000938 T DE112006000938 T DE 112006000938T DE 112006000938 T DE112006000938 T DE 112006000938T DE 112006000938 T5 DE112006000938 T5 DE 112006000938T5
Authority
DE
Germany
Prior art keywords
particle
particles
collision
state
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112006000938T
Other languages
English (en)
Inventor
Stam Toronto Jos
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Autodesk Canada Co
Original Assignee
Autodesk Canada Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Autodesk Canada Co filed Critical Autodesk Canada Co
Publication of DE112006000938T5 publication Critical patent/DE112006000938T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/12Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/16Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Teilchensimulationsverfahren, umfassend:
– Simulieren der dynamischen Bewegung von Teilchen und Gestatten, dass der Teilchenzustand unzulässig ist; und
– Anpassen des Teilchenzustands in Richtung auf einen zulässigen Zustand.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft einen auf Teilchen beruhenden Lösungsfinder, der den Zustand des Teilchensystems ständig verbessert, solange es sich in einem ungültigen Zustand befindet.
  • 2. Beschreibung des Stands der Technik
  • Herkömmliche Teilchensysteme, die bei Simulationen, wie beispielsweise für Animationsvorgänge, verwendet werden, beginnen jeden Teilchenbewegungs-Berechnungsschritt mit der Annahme, dass sich bei Beginn des Schritts alle Teilchen in gültigen Zuständen befinden. Bei jedem Schritt führt das System eine Iteration auf Teilchenpositionen und -geschwindigkeiten aus, bis alle Teilchen einen gültigen Zustand erreichen, in dem sich die Teilchen, Kanten und Flächen nicht überlappen. Wenn ein herkömmliches System wegen Randbedingungen oder anderen Faktoren eine Situation erreicht, bei der nicht für alle Teilchen ein zulässiger Zustand erreicht werden kann, schlägt der Vorgang fehl. Ein Fehlschlag führt zu einem "Zusammenbruch" der Simulation, bei dem beispielsweise das System in eine unendliche Schleife gerät oder sich die Simulation auf unerwartete Weise verhält, wie beispielsweise, wenn ein Stück Stoff zu einem Punkt zusammenschrumpft. Im Ergebnis benötigen herkömmliche Teilchensysteme oft viel Zeit, um die Endpositionen der Teilchen zu berechnen.
  • Es besteht Bedarf nach einem System, bei dem kein Fehlschlag auftritt, wenn ein Teilchen in einem unzulässigen Zustand endet, und das Berechnungen kosteneffizienter ausführt, wobei der Zustand des Systems stetig verbessert wird.
  • KURZE BESCHREIBUNG DER ERFINDUNG
  • Es ist ein Aspekt der vorliegenden Erfindung, ein System bereitzustellen, das es einem Teilchen gestattet, in einen unzulässigen Zustand zu geraten, ohne dass die Simulation fehlschlägt.
  • Ein weiterer Aspekt der vorliegenden Erfindung ist es, ein System bereitzustellen, das Berechnungen vereinfacht, damit die Simulation kosteneffizienter wird.
  • Ein anderer Aspekt der vorliegenden Erfindung ist es, dass alle Randbedingungen, die für das Teilchensystem gegeben sind, in der gleichen Iterationsschleife behandelt werden.
  • Ein anderer Aspekt der vorliegenden Erfindung ist es, dass jede Zeitschrittgröße zulässig ist.
  • Ein anderer Aspekt der Simulation ist es, dass unterschiedliche Erscheinungen in einem vereinheitlichten Rahmen unter Verwendung von Teilchen mit Randbedingungen behandelt werden. Beispielsweise werden die Wechselwirkungen von Stoff, festen Körpern und Fluiden alle gleichzeitig innerhalb desselben Rahmens behandelt.
  • Die obigen Aspekte können durch einen Teilchenposition-Lösungsfinder mit fester Zeitschrittgröße erhalten werden, der es Teilchen erlaubt, ein Ende des Zeitschritts in einem unzulässigen Zustand zu erreichen, und wobei diese Partikel dann auf einen zulässigen Zustand hin gedrängt werden. Dies ermöglicht es, dass der Lö sungsfinder die Simulation fortsetzt, während sich die Simulationsergebnisse auf ein zulässiges Verhalten hin bewegen. Teilchenkollisionsberechnungen werden vereinfacht, indem ein nicht-sequentielles Modell herangezogen wird. Die Geschwindigkeit der Simulation wird verbessert, indem einige Vorgänge außerhalb der Berechnungsschleife des Lösungsfinders ausgeführt werden.
  • Diese Aspekte und Vorteile, zusammen mit anderen Aspekten und Vorteilen, die im Folgenden offensichtlich werden, haben ihre Grundlage in den Einzelheiten der Ausgestaltung und des Betriebs, wie sie im Folgenden vollständiger beschrieben und beansprucht werden, wobei auf die angehängten Zeichnungen Bezug genommen wird, die einen Teil des vorliegenden Dokuments bilden und bei denen gleiche Bezugsziffern sich durchgängig auf gleiche Teile beziehen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt Formen dar.
  • 2 zeigt Normalen und nächste Punkte.
  • 3 veranschaulicht einen Lösungsfindungsvorgang.
  • 4 zeigt Teilchenwege und sich ergebende Positionen des Lösungsfinders.
  • 5 zeigt übliche Wege und Positionen.
  • 6 stellt Arten von Kollisionspaaren dar.
  • 7 zeigt eine umhüllende Kugel für unterschiedliche Teilchenwege.
  • 8 stellt Gruppen von Kollisionspaaren dar.
  • 9 zeigt eine Kantenkollisionserkennung unter Verwendung einer Umkehrung des Volumenvorzeichens.
  • 10 zeigt ein Biegen, das durch eine hinzugefügte Verknüpfung gehandhabt wird.
  • 11a bis 11c zeigen eine Handhabung unter Verwendung eines Winkels zwischen Normalen.
  • 12 zeigt Objekte, die beruhend auf Trennungsgeschwindigkeiten getrennt werden.
  • 13 stellt eine Oberflächendurchdringungshandhabung dar.
  • 14 veranschaulicht den Gesamtvorgang der vorliegenden Erfindung.
  • 15a bis 15h stellen eine Anzeigesequenz eines Teilchensystems dar, das einen unzulässigen Zustand durchläuft.
  • 16 stellt die Hardware der vorliegenden Erfindung dar.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Einleitung
  • Die hier gegebene Erörterung beschreibt einen Dynamik-Lösungsfinder für interagierende Teilchen. Der Lösungsfinder hat den Zweck, die Dynamik einer großen Vielzahl interagierender Formen in einem einheitlichen Rahmen zu berechnen. Der Lösungsfinder richtet sich hauptsächlich auf Anwendungen bei der Computergrafik, die sich von Spezialeffekten in abendfüllenden Filmen bis zu Echtzeitsimulationen in Spielen erstrecken. Aber er kann auch für andere Zwecke, wie beispielsweise bei der frühen Prototyperstellung und beim Testen eines physikalischen Systems mittels Simulation, verwendet werden; auch wenn die Simulation möglicherweise nicht genau genug für eine endgültige Bewertung ist, kann sie helfen, frühe Entwurfsentscheidungen zu fällen. Diese Zielanwendungen erfordern physikalisch plausible Simulationen eines weiten Bereichs natürlicher Phänomene, wie beispielsweise von Flüssigkeiten, festen Körpern und Stoffen. Weil alle diese Phänomene möglicherweise gleichzeitig miteinander interagieren können, ist es wichtig, sie in einem einzigen Rahmen zu behandeln.
  • Im Folgenden werden am Beispiel der Stoffsimulation einige der Herausforderungen erläutert, die sich einem dynamischen Lösungsfinder stellen. Zunächst kann die Bewegung eines Stücks Stoff, wie beispielsweise eines Bandes oder eines Kleidungsstücks, möglicherweise ziemlich einfach erscheinen, weil sie gut vertraut ist. Stoff ist jedoch ein Beispiel für ein in hohem Maße sich selbst beeinflussendes System. Die bei weitem größte Herausforderung, die sich einem Lösungsfinder für Stoff stellt, ist es, dass Stoff sowohl mit sich selbst als auch mit der Umgebung kollidiert. Als Folge hiervon müssen bei jedem Schritt der Simulation viele Interaktionen verarbeitet werden. Idealerweise möchten wir nicht, dass der Stoff sich selbst oder irgendwelche Objekte in der Umgebung durchdringt. Das Erscheinungsbild von Stoff ist auch wegen des Auftretens von Falten und Knitterstellen hochgradig komplex. Demgemäß sollte ein Lösungsfinder für Stoff in der Lage sein, eine sehr große Datenmenge zu bearbeiten. Insbesondere sollten sich die Kosten (Rechenzeit) des Lösungsfinders bei zunehmender Komplexität in berechnungsfreundlicher Weise erhöhen. Dies schließt teuere und komplizierte Lösungsfinder aus. Einfache und effiziente Lösungsfinder werden bevorzugt. Ein anderer Faktor, der die Simulation von Stoff erschwert, ist, dass Stoff einer Dehnung starken Widerstand entgegensetzt. Dies macht es schwierig, den Stoff beispielsweise als System miteinander verbundener Federn zu modellieren, weil steife Federn teuere Lösungsfinder erfordern, um Instabilitäten zu vermeiden. Ferner ist es wichtig, dass der Lösungsfinder das Langzeit-Verhalten von Stoff widerspiegelt. Beispielsweise sollte ein Stück Stoff, das nur unter der Einwirkung der Schwerkraft fallengelassen wird, einen vollständigen Ruhezustand errreichen. Es scheint keine Stoff-Lösungsfinder zu geben, die alle diese Herausforderungen fehlerlos bewerkstelligen können. Daher ist die Stoffsimulation immer noch ein aktives Forschungsgebiet innerhalb des Felds der Computergrafik. Die anfängliche Motivation für die hier beschriebene Erfindung war es, einen neuen Stoff-Lösungsfinder zu erstellen. Später hat man erkannt, dass der Stoff-Lösungsfinder auf eine größere Klasse von Phänomenen erweitert werden kann, wie beispielsweise Teilchen.
  • Eines der Hauptmerkmale der hier beschriebenen Vorgehensweise ist es, dass das System dem dynamischen Lösungsfinder gestattet, bei jedem Zeitschritt zu einem unzulässigen Zustand, beispielsweise dem Zustand, bei dem der Stoff sich selbst oder einen anderen Körper durchdringt, zurückzukehren. Anstatt zu versuchen, einen zulässigen Zustand nach jedem Zeitschritt der Simulation zu garantieren, versucht das System, den Dynamikablauf hin zu einem zulässigen Zustand zu drängen. Der Lösungsfinder verbessert allmählich den Zustand des Stoffs in einem einzigen Zeitschritt der Simulation. Der Lösungsfinder stoppt, sobald wir einen zulässigen Zustand des Systems berechnen, oder wenn er eine vom Benutzer eingestellte Zeitgrenze erreicht hat, die begrenzt, wie viel Zeit zur Verbesserung des Zustands aufgewendet werden darf. Diese Vorgehensweise hat mehrere Vorteile. Erstens ermöglicht sie schnellere Berechnungszeiten. Für einige Anwendungen ist es in Ordnung, wenn sich die Simulation in einem unzulässigen Zustand befindet. Beispielsweise sind in den frühen Stadien der Erstellung einer Animation die Animatoren mehr daran interessiert, ein Gefühl für die allgemeine Bewegung der Formen zu erhalten. Eine schnelle Rückkopplung ist in diesem Stadium wichtiger als kleine Fehler im Aussehen der Formen. Ein weiterer Vorzug dieser Vorgehensweise ist, dass der Lösungsfinder in einer Situation, in der nicht alle Randbedingungen erfüllt werden können, nicht stecken bleibt. Diese Situationen treten auf, weil in einer Animationsumgebung die Umgebung und Kräfte nicht immer physikalisch konsistent sind. Schließlich verursachen Lösungsfinder, die von Anfang an einen zulässigen Zustand annehmen, üblicherweise einen vollständigen Fehlschlag (mindestens nach allgemeiner Erfahrung), wenn sie einen unzulässigen Zustand erhalten. Zusammenfassend gilt: Indem ein "Fehlschlag" der Simulation erlaubt wird, erhalten wir einen Lösungsfinder, der schneller, robuster und einfacher zu implementieren ist, weil er Näherungsberechnungen erlaubt, die in einem System, das immer eine Lösung mit einem gültigen Zustand zu finden versucht, nicht akzeptabel wären.
  • Notationen
  • Um die hier dargelegten Algorithmen lesbarer zu machen, werden die folgenden Notationen verwendet. Die Darstellung nutzt den "Arial fett"-Zeichensatz für alle Variablen und Programmcodebefehle, um sie klar von dem erläuternden Text zu unterscheiden. Um bestimmte Elemente eines Feldes auszuwählen, werden Variablen verwendet, die eine Indexmenge enthalten. Wenn beispielsweise I = (0, 100, 3) gilt, dann setzt der Befehl feld[I] = 0 nur die Einträge 0, 100 und 3 des Feldes auf Null. Wenn die Indexmenge eine Menge aufeinanderfolgender Indizes zwischen a und b ist, dann wird die Notation a.b verwendet. Beispielsweise addiert der folgende Befehl feld[1 .. N] + = 1 die Zahl 1 zu jedem Element des Feldes mit einem Index zwischen 1 und N. Diese Notationen machen viele der Algorithmen kompakter und daher leichter zu lesen. Es sollte für einen Fachmann auf dem Gebiet problemlos sein, die Algorithmen in irgendeine Computersprache, wie beispielsweise C++, zu übersetzen.
  • Grundstruktur des Lösungsfinders
  • In dem hier erläuterten Modell ist eine Form eine Ansammlung von Teilchen, die unter Verwendung von Kanten, Dreiecken und Tetraedern verbunden sind. 1 zeigt einige Beispiele 20 und 22 von Formen, die aus Kanten, Dreiecken und Tetraedern geformt sind und die vom dynamischen Lösungsfinder bearbeitet werden. Der Lösungsfinder trifft keine Annahmen, wie diese Elemente miteinander verbunden sind, um Objekte zu formen, und wie die Objekte gehandhabt werden, weil erwartet wird, dass dies auf übliche Weise bewerkstelligt wird. Beispielsweise wird Stoff als ein Dreiecksnetz modelliert, und ein dreieckiges Netz kann für ein höher aufgelöstes Bild unterteilt werden, indem übliche Unterteilungsverfahren verwendet werden.
  • Die Dynamikeigenschaften des Systems werden modelliert, indem den Teilchen unterschiedliche Eigenschaften zugewiesen werden, die in Feldern gespeichert werden, die durch einen Teilchenindex i indiziert werden. Der Lösungsfinder betrachtet N als die Gesamtanzahl der Teilchen. Die Dynamikeigenschaften jedes Teilchens werden durch seine Position pos[i] und Geschwindigkeit (velocity) v[i] modelliert. Andere Eigenschaften umfassen die inverse Masse inv_masse[i] und die Dicke radius[i]. Zusätzlich benötigt der Lösungsfinder einige zusätzliche Daten, die jedem Teilchen zugeordnet sind, wie es ausführlicher im Folgenden beschrieben wird.
  • Die Formen interagieren auch mit Flächen, die die Umgebung modellieren. Einige benötigte Eigenschaft ist, dass die Fläche die Berechnung des nächsten Punkts (oder des kürzesten Abstands) auf der Fläche für jeden gegebenen Punkt im Raum gestattet. Eine andere benötigte Eigenschaft ist es, dass für jeden Punkt eine Normale existiert, um zu bestimmen, auf welcher Seite der Fläche sich ein Punkt befindet. Jede Fläche, die mit den Formen interagiert, sollte daher eine Funktion aufweisen:
    nächster_punkt(fl, pos, np, norm)
  • Diese Funktion, die von einem Fachmann auf dem Gebiet bereitgestellt werden kann, liefert den nächsten Punkt np und die Normale norm auf der Fläche fl von der Position pos.
  • Einfache Beispiele solcher Flächen umfassen Ebenen und Kugeln. Ein Dreiecksnetz ist ein anderes wichtiges Beispiel. In diesem Fall sind die Normalen an den Kanten und Knoten als die Mittelwerte der Normalen ihrer benachbarten Flächen definiert. 2 stellt zwei Beispiele 40 und 42 von Flächen und ihren nächsten Punkten dar, wie sie durch eine Funktion definiert werden, die für jeden Punkt im Raum den nächsten Punkt auf ihrer Fläche zusammen mit der dortigen Normalen liefert. Es ist zu bemerken, dass in manchen Fällen die Normale nicht notwendigerweise gleich der normalisierten Richtung des Punkts zum nächsten Punkt ist.
  • Simulationen werden einzelbildweise (oder zeitschrittweise) berechnet. Der Lösungsfinder wird für jedes Einzelbild der Simulation aufgerufen und erhält als Eingabe die auf die Teilchen wirkenden externen Kräfte (forces). Diese werden in einem Feld mit dem Namen kraft gespeichert. Die allgemeine Struktur einer Animationsschleife gemäß der hier erläuterten Vorgehensweise ist wie folgt:
    Figure 00090001
  • Die erste Programmroutine, hole_kräfte (kraft) (siehe auch 60 in 3), kümmert sich um Werte, die vom Lösungsfinder benötigt werden und die für die gesamte Simulation nur einmal berechnet zu werden brauchen. Die diesen Lösungsfinder verwendende Anwendung ist dafür verantwortlich, die externen Kräfte zu berech nen, wie beispielsweise die Schwerkraft und den Luftwiderstand. Es ist zu bemerken, dass, weil übliche Lösungsfinder mit Zeit-Teilschritten arbeiten, die mit Kollisionen in Beziehung stehen (wie ausführlicher unten erläutert wird), diese Krafteingabe bei üblichen Lösungsfindern innerhalb eines Zeitschritts mehrmals stattfinden muss. Der hier beschriebene Lösungsfinder ist im Ergebnis effizienter.
  • Die letzte Programmroutine, führe_dämpfung_aus(), fügt der Geschwindigkeit der Teilchen eine Dämpfung hinzu. Dieser Schritt ist nützlich, um ein großes Überschwingen aufgrund heftiger Kollisionen zwischen Teilchen zu entfernen. Es ist daher in manchen Situationen wichtig, diese Programmroutine am Ende des Simulationsschritts aufzurufen.
  • Simulationen werden üblicherweise unter Verwendung eines variablen Zeitschritts fortgeschaltet. Um die unten aufgeführten Formeln einfach zu halten, nehmen wir an, dass dieser Zeitschritt immer gleich 1 ist. Der Lösungsfinder kann andere Zeitschrittgrößen handhaben, indem einige der Werte entsprechend skaliert werden, wenn ihre Einheiten von der Zeit abhängen. Diese Annahme zwingt den Lösungsfinder auch dazu, sich nicht auf kleine Zeitschritte zu verlassen, um eine Stabilität zu erreichen.
  • Der Lösungsfinder weist grob gesprochen drei grundlegende Schritte auf. Im ersten Schritt 62 werden, wie in 3 dargestellt, externe Kräfte zu den Geschwindigkeiten hinzugezählt. In dem zweiten Schritt 64 werden Kollisionen und Randbedingungen behandelt, indem die Geschwindigkeiten verändert werden. Schließlich werden in dem dritten Schritt 66 die Positionen der Teilchen unter Verwendung der modifizierten Geschwindigkeiten aktualisiert. Genauer:
    Figure 00110001
  • Die in dem kraft-Feld bereitgestellten Kräfte modellieren externe Kräfte, wie beispielsweise die Schwerkraft und den Luftwiderstand. Sie weisen keine internen Kräfte auf, die beispielsweise durch Steifheit und Biegen hervorgerufen werden. Wenn diese auf diese Weise behandelt werden würden, könnten sich instabile Simulationen ergeben, die unbegrenzte Ergebnisse liefern.
  • Ein sehr wichtiger Schritt in dem Algorithmus ist die Schleife in dem Algorithmus, die Kollisionen und interne Kräfte auflöst. Jede Iteration dieser Schleife versucht eine Verbesserung des Zustands der Simulation. Die Operationen in der Schleife umfassen zwei grundlegende Schritte. In dem ersten Schritt versucht der Lösungsfinder, alle Kollisionen aufzulösen, die in dem laufenden Simulationsschritt zwischen den Formen auftreten. Dies beinhaltet, den Weg der Elemente der Form in der Raumzeit zu verfolgen. Der zweite Schritt löst interne Kräfte, wie beispielsweise Streckung und Biegung, mittels weicher Randbedingungen auf und löst Durchdringungen zwischen Formen auf, die durch den Kollisionsschritt nicht aufgelöst werden. Die Wiederholungsschleife endet, wenn keine Veränderungen der Teilchen aufgetreten sind ("nichts ist geschehen") oder wenn eine Höchstanzahl it_max erreicht wurde. Dieser letzte Parameter lässt die Anwendung die maximale im Lösungsfinder ver brachte Zeit steuern. Typischerweise würde dieser Wert auf zwischen 5 und 20 Iterationen gesetzt werden.
  • An dieser Stelle kann die hier erläuterte Vorgehensweise in Kontrast zu anderen üblichen Simulationsstrategien gesetzt werden. Eines der Hauptmerkmale des hier beschriebenen Lösungsfinders ist es, dass der Lösungsfinder die Simulation unter Verwendung der gleichen Zeitschrittgröße (in unserem Fall gleich 1) fortschreibt. Diese Vorgehensweise unterscheidet sich sehr von anderen herkömmlichen Lösungsfindern, die versuchen, die Kollisionen genauer aufzulösen, indem sie eine unterteilte Abtastung (sub sampling) des Zeitschritts durchführen. Insbesondere, wenn die Teilschritte auf der Zeit bis zur ersten Kollision beruhen. Bei diesem herkömmlichen Fall werden alle Teilchen immer bis zur Zeit der ersten Kollision fortgeschrieben. Die Kollision wird dann aufgelöst, und die Teilchen werden wieder aktualisiert. Dieser Vorgang wird wiederholt ausgeführt, bis es keine weiteren Kollisionen gibt oder das Ende des Zeitschritts erreicht ist. Ein mögliches Problem bei dieser herkömmlichen Vorgehensweise ist es, dass sie möglicherweise sehr aufwendig werden kann, wenn es viele Kollisionen gibt. In einigen Fällen kann sie sogar steckenbleiben, wenn das System eine Situation, die viele gleichzeitige Kollisionen beinhaltet, nicht auflösen kann. Im Gegensatz dazu braucht der hier erläuterte Lösungsfinder überhaupt keine Teilschritte zu verwenden. 4 und 5 veranschaulichen den Unterschied zwischen der hier erläuterten Vorgehensweise (4) und herkömmlichen, durch Kollisionsereignisse fortgeschalteten Simulationen (5) im Falle dreier interagierender Teilchen a, b und c. Die Teilchen sind der Randbedingung unterworfen, dass sie sich in horizontaler Richtung befinden. Die Zeit ist in vertikaler Richtung gezeigt. Während eines Zeitschritts bewegt sich daher ein Teilchen entlang eines stetigen Weges von unten nach oben. Bei der Vorgehensweise der vorliegenden Ausführungsform der Erfindung lösen wir alle Kollisionen für jedes Teilchen während der Zeit auf und kombinieren dann die Ergebnisse. Beispielsweise sind für Teilchen c zwei "mögliche" Wege gezeigt. Bei der durch Kollisionsereignisse fortgeschriebenen Vorgehensweise werden dagegen die Kollisionen sequentiell behandelt (ein sequentielles Kollisionsmodell), wie durch die zwei Zeit-Teilschritte oder Kollisionspunkte in 5 gezeigt, so dass dadurch nur ein einziger "möglicher" Weg für jedes Teilchen zulässig ist. Ein anderes Merkmal des Lösungsfinders ist, dass wir am Ende der Iterationen keinen zulässigen Zustand zu garantieren brauchen. Diese Möglichkeit ist durch die Endpositionen der Teilchen in 4 veranschaulicht, in der die Teilchen nicht zu Positionen gelangen, die einem sequentiellen Kollisionsmodell zugeordnet sind. Wie in der Einleitung bemerkt, hat dies mehrere Vorteile.
  • In den nächsten Abschnitten beschreiben wir die verschiedenen Bestandteile des Lösungsfinders ausführlicher.
  • Berechnung von Kollisionspaaren
  • Wie oben erwähnt, sind die Formen aus Punkten, Kanten, Dreiecken und Tetraedern zusammengesetzt. Wenn sich die Formen bewegen, muss der Lösungsfinder die Interaktionen zwischen diesen Grundformen berechnen. Zusätzlich ist diesen Grundformen eine bestimmte Dicke zugeordnet. Demzufolge arbeiten wir statt mit Punkten in Wirklichkeit mit Kugeln. Die Dicke kann für jedes Teilchen unterschiedlich sein und ist in einem Feld radius gespeichert. Die Dicke bei irgendeinem Punkt einer Kante, eines Dreiecks oder eines Tetraeders wird berechnet, indem die an deren Knoten definierte Dicke interpoliert wird.
  • Die möglichen Interaktionen zwischen den Grundformen sind auf die folgenden Paare beschränkt: Kugel/Kugel (sphere/sphere – ss), Kugel/Kante (sphere/edge – se), Kugel/Dreieck (sphere/triangle – st) und Kante/Kante (edge/edge – ee). 6 stellt die unterschiedlichen Arten der vom Lösungsfinder betrachteten Paare dar. Andere Interaktionen wie beispielsweise Dreieck/Dreieck können auf eine Folge von Interaktionen, die zu einer Kombination der vier Grundtypen gehören, reduziert werden. Um beispielsweise die vollständige Interaktion zwischen zwei Dreiecken zu behandeln, lassen wir jede Kugel des ersten Dreiecks mit dem zweiten Dreieck kollidieren und umgekehrt. Zusätzlich lassen wir auch ihre Kanten kollidieren. Dies ergibt sechs Interaktionen des Typs "st" und neun Interaktionen des Typs "ee".
  • Bei jedem Zeitschritt berechnet der Lösungsfinder die vier Paarfelder paar_ss, paar_se, paar_st und paar_ee. Jeder Eintrag des Paarfeldes ist eine Indexmenge. Die Anzahl der Indizes für jede Tabelle und ihre Bedeutung sind wie folgt:
    paar_ss: (i0, j0): Interaktion der Kugel i0 mit der Kugel j0
    paar_se: (i0, j0, j1): Interaktion der Kugel i0 mit der Kante (j0, j1)
    paa_rst: (i0, j0, j1, j2): Interaktion der Kugel i0 mit dem Dreieck (j0, j1, j2)
    paar_ee: (i0, i1, j0, j1): Interaktion der Kante (i0, i1) mit der Kante (j0, j1)
  • Diese vier Paarfelder werden zu einem einzigen Feld paar kombiniert.
  • Die Berechnung der Paarfelder ist im allgemeinen sehr aufwendig. Daher muss dafür Sorge getragen werden, die Paarfelder außerhalb der Iterationsschleife zu berechnen. Dies erfordert, dass alle möglicherweise kollidierenden Paare, einschließlich derjenigen, die durch aufgrund von Kollisionen verursachten Geschwindigkeitsänderungen verursacht werden, aufgenommen werden. Glücklicherweise kann, wenn die Massen der Teilchen ungefähr gleich sind, kein Teilchen jemals die (umhüllende) Kugel verlassen, die durch seine anfängliche Position und anfängliche Geschwindigkeit (und die Dauer des Zeitschritts) definiert ist, wie in 7 gezeigt. 7 veranschaulicht, dass die durch die anfängliche Geschwindigkeit definierte Kugel den Bereich begrenzt, den ein Teilchen auch nach Kollisionen erreichen kann. Insbesondere zeigt 7 ein Teilchen 120, das während des Zeitschritts nicht in eine Kollision verwickelt ist und sich daher am weitesten von seiner Anfangsposition weg beweg, ein Teilchen 122, das in der Mitte des Zeitschritts kollidiert, und ein Teilchen 124, das früh während des Zeitschritts kollidiert. Für Paare, die Dreiecke und Kanten beinhalten, berechnet der Lösungsfinder die Kugel, die die umhüllenden Kugeln ihrer Teilchen umhüllt.
  • Für jedes Paar sich überlappender umhüllender Kugeln werden mögliche Kollisionspaare erzeugt. Eine unkomplizierte, aber teuere Art, diese Paare zu berechnen, ist es, einfach alle umhüllenden Kugeln zu vergleichen. Offensichtlich ist diese Vorgehensweise zu teuer, wenn wir viele umhüllende Kugeln zu betrachten haben. Glücklicherweise kann dieser Vorgang durch Verwendung einer räumlichen Datenstruktur beschleunigt werden. Später in diesem Dokument (siehe die unten gegebene Erörterung über räumliche Datenstrukturen) werden zwei mögliche Datenstrukturen erörtert: Die Hash-Tabelle (Streuwerttabelle) und der Kugelbaum, die diesen Vorgang beschleunigen können. Der Lösungsfinder ist jedoch nicht auf diese Datenstrukturen beschränkt.
  • Wenn Selbst-Kollisionen aufgelöst werden, ist das folgende Problem aufgetreten. Man betrachte eine Form, die sich in einem Ruhezustand befindet, ohne dass externe Kräfte auf sie einwirken. In diesem Fall sollte die Form in dem Ruhezustand verbleiben. Wenn jedoch die Summe der Radien zweier Teilchen größer als ihr Abstand im Ruhezustand ist, kollidieren sie mit sich selbst und bewegen sich auseinander. Dies führt zu einer unerwünschten Ausweitung der Form. Um dieses Problem zu beheben, ordnet der Lösungsfinder jedem Kugel/Kugel-Kollisionspaar eine "Kollisionslänge" zu. Diese Länge ist gleich dem Minimum der Summe ihrer Radien und ihres Abstands voneinander in ihrem Ruhezustand. Dies stellt sicher, dass Selbst-Kollisionen den Ruhezustand nicht verändern, wenn keine externen Kräfte ausgeübt werden. Die Kollisionslängen werden in einem Feld mit dem Namen koll_länge gespeichert. Um die Berechnung dieser Kollisionslängen zu beschleunigen, führt der hier beschriebene Lösungsfinder zu Beginn der Simulation eine Vorab-Berechnung einer Liste von Kollisionsnachbarn durch und berechnet auch ihre Abstandsweite im anfänglichen Zustand. Immer wenn ein Paar hinzuge fügt wird, wird ein Überprüfungsvorgang ausgeführt, um festzustellen, ob die Teilchen in dem Paar Nachbarn sind, und um koll_länge[k] für dieses Paar entsprechend zu setzen.
  • Alle in diesem Vorgang beschriebenen Schritte werden in der Funktion berechne_paare() berechnet, die unmittelbar vor der Iterationsschleife aufgerufen wird.
  • Raum-Zeit-Kollisionen
  • Der erste Schritt in der Iterationsschleife ist das Auflösen von Kollisionen zwischen den Kugeln, Kanten, Dreiecken und Flächen, die in dem Zeitschritt auftreten. Um diese Kollisionen aufzulösen, durchläuft der Lösungsfinder jedes mögliche Kollisionspaar und berechnet die Zeit bis zur Kollision. Wenn diese Kollision in dem Zeitschritt stattfindet, wird die entsprechende Kollisionsreaktion berechnet. In dem Beispiel in 4 können für das Teilchen c zwei Kollisionen auftreten, nämlich eine Kollision von c mit b und eine Kollision von c mit a. Der Lösungsfinder weist zwei unterschiedliche Schemata oder Ausführungsformen für nicht-sequentielle Modelle aus, die die Reaktionen kombinieren. Das erste Schema oder die erste Ausführungsform setzt die Endgeschwindigkeit vorzugsweise auf die Kollisionsgeschwindigkeit der Kollision mit der kleinsten Kollisionszeit. In 4 würden dadurch die Kollisions-Endgeschwindigkeiten für die Teilchen b und c auf diejenigen Geschwindigkeiten gesetzt werden, die sich aus der Teilchenkollision zwischen diesen Teilchen ergeben, und die Kollision des Teilchens b mit dem Teilchen a würde ignoriert werden. Dies ist das in 4 gezeigte Schema. Das zweite Schema berechnet vorzugsweise einen zeitgewichteten Durchschnitt der Kollisionsgeschwindigkeiten. Das erste Verfahren weist eine höhere Reaktionsgeschwindigkeit auf und ist weniger von einer künstlichen Dämpfung beeinträchtigt als das zweite Verfahren. Das zweite Verfahren ist jedoch robuster, weil es alle Interaktionen in einem einzigen Zeitschritt berücksichtigt. Welches Verfahren in der Praxis verwendet werden soll, hängt von der Anwendung ab, und der Animationstechniker kann zwischen diesen Schemata je nach Bedarf wählen. Die Implementierung dieses Schritts ist wie folgt:
    Figure 00170001
  • Die Funktionen, die die Kollisionen zwischen Paaren und den Flächen bearbeiten, aktualisieren beide die Geschwindigkeiten mittels einer gemeinsamen Funktion mit dem Namen aktualisiere_geschwindigkeit. Diese Funktion und die Programmroutine vor_kollisionen und nach_kollisionen hängen von dem verwendeten Aktualisierungsschema ab. Bei dem ersten Schema, bei dem der Lösungsfinder nur die erste Kollision berücksichtigt, lautet die Implementierung wie folgt:
    Figure 00170002
    Figure 00180001
  • Bei dem zweiten Verfahren, bei dem ein gewichteter Mittelwert der Kollisionsgeschwindigkeiten verwendet wird, lautet die Implementierung wie folgt:
    Figure 00180002
  • Üblicherweise gilt die Beziehung gewichtung(t) = 1 – t, aber die Funktion gewichtung könnte jede beliebige Funktion sein, die von der Zeit bis zur Kollision oder manchen anderen Parametern abhängt.
    ss: Kante
    se: Dreieck
    st: Tetraeder
    ee: Tetraeder
  • Für eine Darstellung von Paaren, die zu Elementen einer höheren Dimension gruppiert sind, wird auf 8 verwiesen. Dies erlaubt es dem Lösungsfinder, jedem Paar ein "vorzeichenbehaftetes Volumen" zuzuordnen. Eine Kante im eindimensionalen Raum hat ein vorzeichenbehaftetes Volumen, das durch die Differenz ihrer Endpunkte definiert ist. Auf ähnliche Weise definiert ein Dreieck eine vorzeichenbehaftete Fläche im zweidimensionalen Raum, wobei das Kreuzprodukt verwendet wird. Schließlich definiert ein Tetraeder ein vorzeichenbehaftetes Volumen im dreidimensionalen Raum. Im allgemeinen ist das Volumen des Elements als die Determinante der Matrix definiert, deren Spalten die Punkte des Elements in homogenen Koordinaten sind. Genauer gesagt, wenn das Element n Punkte P0, P1, ..., Pn aufweist, dann ist das Volumen die Determinante der folgenden Matrix:
    Figure 00190001
  • Es sei vol(paar) eine Funktion, die dieses Volumen berechnet. Die Nützlichkeit des Volumens ergibt sich aus der Tatsache, dass es verschwindet, wenn die Elemente des Paars kollidieren. Für eine Veranschaulichung dieser Tatsache für zwei kollidierende Kanten wird auf 9 verwiesen, wobei gezeigt wird, dass das Vorzeichen des Volumens des Tetraeders wechselt, wenn die beiden Kanten kollidieren, und es im Moment der Kollision null ist. Dieses Ergebnis liefert ein Verfahren, um für jedes Paar den Schnittpunkt zu berechnen. Berechne zunächst die Volumina zu Beginn und am Ende des Zeitschritts. Dann, wenn das Vorzeichen wechselt, kann der Lösungsfinder den Kollisionszeitpunkt unter Verwendung einer einfachen linearen Interpolation finden. Diese Vorgehensweise funktioniert, wenn die Elemente infinitesimal dünn sind. Um mit beliebigen Dicken zu arbeiten, betrachtet der Lösungsfinder außerdem den quadrierten Abstand zwischen den beiden Elementen der Paare. Für Kugeln ist dies einfach der quadrierte Abstand zwischen ihren Mittelpunkten. Für die anderen Interaktionen ist jedoch die Berechnung ein klein wenig verwickelter und wird im vorliegenden Dokument später erläutert (siehe unten den Abschnitt "Abstand zwischen Grundformen"). Zum Zwecke dieser Darlegung nehmen wir an, dass die Abstandsberechnung in einer Funktion abstand2(paar) implementiert ist. Um den Kollisionszeitpunkt zu ermitteln, wird die folgende Funktion statt nur das Volumen betrachtet:
    koll_funk(paar) = vorzeichen(vol(paar))·abstand2(paar).
  • Es sei angenommen, dass die kombinierte Dicke der Elemente gleich dick ist; dann lautet die Programmprozedur zum Berechnen der Auftreffzeit wie folgt:
    Figure 00200001
  • Die Schönheit dieser Programmprozedur liegt darin, dass sie sehr einfach ist und für alle vier Paartypen funktioniert. Es ist zu bemerken, dass die Vorgehensweise nicht voraussetzt, dass sich die in dem Paar enthaltenen Punkte während des Zeitschritts in geraden Bewegungspfaden fortbewegen. Mit dieser Annahme würde die Berechnung der Kollisionszeit im Fall "se" die Lösung einer quadratischen Gleichung erfordern, und in den Fällen "st" und "ee" würde sie die Lösung einer kubischen Gleichung erfordern. Dieses Verfahren mag zunächst als weniger genau erscheinen. Die Annahme eines linearen Wegs ist jedoch bereits selbst eine Näherung, weil in jedem Zeitintervall eine während des Zeitintervalls wirkende Kraft das Teilchen zu einer Bewegung entlang eines gekrümmten Wegs veranlasst. Die Verwendung einer teueren Technik, um eine Näherung genau zu lösen, wie beispielsweise eine herkömmliche lineare Näherungsberechnung, ist unnützer Aufwand.
  • Für die "ss"-Interaktion muss der Lösungsfinder die Kugeln auf eine Linie projizieren, bevor die Volumenformel verwendet wird. Statt eine zufällige Richtung zu wählen, benutzt oder wählt der Lösungsfinder die Koordinatenachse, für die der Absolutbetrag der Differenz zwischen den Kugelpositionen zur Zeit 0 maximal ist. Auf ähnliche Weise projiziert der Lösungsfinder für die "se"-Interaktion die drei Punkte auf diejenige Ebene, deren Normale die größte Koordinate derjenigen Normalen ist, die durch die drei Punkte zur Zeit 0 definiert wird. Diese Wahlentscheidungen stellen sicher, dass der Lösungsfinder keine Ebene wählt, für die, auch wenn die Punkte nicht in Kontakt miteinander geraten, das Volumen 0 ist.
  • Wenn man diese Teilstücke zusammensetzt, erhalten wir eine Implementierung der Paarkollisionen wie folgt:
    Figure 00220001
  • Die Funktion paarkollision() hängt vom Paartyp ab und wird später ausführlicher beschrieben (siehe unten die Erläuterung "Kollisionsreaktion").
  • Um die Kollision mit den Flächen zu bearbeiten, berechnet der Lösungsfinder für jedes Teilchen die Durchdringungstiefe am Anfang und am Ende des Zeitschritts. Wenn sich beide Punkte außerhalb der Fläche befinden, braucht nichts getan zu werden. Wenn es eine Überschneidung gibt, ermitteln wir den Kollisionszeitpunkt und fahren auf ähnliche Weise wie bei den Paarkollisionen fort. Die Durchdringungstiefe wird aus dem nächsten Punkt auf der Fläche und der Richtung der Normalen dort berechnet:
    Figure 00220002
  • Die Durchdringungstiefe ist negativ, wenn keine Durchdringung vorliegt. Die Implementierung der Zeit bis zum Kontakt ist dann wie folgt gegeben:
    Figure 00230001
  • Die folgenden beiden Funktionen werden verwendet, um alle Kugel-/sp-Flächen-Kollisionen aufzulösen. Hier ist die Implementierung:
    Figure 00230002
  • Für eine ausführlichere Beschreibung der flächenkollision-Programmroutine wird auf die später hier gegebene Erläuterung "Kollisionsantwort" verwiesen.
  • Behandlung von Randbedingungen
  • Nach dem Ausführen der Raum-Zeit-Kollisionen muss der Lösungsfinder alle Verformungskräfte, die von internen Beanspruchungen, wie beispielsweise Streckungen oder Biegungen, hervorgerufen werden, auflösen. Gleichzeitig muss der Lösungsfinder alle Durchdringungen auflösen, die im Kollisionsschritt nicht vollständig aufgelöst worden sind.
  • Der Lösungsfinder löst zunächst alle Streckungs- und Biegungs-Randbedingungen auf. Beide können bearbeitet werden, indem lediglich eine Längen-Randbedingung verwendet wird. Um eine Streckung zu bearbeiten, werden Verknüpfungen zwischen Teilchenpaaren erzeugt, wobei deren Ruhelänge gleich der Länge der Verknüpfung in ihrer Ruheposition ist. Dies ist ähnlich wie eine Interaktion vom Typ "ss". Auf ähnliche Weise fügt der Lösungsfinder für jede innere Kante in einem Netz eine Verknüpfung zwischen den beiden Knoten auf den Flächen hinzu, die nicht Teil der Kante sind. Für eine Darstellung, die zeigt, wie Biegeeffekte gehandhabt werden, indem für jede innere Kante 182 eine zusätzliche, die Bewegung einschränkende Verknüpfung 180 hinzugefügt wird, wird auf 10 verwiesen.
  • Der Lösungsfinder löst dann die Streck- und Biegekräfte Verknüpfung für Verknüpfung auf:
    Figure 00240001
    Figure 00250001
  • Diese Programmroutine wird eine Anzahl von Malen iteriert, so dass sich die Änderungen von einer Verknüpfung zur anderen fortpflanzen. Veränderungen der oben angegebenen Implementierung sind möglich. Beispielsweise können die Teilchengeschwindigkeiten unmittelbar "an ihrem Ort" aktualisiert werden, ohne die Änderungen in delta_v anzusammeln. Dies ist der anderen Implementierung ähnlich, die uns oben für die Raum-Zeit-Kollisionen begegnet ist.
  • Das Modellieren von Biege-Randbedingungen unter Verwendung der Querkante zwischen benachbarten Flächen bringt das Problem mit sich, dass es zwei zulässige Zustände aufweist, wie in 11a und 11b gezeigt: Die angrenzenden Dreiecke können zwischen einem und dem anderen Zustand hin- und herklappen. Aus diesen Gründen ist ein genaueres Modell entwickelt worden, das den Winkel zwischen den Flächen derart einschränkt, dass er einen bestimmten Wert aufweist. Wie in 11c gezeigt, seien P0, P1, P2 und P3 die Punkte auf den beiden benachbarten Dreiecken. Zunächst werden die folgenden drei Vektoren D1 = P1 – P0, D2 = P2 – P0, D3 = P3 – P0 definiert. Auf Grundlage dieser Vektoren können wir die Normalen zu den Dreiecken definieren: N0 = D1 × D2 und N1 = D3 × D1. Wir nehmen an, dass diese Vektoren alle normalisiert sind. Für eine Darstellung dieser Vektoren wird auf 11c verwiesen. Der Winkel zwischen den Dreiecken ist gleich dem Winkel = wie in (punkt((N0 × N1), D1)). Es sei winkel0 der Ruhewinkel. Als nächstes möchten wir die vier Punkte derart verschieben, dass der Winkel gleich dem Ruhewinkel winkel0 ist. Im allgemeinen ist dies ein kompliziertes Problem mit möglicherweise vielen Lösungen. Wir verringern die Komplexität des Problems, indem wir annehmen, dass jeder Punkt so eingeschränkt ist, dass er sich nur entlang bestimmter Richtungen mit einem festen Veränderungswert z bewegen kann. Als mögliche Wahl kann die folgenden Beziehungen verwendet werden: Q0 = P0 – z N, Q1 = P1 – z N, Q2 = P2 + z N0 und Q3 = P3 + z N1, wobei N = (N0 + N1)/2 der Vektor in der Mitte zwischen den Normalen ist (siehe 11c). Es ist zu bemerken, dass sich die Richtungen zu Null aufaddieren. Indem der Veränderungswert z verändert wird, erhalten wir für den Winkel einen anderen Wert. Unser Ziel ist es, einen Wert von z zu finden, so dass der Winkel gleich dem Ruhewinkel winkel0 wird, so dass der Winkel zwischen den Normalen beibehalten wird. Eine herkömmliche Näherungsberechnung erster Ordnung, die auf den gewünschten Winkel konvergiert, wird verwendet. Ein Versuch, für jeden Winkel eine genaue Lösung zu finden, ist zeitaufwendig, weil Änderungen, die an einem Dreieckspaar vorgenommen werden, das Ergebnis für ein angrenzendes Paar beeinflussen.
  • Um die Durchdringung zwischen Formen zu bearbeiten, führt der Lösungsfinder eine Schleife über alle interagierenden Paare aus und erzeugt Geschwindigkeiten (Trennungsgeschwindigkeiten), die zu den sich ergebenden Kollisionsgeschwindigkeiten addiert werden, so dass die Grundformen getrennt werden. Dies bewirkt das Hindrängen hin zu einem zulässigen Zustand, wodurch die Simulation verbessert wird. Für jedes Elementpaar berechnet der Lösungsfinder den nächsten oder kürzesten Abstand zwischen den Elementen und führt eine Prüfung durch, um herauszufinden, ob es eine Überlappung gibt. Wenn dies der Fall ist, erzeugt der Lösungsfinder eine Trennungsgeschwindigkeit entlang dieser nächsten Richtung oder Abstandsrichtung (oder Richtung des zulässigen Punkts), die die Grundformen trennt. 12 veranschaulicht, wie dies für alle vier Interaktionsarten ausgeführt wird, wobei Überlappungen zwischen Elementen bearbeitet werden, indem trennende Geschwindigkeiten beruhend auf dem kürzesten Abstand zwischen ihnen berechnet werden. Die obere Zeile der Beispiele in 12 stellt die Überlappungssituation dar, und die untere Zeile veranschaulicht das "Hindrängen", das die erforderliche Trennung ergibt. Im ebenen Fall beträgt, wenn sich der Mittelpunkt des Teilchens außerhalb eines Objekts befindet, die Geschwindigkeit V = (r – d)D/d, wobei D der Vektor zwischen dem Teilchenmittelpunkt und dem nächsten Punkt ist, r die Größe des Teilchens ist, und d der Abstand zwischen dem Teilchen und dem nächsten Punkt ist, und wenn sich der Mittelpunkt des Teilchens außerhalb des Objekts befindet, beträgt die Geschwindigkeit V = (r + d)D/d.
  • Um Überlappungen mit Flächen zu bearbeiten, berechnet der Lösungsfinder, wie oben beschrieben, die Durchdringungstiefe jedes Teilchens, und erzeugt im Falle einer Überlappung eine Geschwindigkeit, die das Teilchen aus der Form herausdrängt. Dieser Vorgang ist auch nützlich, um Überlappungen zwischen geschlossenen Dreiecksnetzen aufzulösen, weil diese Flächen sind. 13 veranschaulicht, wie dieser Schritt funktioniert, bei dem bei der Durchdringungsbearbeitung für eine Fläche jedes Teilchen aus der Fläche herausgedrängt wird, und zwar entlang des Wegs zu dem nächsten Punkt auf der Fläche.
  • Räumliche Datenstrukturen
  • Um die überlappenden umhüllenden Kugeln effizient zu finden, können zumindest zwei räumliche Datenstrukturen verwendet werden: Eine Hash-Tabelle und ein Kugelbaum.
  • Die Hash-Tabelle beruht auf der Idee, den Raum in gleichförmige Zellen zu unterteilen. Die Größe der Zellen wird auf das Doppelte der Größe der größten umhüllenden Kugel gesetzt. Jede Zelle speichert eine Liste der umhüllenden Kugeln, deren Mittelpunkte sich innerhalb der Zellen befinden. Um die Paare zu finden, brauchen wir nur umhüllende Kugeln zu vergleichen, die sich in benachbarten Zellen befinden. Dies führt zu einer immensen Ersparnis von Rechenzeit. Das Problem bei dieser Vorgehensweise ist, dass wir ein die Zellen enthaltendes Netz haben. Hier ist die Hash-Tabelle nützlich. Eine Hash-Tabelle ist eine eindimensionale Repräsentation des dreidimensionalen Zellennetzes. Eine Hash-Funktion bildet jeden Eintrag (i, j, k) des Netzes auf einen Index der eindimensionalen Hash-Tabelle ab. Wenn n_hash die Größe der Hash-Tabelle ist, dann lautet eine mögliche Hash-Funktion, die vorzugsweise verwendet wird, wie folgt:
    hash(i, j, k) = ((i mod p) xor (j mod q) xor (k mod r)) mod n_hash
    wobei p, q und r irgendwelche große Primzahlen sind. Natürlich werden viele Mengen von Netzindizes auf einen einzigen Index in der Hash-Tabelle abgebildet. Dies bedeutet, dass ein Eintrag in der Hash-Tabelle umhüllende Kugeln von vielen unterschiedlichen Zellen des Netzes haben kann. Jedoch ist die Anzahl von Vergleichen von umhüllenden Kugeln immer noch eine Größenordnung schneller als die Vorgehensweise, bei der kein zusätzlicher Bedarf an Speicherplatz auftritt.
  • Ein Nachteil der Vorgehensweise mit einer Hash-Tabelle ist, dass sie langsam wird, wenn die umhüllenden Kugeln hochgradig unterschiedliche Größen aufweisen. Dies geschieht beispielsweise, wenn sich nur einige der Teilchen sehr schnell bewegen oder wenn die Größen der Kanten und Dreiecke sehr weitgehend variieren. Daher kann der Lösungsfinder in einer Ausführungsform eine andere Datenstruktur verwenden, die besser auf diesen Fall zugeschnitten ist: den Kugelbaum. Die Idee ist sehr einfach. Der Lösungsfinder bindet rekursiv Paare von umhüllenden Kugeln an eine größere Kugel. Dies wird solange ausgeführt, bis nur noch eine einzige Kugel übrig ist, nämlich die Wurzel des Kugelbaums. Die Berechnung der Topologie des Baums wird unter Verwendung einer Hash-Tabelle für die Paarbildung ausgeführt. Dieser Schritt ist einigermaßen aufwendig, aber er braucht für eine Simulation nur ein einziges Mal ausgeführt zu werden. Um Paare zu berechnen, führt der Lösungsfinder eine rekursive Prüfung durch, um festzustellen, ob die Kugel an eine Kugel im Baum angrenzt. Wenn nicht, kann der Lösungsfinder alle Kinder der Kugel ignorieren. Wenn es der Fall ist, dann fährt der Lösungsfinder bei den umhüllenden Kugeln der Kinder fort. Die Position und Größen der umhüllenden Kugeln im Baum müssen zu Beginn jedes Zeitschritts neu berechnet werden. Dies ist jedoch eine ziemlich problemlose Berechnung, bei der der Lösungsfinder die umhüllenden Kugeln der Blätter zurücksetzt und dann die umhüllenden Kugeln in den verbleibenden Knoten des Baums neu berechnet.
  • Abstand zwischen Grundformen
  • Um die Zeit von Kollisionen zu berechnen und um die Durchdringungen zwischen Grundformen aufzulösen, muss der Lösungsfinder den kürzesten Abstand zwischen Paaren davon berechnen. Der Fall zweier Kugeln ist trivial, wobei der kürzeste Abstand gleich dem Abstand zwischen ihren Mittelpunkten ist. Der kürzeste Abstand zwischen einer Kugel und einer Kante wird berechnet, indem zunächst der Mittelpunkt der Kugel auf die unendliche Linie, die die Kante enthält, projiziert wird. Wenn sich der Punkt innerhalb der Kante befindet, ist der Lösungsfinder fertig, wenn nicht, dann ist der nächste Punkt einer der Endpunkte. Auf ähnliche Weise erhält man den nächsten Punkt auf einem Dreieck bezüglich einer Kugel, indem man zunächst den Punkt in die Ebene des Dreiecks projiziert. Wenn sich der Punkt innerhalb des Dreiecks befindet, ist der Lösungsfinder fertig. Wenn nicht, sucht der Lösungsfinder den nächsten Punkt auf einer der drei Kanten des Dreiecks. Der nächste Punkt zwischen zwei Kanten wird berechnet, indem solche Punkte auf den unendlichen Linien gesucht werden, deren Differenz senkrecht auf beiden Linien steht. Diese Punkte werden dann auf den nächsten Punkt auf der Kante projiziert, wenn sie sich außerhalb davon befinden.
  • Kollisionsreaktion
  • Wir betrachten zunächst die Kollisionsreaktion des Teilchens, das mit Geschwindigkeit v auf eine Ebene mit einer Normalen, die gleich norm ist, auftrifft. Das Verhalten der Kollision kann durch einen Prallparameter prall und einen Parameter reibung modelliert werden. Die Implementierung ist wie folgt:
    Figure 00300001
  • Hier wird ein sehr einfaches Reibungsmodell verwendet; in der Praxis kann man ein höher entwickeltes Modell verwenden. Falls der Prallparameter eins und die Reibung null beträgt, wird einfach die Normalenkomponente der Geschwindigkeit des Teilchens umgekehrt.
  • Die Programmroutine flächenkollision ist beinahe identisch der Programmroutine für die Ebenenkollision, weil das Teilchen am Auftreffpunkt mit der tangentialen Ebene kollidiert. Die Implementierung lautet wie folgt:
    Figure 00300002
  • Die Paarkollisionen werden auf ähnliche Weise behandelt. Zunächst bewegt der Lösungsfinder den Punkt bis zum Schnittpunkt. Als nächstes berechnet er eine "Normale" norm, die dem kürzesten Abstand zwischen den bestimmten Punkten entspricht, wie oben erläutert. Weil die Grundformen eine bestimmte Dicke aufweisen, ist dieser Abstand niemals gleich null. Für Kanten und Dreiecke ist der Ort des nächsten Punkts eine Linearkombination ihrer Knoten. Diese Koordinaten werden im Feld koord gespeichert. Um einige Formeln unten einfacher zu gestalten, negieren wir die Koordinaten der zweiten Grundform im Paar. Beispielsweise ergibt sich im Falle zweier Kugeln immer, dass koord[i0] = 1 und koord[i1] = –1 sind, wobei alle anderen Einträge gleich null sind. Unter Verwendung dieses Feldes lautet die Berechnung der Relativgeschwindigkeit einfach:
    rel_v = punkt(koord, vorher_v)
  • Wir nehmen an, dass norm und koord von einer Programmroutine mit dem Namen berechne_paar_daten() berechnet werden. Die Kollision für ein Paar lautet wie folgt:
    Figure 00310001
  • Gesamtvorgang
  • In einer bevorzugten Ausführungsform umfasst der Gesamtvorgang 240 (siehe 14) der vorliegenden Erfindung, wie oben erläutert, das Berechnen einer Kugelbaum-Topologie 242 und das Bestimmen 244 von nächsten Nachbarn und Kollisionslängen. Das System berechnet 246 auch auf herkömmliche Weise eine Unterteilungstopologie. Dann werden Biegeverknüpfungen bestimmt 248. Anfangspositionen und -geschwindkeiten für die Teilchen und Elemente werden besorgt 250, und die Berechnungsvorgänge des Lösungsfinders werden ausgeführt 252. Dann wird vorzugsweise ein Vorgang zum Glätten einer Unterteilung (subdivision smoothing) ausgeführt 254.
  • Darstellung
  • 15a bis 15h zeigen eine Darstellung eines Teilchensystems, das einen Stab und einen Tuch simuliert, wie sie einen unzulässigen Zustand durchlaufen und sich zurück zu einem zulässigen Zustand entwickeln. 15a zeigt einen Stab, der sich einem Tuch nähert. 15b zeigt den Stab, wie er beginnt, das Tuch zu verformen. 15c stellt das Tuch mit hochgradiger Verformung dar, und der Stab beginnt, das Tuch zu durchdringen, wobei das Tuch beginnt, im Stab zu verschwinden; ein unzulässiger Zustand. Die Simulation tritt in einen unzulässigen Teilchenzustand ein, und die Simulation bricht nicht zusammen. 15d zeigt das Tuch, wie es durchdrungen worden ist, aber nicht zerrissen worden ist; ein unzulässiger Zustand. Der unzulässige Zustand setzt sich fort, und die Simulation bricht nicht zusammen. 15e zeigt, wie der Stab seine Bewegung umkehrt und beginnt, sich durch das Tuch zurückzuziehen, wobei sich die Simulation immer noch in einem unzulässigen Zustand befindet und die Simulation wiederum nicht zusammengebrochen ist. 15f zeigt, dass das Zurückziehen fortgesetzt wird. 15g zeigt, wie das Tuch von dem Stab freigekommen ist, und sich wieder in einem zulässigen Zustand befindet. 15h zeigt, wie das Tuch in einem zulässigen Zustand über dem Stab hängt, wobei die Simulation von einem zulässigen Zustand zu einem unzulässigen Zustand zu einem zulässigen Zustand verlaufen ist.
  • Hardware
  • Die hier beschriebenen Vorgänge der vorliegenden Erfindung können auf einem herkömmlichen Computersystem 260 ausgeführt werden, wie beispielsweise dem in 16 dargestellten, das einen Computer 262 mit einer Anzeige 264, einer Tastatur 266 und einer Maus 268 aufweist. Das System weist auch einen permanenten oder entnehmbaren Speicher auf, wie beispielsweise magnetische und optische Platten, RAM, ROM, usw., in dem das Verfahren und die Datenstrukturen der vorliegenden Erfindung gespeichert und verteilt werden können. Die Vorgänge können auch beispielsweise durch ein Herunterladen über ein Netz, wie z.B. das Internet, verteilt werden.
  • Zusammenfassung und Schlussfolgerungen
  • Diese Erläuterung hat einen neuen Lösungsfinder für die Simulation von verformbaren Formen, die sich selbst beeinflussen, vorgestellt. Wegen der großen Menge an Randbedingungen und Kollisionen haben wir einen iterativen Lösungsfinder gewählt, der den Zustand des Systems allmählich hin zu einem zulässigen Zustand drängt. Dies ermöglicht es, dass die Simulation unzulässige Zustände akzeptiert, und es erhöht die Stabilität der Simulation. Die meisten Vorgänge sind sehr einfach und eignen sich für eine einfache Implementierung des Lösungsfinders. Dies ist insbesondere wünschenswert, wenn große Systeme, die sich selbst beeinflussen, behandelt werden sollen, wie beispielsweise Tuch.
  • Die vorliegende Erfindung ist im Hinblick auf zwei Schemata zum Auflösen von Kollisionen beschrieben worden, nämlich dem Setzen der Endgeschwindigkeit auf die Kollisionsgeschwindigkeit derjenigen Kollision mit der kleinsten Kollisionszeit, und dem Berechnen eines zeitgewichteten Mittelwerts der Kollisionsgeschwindig keiten. Andere Schemata oder Ausführungsformen sind möglich, wie beispielsweise ein nicht-gewichteter Mittelwert von Kollisionsgeschwindigkeiten.
  • Die vorliegende Erfindung ist im Hinblick auf ein Auflösen von Biege- und Dehnungs-Randbedingungen beschrieben worden. Andere Arten von internen Energien, wie beispielsweise eine Verdrehung für eine Kurve, können mit den gleichen Grundideen implementiert werden.
  • Die vielen Merkmale und Vorteile der Erfindung sind aus der ausführlichen Beschreibung offensichtlich, und es wird somit beabsichtigt, dass die angehängten Ansprüche alle Merkmale und Vorteile der Erfindung abdecken sollen, die sich im recht verstandenen Sinn und Bereich der Erfindung befinden. Weil viele Modifikationen und Veränderungen Fachleuten auf dem Gebiet leicht in den Sinn kommen, soll ferner die Erfindung nicht auf die genaue dargestellte und beschriebene Konstruktion und Betriebsweise beschränkt sein, und demgemäß kann Rückgriff auf alle geeigneten Modifikationen und Äquivalente genommen werden, die in den Bereich der Erfindung fallen.
  • ZUSAMMENFASSUNG
  • Die vorliegende Erfindung ist ein Lösungsfinder für Teilchenpositionen, der es Teilchen gestattet, ein Ende eines festen Zeitschritts in einem unzulässigen Zustand zu erreichen, wobei die Teilchen dann hin zu einem zulässigen Zustand gedrängt werden. Dies gestattet es dem Lösungsfinder, die Simulation fortzusetzen, während sich die Simulationsergebnisse hin auf ein zulässiges Verhalten bewegen. Teilchenkollisionsberechnungen werden vereinfacht, indem ein nicht-sequentielles Modell herangezogen wird, wobei einige Kollisionen vernachlässigt oder kombiniert werden. Die Geschwindigkeit der Simulation wird ferner verbessert, indem einige Vorgänge außerhalb der Berechnungsschleife des Lösungsfinders ausgeführt werden, und indem speziell angepasste Datenstrukturen verwendet werden.

Claims (29)

  1. Teilchensimulationsverfahren, umfassend: – Simulieren der dynamischen Bewegung von Teilchen und Gestatten, dass der Teilchenzustand unzulässig ist; und – Anpassen des Teilchenzustands in Richtung auf einen zulässigen Zustand.
  2. Verfahren nach Anspruch 1, bei dem die Teilchen, wenn sie zusammengefügt werden, Grundformen aufweisen, die Kugeln, Kanten, Dreiecke und Flächen umfassen.
  3. Verfahren nach Anspruch 1, bei dem die Teilchen unter Verwendung von Kanten, Dreiecken oder tetraedrischen Elementen oder einer Kombination davon verbunden werden.
  4. Verfahren nach Anspruch 1, bei dem die Teilchen unter Verwendung von Kanten, Dreiecken oder Tetraedern oder einer Kombination davon miteinander verknüpft werden.
  5. Verfahren nach Anspruch 1, bei dem die Teilchen verknüpft werden, um Stoff darzustellen.
  6. Verfahren nach Anspruch 1, bei dem das Simulieren einen einzigen festen Zeitschritt simuliert.
  7. Verfahren nach Anspruch 1, bei dem das Simulieren umfasst: – Bestimmen von Teilchenkollisionen; und – Anwenden von Randbedingungen auf die Teilchen.
  8. Verfahren nach Anspruch 7, bei dem das Anwenden eine Verknüpfung zwischen nicht-verbundenen Teilchen, die mit ein und demselben Teilchen verknüpft sind, mit einer Ruhelänge hinzufügt.
  9. Verfahren nach Anspruch 7, bei dem das Anwenden den Winkel zwischen Dreiecken, die an eine Kante angrenzen, berechnet, um eine Biege-Randbedingung wirken zu lassen.
  10. Verfahren nach Anspruch 7, bei dem ein Winkel zwischen Flächennormalen beibehalten wird.
  11. Verfahren nach Anspruch 7, bei dem das Bestimmen umfasst: – Berechnen eines vorzeichenbehafteten Volumens zu Beginn und am Ende eines Zeitschritts; und – Bestimmen, dass eine Kollision aufgetreten ist, wenn das Vorzeichen wechselt.
  12. Verfahren nach Anspruch 7, bei dem das Bestimmen eine Dicke der Teilchen voraussetzt.
  13. Verfahren nach Anspruch 7, bei dem das Bestimmen eine Endgeschwindigkeit eines Teilchens als Kollisionsgeschwindigkeit einer Kollision mit einer kleinsten Kollisionszeit in einem Zeitschritt bestimmt.
  14. Verfahren nach Anspruch 7, bei dem das Bestimmen eine Endgeschwindigkeit eines Teilchens als zeitgewichteten Mittelwert von Kollisionsgeschwindigkeiten eines Teilchens bestimmt.
  15. Verfahren nach Anspruch 7, bei dem das Bestimmen eine Endgeschwindigkeit eines Teilchens unter Verwendung eines nicht-sequentiellen Modells bestimmt.
  16. Verfahren nach Anspruch 1, bei dem das Anpassen ein Bestimmen einer Richtung und einer Geschwindigkeit zum Bewegen eines Teilchens in einen zulässigen Zustand umfasst.
  17. Verfahren nach Anspruch 16, bei dem die Richtung eine Richtung eines nächsten zulässigen Punkts umfasst und die Geschwindigkeit eine Trennungsgeschwindigkeit, die die Teilchen trennt, umfasst.
  18. Verfahren nach Anspruch 1, bei dem das Anpassen bestimmt, ob sich Teilchen überlappen.
  19. Verfahren nach Anspruch 1, bei dem der unzulässige Zustand ein Teilchen umfasst, das sich mit einem anderen Teilchen überlappt.
  20. Verfahren nach Anspruch 1, ferner mit einem Bestimmen von Kollisionspaaren, indem für jedes Teilchen eine umhüllende Kugel bestimmt wird und Teilchen mit umhüllenden Kugeln, die sich überlappen, zu Paaren gruppiert werden.
  21. Verfahren nach Anspruch 20, bei dem die Kollisionspaare unter Verwendung einer Hash-Tabelle berechnet werden.
  22. Verfahren nach Anspruch 20, bei dem die Kollisionspaare unter Verwendung eines Kugelbaums berechnet werden.
  23. Verfahren nach Anspruch 20, bei dem Kollisionskandidaten unter Verwendung einer Kollisionslänge berechnet werden, die gleich dem Minimum einer Summe von Teilchenradien und eines Abstands zwischen den Teilchen in einem Ruhezustand ist.
  24. Teilchensimulationsverfahren, das umfasst: – Simulieren der dynamischen Bewegung von Stoff, umfassend Teilchen, die durch Dreiecke miteinander verknüpft sind, und Erlauben, dass der Teilchenzustand unzulässig ist, umfassend: – Bestimmen von Teilchenkollisionen, umfassend: – Berechnen eines vorzeichenbehafteten Volumens an einem Anfang und einem Ende eines Zeitschritts; – Bestimmen, dass eine Kollision aufgetreten ist, wenn das Vorzeichen wechselt; und – Bestimmen einer Endgeschwindigkeit eines Teilchens als eine Kollisionsgeschwindigkeit einer Kollision mit einer kleinsten Kollisionszeit in einem Zeitschritt; und – Anwenden von Biege-Randbedingungen auf den Stoff, indem eine Verknüpfung, die sich dem Biegen widersetzt, zwischen nicht-verbundenen Teilchen, die mit ein und demselben Teilchen verknüpft sind, mit einer Ruhelänge angewendet wird; und – Anpassen des Teilchenzustands hin zu einem gültigen Zustand, umfassend das Bestimmen einer Richtung und einer Geschwindigkeit, um ein Teilchen in einen gültigen Zustand zu bewegen, wobei die Richtung eine Richtung eines nächsten gültigen Punkts umfasst und die Geschwindigkeit eine Trennungsgeschwindigkeit umfasst, die die Teilchen trennt.
  25. Teilchensimulationsverfahren, umfassend: – Simulieren der dynamischen Bewegung von Teilchen und Anzeigen eines ersten Bildes der Teilchen in einem zulässigen Zustand; – Simulieren der dynamischen Bewegung der Teilchen, wobei gestattet wird, dass der Teilchenzustand unzulässig ist, und Anzeigen eines zweiten Bildes der Teilchen in dem unzulässigen Zustand; und – Simulieren der dynamischen Bewegung der Teilchen, wobei der Teilchenzustand hin zu einem zulässigen Zustand angepasst wird, und Anzeigen eines dritten Bildes der Teilchen in dem zulässigen Zustand.
  26. Darstellung, umfassend: – ein erstes Bild von Teilchen in einem zulässigen Zustand; – ein zweites Bild der Teilchen in einem unzulässigen Zustand; und – ein drittes Bild der Teilchen in dem zulässigen Zustand.
  27. Vorrichtung mit: – einem Computer, der die dynamische Bewegung von Teilchen simuliert und es gestattet, dass der Teilchenzustand unzulässig ist, und der den Teilchenzustand hin zu einem zulässigen Zustand anpasst; und – einer Anzeige, die die Simulation anzeigt.
  28. Vorrichtung nach Anspruch 27, bei der die Anzeige ein erstes Bild der Teilchen in einem zulässigen Zustand, ein zweites Bild der Teilchen in einem unzulässigen Zustand, und ein drittes Bild der Teilchen in dem zulässigen Zustand anzeigt.
  29. Computerlesbarer Speicher zum Steuern eines Computers mittels eines Teilchensimulationsprozesses, umfassend: – Simulieren der dynamischen Bewegung von Teilchen und Zulassen, dass der Teilchenzustand unzulässig ist; und – Anpassen des Teilchenzustands hin zu einem gültigen Zustand.
DE112006000938T 2005-04-13 2006-03-13 Dynamischer Lösungsfinder mit fester Zeitschrittgrösse für interagierende Teilchensysteme Withdrawn DE112006000938T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/104,607 US7813903B2 (en) 2005-04-13 2005-04-13 Fixed time step dynamical solver for interacting particle systems
US11/104,607 2005-04-13
PCT/IB2006/002450 WO2007007195A2 (en) 2005-04-13 2006-03-13 A fixed time step dynamical solver for interacting systems

Publications (1)

Publication Number Publication Date
DE112006000938T5 true DE112006000938T5 (de) 2008-03-20

Family

ID=37109630

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006000938T Withdrawn DE112006000938T5 (de) 2005-04-13 2006-03-13 Dynamischer Lösungsfinder mit fester Zeitschrittgrösse für interagierende Teilchensysteme

Country Status (6)

Country Link
US (1) US7813903B2 (de)
JP (1) JP2008541203A (de)
CA (1) CA2605055A1 (de)
DE (1) DE112006000938T5 (de)
GB (1) GB2441448A (de)
WO (1) WO2007007195A2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7616204B2 (en) * 2005-10-19 2009-11-10 Nvidia Corporation Method of simulating dynamic objects using position based dynamics
US8327388B2 (en) * 2005-12-07 2012-12-04 Nvidia Corporation Cloth application programmer interface
US7620532B2 (en) * 2006-01-23 2009-11-17 Itt Manufacturing Enterprises, Inc. Object discretization to particles for computer simulation and analysis
US7610184B1 (en) * 2006-01-23 2009-10-27 Itt Manufacturing Enterprises, Inc. Sector meshing and neighbor searching for object interaction simulation
US7737997B2 (en) * 2006-12-28 2010-06-15 Intel Corporation Collision detection of concave bodies using art gallery problem and cube maps
US7580035B2 (en) * 2006-12-28 2009-08-25 Intel Corporation Real-time collision detection using clipping
US7933858B2 (en) * 2007-03-23 2011-04-26 Autodesk, Inc. General framework for graphical simulations
US8223155B2 (en) * 2007-04-27 2012-07-17 Sony Corporation Method for simulating large numbers of spherical bodies interacting
TWI355619B (en) * 2007-12-04 2012-01-01 Inst Information Industry System, method and recording medium for multi-leve
US8279227B2 (en) * 2008-04-04 2012-10-02 Sony Corporation Method for detecting collisions among large numbers of particles
US20090326888A1 (en) * 2008-06-30 2009-12-31 Bader Aleksey A Vectorized parallel collision detection pipeline
JP5268496B2 (ja) * 2008-08-22 2013-08-21 株式会社東芝 流動解析方法、流動解析装置、及び流動解析プログラム
US20100073383A1 (en) * 2008-09-25 2010-03-25 Sergey Sidorov Cloth simulation pipeline
JP5417865B2 (ja) * 2009-01-28 2014-02-19 富士ゼロックス株式会社 粒子挙動解析装置およびプログラム
US20110310101A1 (en) * 2010-06-22 2011-12-22 Schlumberger Technology Corporation Pillar grid conversion
US20120038639A1 (en) * 2010-08-11 2012-02-16 Vincent Mora Presentation-enhanced solid mechanical simulation
US20120150496A1 (en) * 2010-12-09 2012-06-14 Jiun-Der Yu Simplified Fast 3D Finite Difference Particulate Flow Algorithms for Liquid Toner Mobility Simulations
US8903693B2 (en) * 2011-06-24 2014-12-02 Siemens Aktiengesellschaft Boundary handling for particle-based simulation
CN103838908B (zh) * 2013-09-14 2017-08-25 电子科技大学 一种基于aig和sat求解器的gste模型检测方法
US20150178425A1 (en) * 2013-12-20 2015-06-25 The Procter & Gamble Company Method for modeling graphics on a flexible form
US10319132B2 (en) 2014-05-08 2019-06-11 Nvidia Corporation Method and system for representing objects with velocity-dependent particles
KR101639066B1 (ko) * 2015-07-14 2016-07-13 한국과학기술연구원 가상 공간에 형성된 가상 모델을 제어하는 방법 및 시스템
JP7160752B2 (ja) * 2019-04-25 2022-10-25 株式会社日立製作所 粒子挙動シミュレーション方法、及び粒子挙動シミュレーションシステム
US11875094B2 (en) * 2019-09-19 2024-01-16 Microsoft Technology Licensing, Llc Minimization function for friction solving
KR102660215B1 (ko) * 2020-06-01 2024-04-23 스미토모 긴조쿠 고잔 가부시키가이샤 시뮬레이션 장치, 시뮬레이션 방법, 프로그램
CN113705066B (zh) * 2021-09-28 2024-04-19 成都中鱼互动科技有限公司 一种布料物理运动模拟方法
CN118095144B (zh) * 2024-04-23 2024-06-25 临沂大学 一种基于计算流体力学的高碱煤灰沉积模拟方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6657629B2 (en) * 2001-02-28 2003-12-02 Pixar Animation Studios Collision flypapering: a method for defining realistic behavior for simulated objects in computer animation
GB0120039D0 (en) * 2001-08-16 2001-10-10 Univ London Method for dressing and animating dressed beings
KR100500897B1 (ko) * 2003-09-03 2005-07-14 한국전자통신연구원 방향을 갖는 질점과 일반화된 스프링 모델을 이용한비정형 물체의 애니메이션 방법
US7385603B2 (en) * 2004-06-30 2008-06-10 Warner Bros. Entertainment, Inc. Method for simulating motion of cloth

Also Published As

Publication number Publication date
GB0720228D0 (en) 2007-11-28
CA2605055A1 (en) 2007-01-18
GB2441448A (en) 2008-03-05
JP2008541203A (ja) 2008-11-20
WO2007007195A3 (en) 2008-07-17
US7813903B2 (en) 2010-10-12
WO2007007195A2 (en) 2007-01-18
US20060235659A1 (en) 2006-10-19

Similar Documents

Publication Publication Date Title
DE112006000938T5 (de) Dynamischer Lösungsfinder mit fester Zeitschrittgrösse für interagierende Teilchensysteme
DE3689820T2 (de) Verfahren und Gerät zur Simulierung von durch partielle differentiale Gleichungen beschriebenen Systemen.
DE69032387T2 (de) Vorrichtung und Verfahren zum rechnergestützten Entwurf von Blechteilen
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE112006003728T5 (de) Verfahren zum Simulieren eines deformierbaren Objekts unter Verwenden eines geometrisch motivierten Models
EP1251462B1 (de) Verfahren zum Segmentieren einer in einem Objekt enthaltenen dreidimensionalen Struktur, insbesondere für die medizinische Bildanalyse
DE112016001796T5 (de) Feinkörnige bildklassifizierung durch erforschen von etiketten von einem bipartiten graphen
DE19612016A1 (de) Verfahren zur rechnergestützten Geometriemodellierung
DE112007001789T5 (de) Bestimmung und Verwendung einer dominanten Linie eines Bildes
DE69915837T2 (de) Parametrische Flächenauswertung im Eigenraum der Unterteilungsmatrix eines irregulären Flächenstücks
DE102021205714A1 (de) System und verfahren zum kombinieren von differenzierbaren partiellen differentialgleichungslösern und neuronalen graphennetzen zur fluidflussvorhersage
DE102014006549B4 (de) Technik zur Verarbeitung einer Zeichenfolge zur graphischen Darstellung an einer Mensch-Maschine-Schnittstelle
EP0829822A2 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen
DE202016009145U1 (de) Deep-Learning-basierte funktionale Korrelation von volumetrischen Designs
DE102018220365A1 (de) Verfahren zur Herstellung mindestens eines Teils eines Sportartikels
DE69817107T2 (de) System und Verfahren zur polyhedral Kollisiondetektion
DE102010055708A1 (de) Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
DE69901959T2 (de) Anwenderdefinierbare Parameter zur Finite-Element-Analyseberechnung in einem Cad-Programm
DE69113465T2 (de) Paralleler prozessor für flüssigkeitsdynamik.
EP1820160A1 (de) Verfahren zur ableitung von technischen zeichnungen aus 3d modellen mit mindestens zwei kollidierenden 3d körpern
DE102018007145A1 (de) Erzeugen von 3D-Strukturen unter Verwendung eines genetischen Programmierens zum Erfüllen von funktionellen und geometrischen Beschränkungen
DE112010005294T5 (de) Bildanzeigevorrichtung
DE102004022395A1 (de) Rechnerunterstützte Modellierung
DE102013206276A1 (de) Verfahren und Vorrichtung zum Erstellen eines Funktionsmodells für ein Steuergerät eines Motorsystems

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee