Wie wird 2D-Beleuchtung implementiert?


58

Ich frage mich, was der beste Weg ist, um einen "Beleuchtungseffekt" in 2D-Spielen zu erreichen. Wenn zum Beispiel meine Hauptfigur leuchtet, welche Techniken kann ich verwenden, um den visuellen Effekt der leuchtenden Figur zu vervollständigen, wenn sie sich in der Nähe anderer Objekte befindet, die vom Licht beeinflusst werden würden?

Antworten:


39

Sie können eine einfache Glüheffekt-Textur mit weichen transparenten Rändern überlagern. Wenn Sie Licht / Schatten ähnlich wie in einer 3D-Welt wünschen, können Sie Folgendes tun: http://www.catalinzima.com/2010/07/my-technique-for-the-shader-based-dynamic -2d-Schatten / . Wenn Sie jedoch noch kein HLSL-Neuling sind, ist dies möglicherweise etwas zu viel.

edit : Ich bin auf ein schönes HTML5 2d light Tutorial gestoßen


Dieser Link ist genau das, wonach ich gesucht habe. Ich kann dir nicht genug danken. das ist extrem hilfreich.
Christopher Horenstein

7

Es gibt ein Open-Source-XNA-Projekt, das eine hervorragende Bibliothek und Implementierung von 2D-Beleuchtung ist, die mit dem Reach-Profil von XNA 4.0 kompatibel ist - Krypton XNA .


4

Sie benötigen einen Postfilter-Shader-Effekt, der in HLSL oder GLSL geschrieben ist. Der Shader empfängt die Player-Koordinaten und ändert die Helligkeit für alle Pixel in einem bestimmten Bereich. XNA unterstützt 2D-Shader recht gut.

Eine andere Lösung wäre die Simulation der Helligkeit mithilfe einer Textur mit einem Alpha-Kanal. Die Textur wäre größtenteils schwarz bis auf einen transparenten Fleck in der Mitte. Diese Textur überlagert Ihren Spielbildschirm mit dem transparenten Fleck, der auf dem leuchtenden Spielercharakter zentriert ist. Alte Abenteuerspiele verwendeten diese Technik, um Taschenlampen zu simulieren.


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.