Wie kann ich einen Kondensstreifeneffekt für ein in Bewegung befindliches Raumschiff erzeugen?


7

Ich bin gespannt, wie ich auf dem folgenden Bild einen ähnlichen Effekt wie beim Heck des Schiffes erzielen kann:

Geben Sie hier die Bildbeschreibung einGeben Sie hier die Bildbeschreibung ein


ähem, schönes Bild ... der "Schwanz" ist es der "Mercedes-Stern" im unteren Bild? oder ist es die verblassende dicke Linie vom weißen Mittelobjekt? (Entschuldigen Sie meine dumme Frage, aber es ist mir nicht so klar, was genau der Schwanz ist, sorry)
Martin Frank

2
@MartinFrank Oh, ich hätte nicht gedacht, dass es ein Problem beim Erkennen des Schwanzes geben wird. Es ist die dicke Linie hinter dem Spieler. Aber ich denke nicht, dass es sich sehr vom Schwanz hinter dem "Mercedes-Stern" unterscheidet. Das Spiel ist "Geometry Wars: Abmessungen "
SteveL

Danke, dass du das geklärt hast! jetzt kann ich vielleicht richtig antworten ^^
Martin Frank

Für diese spezielle Frage nicht wirklich zutreffend, aber EVE Online hat seine Schiffsmotorspuren bereits 2011 neu erfunden. Die Art und Weise, wie sie jetzt gemacht werden, ist in ihrem Devblog beschrieben . Es hat viele der schönen Eigenschaften, die Sie hier zu suchen scheinen.
Ordous

@Ordous, interessanter Beitrag, aber die Mathematik sieht für mich wie Chinesisch aus :(.
SteveL

Antworten:


7

Ich wollte gerade eine Antwort über Splines geben, stellte jedoch fest, dass es im Internet wahrscheinlich bereits eine ziemlich gute Erklärung gab. Und hier ist es . Die relevanten Schritte sind 1 und 2 (3 ist nicht direkt anwendbar)

Der Kern davon ist:

  • Notieren Sie alle paar Frames, wo sich der Player befindet:
                     

Der Schlüssel hier ist, sicherzustellen, dass Sie die Position in einem konstanten Zeitintervall aufzeichnen. Wenn der Spieler also schneller wird, wird der Trail länger (da die alten Punkte anfangen, "zurückzubleiben").

  • Bilden Sie einen Spline und von diesen Punkten aus (Schritte 1 und 2). Das Ergebnis ähnelt dem Drahtmodell in diesem Lernprogramm.

    Da Sie in einem Netz keine "unendliche" Auflösung haben, erhalten Sie eine Reihe von kurzen geraden Abschnitten, die sich allmählich krümmen. Stellen Sie sich vor, dass die Breite der Segmente konstant ist (ich habe mit einem Trackpad gezeichnet). Sie sprechen die Tatsache noch nicht an, dass der Weg dünner wird:

                     
  • Jetzt können Sie das Netz schattieren.

    Das Tutorial, mit dem ich verlinkt habe, hat versucht, etwas anderes zu machen. Es hat Punkte, die an derselben Stelle bleiben, und verwendet einen Shader, um den Pfad zu bewegen (das ist Schritt 3).

    Sie verschieben die Punkte, verwenden also unterschiedliche Ansätze. Ich konnte sehen, dass ein einfacher Shader verwendet wurde, der zwischen einer Farbe und einer Textur entlang des gesamten Netzes interpoliert. Die Textur würde mit einer festen Basis für das Netz kombiniert. Etwas wie:

                   

Sie sollten sich aber auch die Tools ansehen, auf die Sie Zugriff haben. Die meisten Middleware-Programme haben bereits eine Art "Trail-Renderer" implementiert und sind wahrscheinlich gut optimiert. Unity3D und UDK tun dies beide. Tatsächlich hätte das Ziel des Tutorials ohne diese zusätzliche Arbeit in Unity implementiert werden können (ein ordnungsgemäß konfigurierter Trail-Renderer hätte animiert werden können).


Das ist eine schöne Antwort.
SteveL

2

Sie können einen solchen Effekt mit Polyboards implementieren . Wenn Sie sich eine Kopie von Mathematik für 3D-Spielprogrammierung und Computergrafik besorgen können , gibt es in diesem Buch einen Abschnitt, der dieser Technik gewidmet ist. (Tatsächlich ist der Abschnitt für Polyboards hier kostenlos verfügbar ).

Diese Technik wird manchmal auch als "LineRenderer" oder "TrailRender" bezeichnet.


0

Wenn Sie ein Objekt haben, können Sie einfach eine Linie zu diesem Objekt ziehen, die auf meinem Bild als rote Linie angezeigt wird ^^

Geben Sie hier die Bildbeschreibung ein

Meine Linie ist rot gezeichnet, aber Sie können dem Computer mitteilen, dass er keine einfache Füllung, sondern eine Verlaufsfüllung verwenden soll ... jetzt

Geben Sie hier die Bildbeschreibung ein

Wenn Sie jetzt einen solchen Farbverlauf zum Füllen haben (mit Schwarz / Weiß auf dem Alphakanal), entsteht ein verblassender Schwanz

Nachdem ich dein anderes Bild gesehen habe, muss ich hinzufügen, dass du keine strenge Linie brauchst, sondern es mit jeder Form machen kannst!


Es gibt viele Möglichkeiten, einen Farbverlauf zu implementieren ...
Martin Frank

4
Oh, das Problem ist nicht wirklich das Gefälle, sondern wie es dem Spieler folgt. Ich möchte nicht, dass es immer direkt hinter dem Spieler ist, sondern ihm einfach folgt und sich krümmt, wenn der Spieler die Richtung ändert, als ob der Spieler eine Spur hinterlassen würde. Aber danke für die Antwort.
SteveL

Vielleicht wäre es besser gewesen, wenn Sie das in Ihre Frage geschrieben hätten, hahaha =)
Martin Frank
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.