Welche Eigenschaften haben grundlegende Partikelmotoren?

7

Ich habe ein grundlegendes Partikelsystem für SDL in C ++ erstellt. Es hat einige grundlegende Dinge wie einen Emitter sowie eine einfache Partikelklasse. Es kann ein Bild laden oder einen Farbpunkt erstellen. Und das ist es. Welche anderen Eigenschaften haben die meisten einfachen Partikelmotoren? Beachten Sie, dass dies eine 2D-Partikel-Engine ist.

Ethan Shaw
quelle
Verwenden Sie Google: en.wikipedia.org/wiki/Particle_system
Justin Skiles
5
Denken Sie daran, dass all Ihre großartigen Funktionen keine Rolle spielen, wenn Sie Ihr Tool nicht für Künstler nutzbar machen.
Laurent Couvidou

Antworten:

19

Dies ist eine sehr weit gefasste Frage, aber im Allgemeinen können Partikelsystemmerkmale in einige Kategorien unterteilt werden. Hier sind einige allgemeine Ideen für die Art von Dingen, die Sie haben möchten.

Emissionsmerkmale definieren, wie, wann und wo Partikel emittiert werden.

  • Generieren Sie kontinuierlich Partikel mit einer festen Rate oder einen Cluster auf einmal, wenn dies durch ein Ereignis im Spiel ausgelöst wird.
  • Platzieren Sie neu emittierte Partikel an einem Punkt oder zufällig in einem Bereich, z. B. einer Box oder einem Kreis. Der Punkt oder die Region kann sich bewegen, z. B. an ein Objekt oder eine Figur angehängt.
  • Emittieren Sie Partikel mit einer Geschwindigkeit, die proportional zur Geschwindigkeit eines sich bewegenden Objekts ist, was für Rauchspuren und dergleichen nützlich sein kann.
  • Geben Sie den Partikeln innerhalb bestimmter Bereiche eine zufällige Anfangsgeschwindigkeit und -richtung. Zum Beispiel würde eine Explosion Partikel in alle Richtungen senden, während eine Kanone sie in die Richtung senden würde, in die die Kanone zeigt.
  • Optional können Partikel die Geschwindigkeit von ihrem Emitter erben, wenn sich der Emitter selbst bewegt.

Bewegungsfunktionen steuern, wie sich Partikel nach ihrer Emission bewegen.

  • Durch die Schwerkraft oder den Auftrieb sinken oder steigen Partikel.
  • Die Kollisionserkennung kann verwendet werden, um Partikel dazu zu bringen, Wände zu respektieren, indem sie entweder entlang dieser fließen oder abprallen.
  • Der Luftwiderstand führt dazu, dass sich schnell bewegende Partikel verlangsamen.
  • Partikel können sich auch entlang eines vom Designer definierten Splines bewegen oder von einem bestimmten Punkt oder einer bestimmten Region (möglicherweise an ein Objekt oder einen Charakter gebunden) usw. angezogen werden.

Rendering-Funktionen steuern, wie Partikel aussehen.

  • Mit ziemlicher Sicherheit möchten Sie, dass die Partikel mit zunehmendem Alter Größe, Farbe und Alpha ändern. Zur Steuerung dieser können Animationskurven definiert werden.
  • Für ein 2D-Spiel sollte auch die Z-Reihenfolge der Partikel relativ zu anderen Spielobjekten steuerbar sein.
  • Bei Sprite-Partikeln möchten Sie möglicherweise, dass sich das Sprite dreht. Es könnte sich mit einer zufälligen Geschwindigkeit drehen oder sich drehen, um seiner Bewegungsrichtung zu entsprechen, oder der Richtung, in die sich sein Emitter bewegte, als er emittiert wurde.
  • Auch für Sprite-Partikel möchten Sie möglicherweise eine Folge von Animationsframes durchlaufen lassen.

Dies sind nur einige allgemeine Ideen. Für Ihr spezielles Spiel benötigen Sie möglicherweise nur einige davon oder andere Ideen, die nicht auf dieser Liste stehen.

Nathan Reed
quelle
+1 Dies ist genau die Funktionsliste meiner Partikel-Engine-Implementierung. Später möchten Sie möglicherweise einige Extras hinzufügen, z. B. das Senden entlang einer Linie (für Laserstrahleffekte) oder einen Kreis (z. B. den Schild eines Raumschiffs).
Marton
Tolle Liste! Wirklich umfassend. +1
Rivasa
1
Fügen Sie zwei weitere Ideen hinzu: Wenn Sie die gesamte Lebensdauer des Partikels rendern, erhalten Sie statische Partikel , mit denen Haare oder Gras erzeugt werden können. Lassen Sie Emitter sowohl Emitter als auch einfache Partikel erzeugen - Sie können einige interessante Explosionen erzeugen, indem Sie Trümmer erzeugen, die wiederum Rauchspuren erzeugen.
Congusbongus
3

In diesem Video finden Sie einige Ideen, die Sie Ihrem System hinzufügen können, insbesondere Modifikatoren , mit denen Sie Partikeleigenschaften wie Farbe oder Opazität über die Zeit interpolieren oder komplexe Gravitationskräfte auf das System anwenden können. Diese reichen oft aus, um in Kombination mit einem Basis-Partikelemitter einige wirklich coole Effekte zu erzielen.

Anschließend möchten Sie möglicherweise die Dokumentation einer vorhandenen Partikel-Engine überprüfen, um festzustellen, was sie sonst noch bieten. Das erste, was mir in den Sinn kommt, ist die Mercury Particle Engine , die sich anscheinend auch um das Konzept der Partikelemitter und -modifikatoren dreht. Machen Sie eine Probefahrt und es sollte ausreichen, um Ihre Frage zu beantworten.

David Gouveia
quelle