28. September 2022

Neuer Partikelsystem-Editor

In dieser neuen Version hat Evergine sein Partikelsystem verbessert: Ab sofort ist es ein Asset mit eigenem Editor, das die Entwicklung erleichtert, wenn mit mehreren Instanzen desselben Partikelsystems gearbeitet wird. Dieser neue Partikelsystem-Editor enthält einige interessante Tools für die Erstellung Ihrer Partikel und bildet zugleich die Grundlage für viele neue Funktionen in der Zukunft.

Der neue Partikelsystem-Workflow?

Die vorherige Version von Evergine behandelte Partikelsysteme als Satz von Komponenten. Es gab die Komponenten ParticleSystem und ParticleSystemRenderer (abgesehen von den Kraftkomponenten). Das war zwar eine große Verbesserung gegenüber dem Partikelsystem unserer alten WaveEngine, doch wir stellten fest, dass wir uns in komplexen Szenen mit vielen Instanzen eines Partikelsystems nicht stark auf Prefabs stützen wollten. Außerdem erkannten wir, dass wir besser optimieren können, wenn sich alle Partikelsysteme desselben Typs einfach gruppieren lassen. Deshalb haben wir den Workflow wie im folgenden Diagramm geändert.

Jetzt geht der Entwickler wie folgt vor:

  • Er erstellt ein ParticleSystem-Asset.
  • Er bearbeitet es im neuen Partikelsystem-Editor.
  • Er platziert es in der Szene, indem er eine Entity mit den Komponenten ParticlesComponent und ParticlesRenderer erstellt.

Erstellung eines Partikelsystems

Das Erstellen eines neuen Partikelsystem-Assets funktioniert ähnlich wie das Erstellen anderer Assets in Evergine Studio. Klicken Sie einfach mit der rechten Maustaste in den Bereich „Assets Details“ und wählen Sie Create particle system.

Dadurch wird im Evergine-Projekt ein neues Asset erstellt, das zur Bearbeitung geöffnet werden kann.

Bearbeitung eines Partikelsystems

Ein Klick auf das Partikelsystem-Asset öffnet dessen Editor, der die folgenden 4 Bereiche zeigt:

Partikel-Viewport

Der Hauptbereich zeigt die Simulation des Partikelsystems entsprechend seinen Parametern und einigen Viewport-Einstellungen. Außerdem werden angezeigt:

  • Die Emitterform, die zeigt, von wo aus die Partikel emittiert werden.
  • Wenn das Partikelsystem einen Entity-Shape-Emitter verwendet, wird zur Orientierung eine Teekanne angezeigt.
  • Ein Raster zur Größenorientierung, das deaktiviert werden kann.

Partikeleigenschaften

In diesem Bereich wird das Partikelsystem konfiguriert.

Alle Eigenschaften sind in verschiedenen Abschnitten gruppiert, um die Bearbeitung zu erleichtern:

  • Particle Material legt die Eigenschaften für das Rendering der Partikel fest (Textur, Render-Layer und Sampler-State).
  • General fasst alle Haupteigenschaften zusammen, die die wichtigsten Aspekte steuern, etwa die maximale Anzahl an Partikeln, die Anfangsfarbe, die Geschwindigkeit usw.
  • Shape enthält Eigenschaften, die steuern, wo und in welche Richtung die Partikel emittiert werden. Es stehen verschiedene Formen zur Auswahl:
    • Point
    • Sphere
    • Box
    • Circle
    • Entity
    • Edge
  • Spawn steuert, wie viele Partikel wann erzeugt werden. Zur Auswahl stehen:
    • Eine normale Rate-Emission (Partikel pro Sekunde).
    • Burst emittiert alle Partikel gleichzeitig (Explosionen!!!!)
    • Distance emittiert die Partikel proportional zur Bewegung des Emitters.
  • Color over life steuert die Farbanimation der Partikel.
  • Size over life erfüllt eine ähnliche Aufgabe und animiert ihre Größe.
  • Die Gruppe Noise steuert die Turbulenzeigenschaften der Partikel.
  • Force aktiviert die Anziehungskraft und legt ihre Kategorie fest.

Editor-Symbolleiste

Diese Symbolleiste steuert einige Aspekte der Darstellung im Partikel-Editor.

  • Raster-Anzeige ein/aus
  • Anzeige des Emissions-Gizmos ein/aus
  • CPU-Partikel erzwingen ein/aus, auch wenn GPU-Partikel verfügbar sind.
  • Setzt die Kameraposition zurück.
  • Hintergrundfarbe des Viewports.

Simulationssteuerung

Diese Leiste steuert einige Aspekte des Simulationsablaufs des Partikelsystems.

  • Setzt alle Partikel in ihren Anfangszustand zurück.
  • Startet/stoppt die Partikelsimulation.
  • Schieberegler Time factor, mit dem sich die Zeit der Partikel steuern lässt.

Partikelsysteme in Ihrer Szene verwenden

Wenn Sie das Partikelsystem-Asset in die Szene ziehen, wird eine Entity mit diesem Partikelsystem erstellt.

Diese neue Entity enthält 2 neue Komponenten (zusätzlich zu Transform3D).

ParticlesComponent

Diese Komponente steuert die Simulation der jeweiligen Instanz des Partikelsystems. Sie enthält:

  • ParticleSystem – Eigenschaft, in der das Quell-Asset festgelegt wird.
  • Force CPU Particles, um explizit CPU-Partikel zu verwenden und auf Compute-Shader-Partikel zu verzichten.
  • Emit Automatically startet die Emission von Beginn an. Andernfalls müsste die Emission manuell gestartet werden.
  • Life Factor , um die Partikel schneller oder langsamer altern zu lassen.
  • Time Factor , um die Partikelsimulation zu beschleunigen oder zu verlangsamen.

Die Komponente übernimmt die Assets und erzeugt alle für die Simulation erforderlichen Grafikressourcen, Meshes und Buffer.

ParticlesRenderer

Diese Komponente rendert lediglich das von der ParticlesComponent definierte Mesh und dessen Material.

Nächste Schritte

Die Entwicklung des Partikel-Editors ist ein solider Schritt auf dem Weg zu unserem Ziel, die bestmögliche Partikelsimulation in Evergine zu bieten. Einer der nächsten Schritte für unser Partikelsystem wäre die Unterstützung mehrerer Emitter pro Partikelsystem sowie die Möglichkeit, Beziehungen zwischen ihnen herzustellen.

Bleiben Sie dran!

Antonio avila
Autor
Antonio Ávila
Plain Concepts Research