Ich bin mir nicht sicher, nach welchen Begriffen ich suchen soll oder wo ich anfangen soll, obwohl ich mir das als eine Art Nachbearbeitungseffekt vorstelle.
Ich habe Spiele wie Ich will der Boshy sein und du musst das Spiel gewinnen gesehen, die es schaffen, die Perspektive von 2D-Spielen zu verändern, um ihnen eine Art 3D-Effekt zu verleihen (siehe Bilder unten). Boshy lässt es im Grunde so aussehen, als ob Sie sich in einem Turm (Zylinder) befinden, während Sie das Spiel gewinnen müssen. Dadurch wird das Bild verzerrt, so dass es aussieht, als würden Sie auf einem alten CRT-Monitor spielen, insbesondere im leicht gerundeten Look.
- Gibt es einen Begriff für diesen Effekt?
- Was ist die Standardmethode zur Implementierung dieses Effekts (Terminologie)?
- Wie würde ich einen solchen Effekt aus einer 20.000-Fuß-Sicht in einer Engine / einem Framework auf hohem Niveau wie Unity oder XNA / Monogame implementieren? (Detaillierter Code wird gerne angenommen, ist aber nicht erforderlich. Ich bin mir bewusst, dass die genauen Implementierungsdetails variieren können, aber detaillierte Informationen darüber, was getan werden muss, sind sehr willkommen.)
Ich will der Boshy sein
Du musst das Spiel gewinnen
2d
graphic-effects
post-processing
SpartanDonut
quelle
quelle
Antworten:
Dies kann als Nachbearbeitungseffekt implementiert werden. (Bei Verwendung von Unity / XNA / Dx / OGL / ...)
Geometrie-Methode
Erstellen Sie zunächst ein Netz, das dem gewünschten Verzerrungseffekt ähnelt. (z. B. Modellieren eines Halbzylinders (oder eines Kegels, einer Kugel, eines Würfels, ...), achten Sie darauf, die Texturkoordinaten festzulegen). Rendern Sie Ihr 2D-Spiel wie gewohnt, aber rendern Sie das Endergebnis in eine Textur. Rendern Sie dann die Verzerrungsgeometrie mit der soeben erstellten Textur. Sie können die Welt / Ansicht / Projektion verwenden oder die tatsächlichen Geometrie- / Texturkoordinaten ändern, um die Stärke der Verzerrung zu steuern. (Bild 1 zeigt das reguläre 2D-Spiel, Bild 2 zeigt die gleiche Textur, die auf eine Kugel projiziert wurde)
Verzerrungsmethode
Bildverarbeitungswerkzeuge bieten oft Verzerrungseffekte, die die Projektion nachahmen können (etwas wie optische Täuschungen). Beispielsweise wurde Bild 3 mit dem Ausbuchtungsfilter von Paint.Net generiert
.
(Eine Implementierung (OpenGL ES 2.0) dieses Verzerrungseffekts finden Sie im GPUImage- Projekt - siehe GPUImageBulgeDistortionFilter.)
Je nach Implementierung ist eine der beiden Methoden möglicherweise schneller oder passt besser zu Ihrem gewünschten Ergebnis. Da beide Implementierungen recht einfach sind, können Sie versuchen, beide zu implementieren und herauszufinden, welche für Sie am besten geeignet ist.
quelle